mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2026-03-14 05:00:58 +01:00
UPnP: comment out unsupported parameters and Align with new json structure
This commit is contained in:
parent
9f01ada035
commit
3ed615d839
2 changed files with 36 additions and 51 deletions
|
|
@ -97,10 +97,10 @@ static int get_service_linker(char *refparam, struct dmctx *dmctx, void *data, c
|
|||
**************************************************************/
|
||||
static int browseUPnPDiscoveryRootDeviceInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_data, char *prev_instance)
|
||||
{
|
||||
json_object *res = NULL, *devices = NULL, *device = NULL;
|
||||
json_object *res = NULL, *root_devices = NULL, *device = NULL;
|
||||
struct upnpdiscovery upnp_dev = {0};
|
||||
char *descurl = NULL, *st = NULL, *usn = NULL, *is_root_device = NULL, *inst = NULL;
|
||||
struct uci_section* dmmap_sect = NULL;
|
||||
char *descurl = NULL, *st = NULL, *usn = NULL, *inst = NULL;
|
||||
struct uci_section *dmmap_sect = NULL;
|
||||
char buf[512] = {0};
|
||||
int root_inst = 0;
|
||||
|
||||
|
|
@ -108,15 +108,11 @@ static int browseUPnPDiscoveryRootDeviceInst(struct dmctx *dmctx, DMNODE *parent
|
|||
if (res == NULL)
|
||||
return 0;
|
||||
|
||||
json_object_object_get_ex(res, "devices", &devices);
|
||||
size_t nbre_devices = (devices) ? json_object_array_length(devices) : 0;
|
||||
json_object_object_get_ex(res, "root_devices", &root_devices);
|
||||
size_t nbre_devices = (root_devices) ? json_object_array_length(root_devices) : 0;
|
||||
|
||||
for (int i = 0; i < nbre_devices; i++) {
|
||||
device = json_object_array_get_idx(devices, i);
|
||||
|
||||
is_root_device = dmjson_get_value(device, 1, "is_root_device");
|
||||
if(DM_LSTRCMP(is_root_device, "0") == 0)
|
||||
continue;
|
||||
device = json_object_array_get_idx(root_devices, i);
|
||||
|
||||
descurl = dmjson_get_value(device, 1, "descurl");
|
||||
st = dmjson_get_value(device, 1, "st");
|
||||
|
|
@ -160,10 +156,10 @@ static int browseUPnPDiscoveryRootDeviceInst(struct dmctx *dmctx, DMNODE *parent
|
|||
|
||||
static int browseUPnPDiscoveryDeviceInst(struct dmctx *dmctx, DMNODE *parent_node, void *prev_data, char *prev_instance)
|
||||
{
|
||||
json_object *res = NULL, *devices = NULL, *device = NULL;
|
||||
json_object *res = NULL, *devices = NULL, *device = NULL;
|
||||
struct upnpdiscovery upnp_dev = {0};
|
||||
char *dev_descurl = NULL, *dev_st = NULL, *dev_usn = NULL, *inst = NULL;
|
||||
struct uci_section* dmmap_sect = NULL;
|
||||
struct uci_section *dmmap_sect = NULL;
|
||||
char buf[512] = {0};
|
||||
|
||||
dmubus_call("upnp", "discovery", UBUS_ARGS{{}}, 0, &res);
|
||||
|
|
@ -366,6 +362,7 @@ static int browseUPnPDescriptionServiceInstanceInst(struct dmctx *dmctx, DMNODE
|
|||
dmubus_call("upnp", "description", UBUS_ARGS{{}}, 0, &res);
|
||||
if (res == NULL)
|
||||
return 0;
|
||||
|
||||
json_object_object_get_ex(res, "services", &services_instances);
|
||||
size_t nbre_devices_inst = (services_instances) ? json_object_array_length(services_instances) : 0;
|
||||
|
||||
|
|
@ -419,51 +416,22 @@ static int set_UPnPDevice_Enable(char *refparam, struct dmctx *ctx, void *data,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int get_UPnPDevice_UPnPMediaServer(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
static int get_UPnPDeviceCapabilities_UPnPArchitecture(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
char *path = "/etc/rc.d/*minidlna";
|
||||
*value = (check_file(path)) ? "1" : "0";
|
||||
*value = "1";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int set_UPnPDevice_UPnPMediaServer(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action)
|
||||
static int get_UPnPDeviceCapabilities_UPnPArchitectureMinorVer(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
bool b;
|
||||
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
if (dm_validate_boolean(value))
|
||||
return FAULT_9007;
|
||||
break;
|
||||
case VALUESET:
|
||||
string_to_bool(value, &b);
|
||||
dmcmd("/etc/init.d/minidlna", 1, b ? "enable" : "disable");
|
||||
break;
|
||||
}
|
||||
*value = "1";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_UPnPDevice_UPnPIGD(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
static int get_UPnPDeviceCapabilities_UPnPIGD(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value)
|
||||
{
|
||||
char *path = "/etc/rc.d/*miniupnpd";
|
||||
*value = (check_file(path)) ? "1" : "0";
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int set_UPnPDevice_UPnPIGD(char *refparam, struct dmctx *ctx, void *data, char *instance, char *value, int action)
|
||||
{
|
||||
bool b;
|
||||
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
if (dm_validate_boolean(value))
|
||||
return FAULT_9007;
|
||||
break;
|
||||
case VALUESET:
|
||||
string_to_bool(value, &b);
|
||||
dmcmd("/etc/init.d/miniupnpd", 1, b ? "enable" : "disable");
|
||||
break;
|
||||
}
|
||||
dmuci_get_option_value_string("upnpd", "config", "igdv1", value);
|
||||
*value = (DM_STRLEN(*value) && *value[0] == '1') ? "1" : "2";
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -743,28 +711,43 @@ static int get_UPnPDescriptionServiceInstance_EventSubURL(char *refparam, struct
|
|||
/* *** Device.UPnP. *** */
|
||||
DMOBJ tUPnPObj[] = {
|
||||
/* OBJ, permission, addobj, delobj, checkdep, browseinstobj, nextdynamicobj, dynamicleaf, nextobj, leaf, linker, bbfdm_type, uniqueKeys, version*/
|
||||
{"Device", &DMREAD, NULL, NULL, NULL, NULL, NULL, NULL, NULL, tUPnPDeviceParams, NULL, BBFDM_BOTH, NULL, "2.0"},
|
||||
{"Device", &DMREAD, NULL, NULL, "file:/etc/config/upnpd", NULL, NULL, NULL, tUPnPDeviceObj, tUPnPDeviceParams, NULL, BBFDM_BOTH, NULL, "2.0"},
|
||||
{"Discovery", &DMREAD, NULL, NULL, NULL, NULL, NULL, NULL, tUPnPDiscoveryObj, tUPnPDiscoveryParams, NULL, BBFDM_BOTH, NULL, "2.0"},
|
||||
{"Description", &DMREAD, NULL, NULL, NULL, NULL, NULL, NULL, tUPnPDescriptionObj, tUPnPDescriptionParams, NULL, BBFDM_BOTH, NULL, "2.6"},
|
||||
{0}
|
||||
};
|
||||
|
||||
/* *** Device.UPnP.Device. *** */
|
||||
DMOBJ tUPnPDeviceObj[] = {
|
||||
/* OBJ, permission, addobj, delobj, checkdep, browseinstobj, nextdynamicobj, dynamicleaf, nextobj, leaf, linker, bbfdm_type, uniqueKeys, version*/
|
||||
{"Capabilities", &DMREAD, NULL, NULL, NULL, NULL, NULL, NULL, NULL, tUPnPDeviceCapabilitiesParams, NULL, BBFDM_BOTH, NULL, "2.0"},
|
||||
{0}
|
||||
};
|
||||
|
||||
DMLEAF tUPnPDeviceParams[] = {
|
||||
/* PARAM, permission, type, getvalue, setvalue, bbfdm_type, version*/
|
||||
{"Enable", &DMWRITE, DMT_BOOL, get_UPnPDevice_Enable, set_UPnPDevice_Enable, BBFDM_BOTH, "2.0"},
|
||||
{"UPnPMediaServer", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPMediaServer, set_UPnPDevice_UPnPMediaServer, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPMediaServer", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPMediaServer, set_UPnPDevice_UPnPMediaServer, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPMediaRenderer", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPMediaRenderer, set_UPnPDevice_UPnPMediaRenderer, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPWLANAccessPoint", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPWLANAccessPoint, set_UPnPDevice_UPnPWLANAccessPoint, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPQoSDevice ", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPQoSDevice , set_UPnPDevice_UPnPQoSDevice , BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPQoSPolicyHolder", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPQoSPolicyHolder, set_UPnPDevice_UPnPQoSPolicyHolder, BBFDM_BOTH, "2.0"},
|
||||
{"UPnPIGD", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPIGD, set_UPnPDevice_UPnPIGD, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPIGD", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPIGD, set_UPnPDevice_UPnPIGD, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPDMBasicMgmt", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPDMBasicMgmt, set_UPnPDevice_UPnPDMBasicMgmt, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPDMConfigurationMgmt", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPDMConfigurationMgmt, set_UPnPDevice_UPnPDMConfigurationMgmt, BBFDM_BOTH, "2.0"},
|
||||
//{"UPnPDMSoftwareMgmt", &DMWRITE, DMT_BOOL, get_UPnPDevice_UPnPDMSoftwareMgmt, set_UPnPDevice_UPnPDMSoftwareMgmt, BBFDM_BOTH, "2.0"},
|
||||
{0}
|
||||
};
|
||||
|
||||
/* *** Device.UPnP.Device.Capabilities. *** */
|
||||
DMLEAF tUPnPDeviceCapabilitiesParams[] = {
|
||||
/* PARAM, permission, type, getvalue, setvalue, bbfdm_type, version*/
|
||||
{"UPnPArchitecture", &DMREAD, DMT_UNINT, get_UPnPDeviceCapabilities_UPnPArchitecture, NULL, BBFDM_BOTH, "2.0"},
|
||||
{"UPnPArchitectureMinorVer", &DMREAD, DMT_UNINT, get_UPnPDeviceCapabilities_UPnPArchitectureMinorVer, NULL, BBFDM_BOTH, "2.0"},
|
||||
{"UPnPIGD", &DMREAD, DMT_UNINT, get_UPnPDeviceCapabilities_UPnPIGD, NULL, BBFDM_BOTH, "2.0"},
|
||||
{0}
|
||||
};
|
||||
|
||||
/* *** Device.UPnP.Discovery. *** */
|
||||
DMOBJ tUPnPDiscoveryObj[] = {
|
||||
/* OBJ, permission, addobj, delobj, checkdep, browseinstobj, nextdynamicobj, dynamicleaf, nextobj, leaf, linker, bbfdm_type, uniqueKeys, version*/
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@
|
|||
#include "libbbf_api/dmcommon.h"
|
||||
|
||||
extern DMOBJ tUPnPObj[];
|
||||
extern DMOBJ tUPnPDeviceObj[];
|
||||
extern DMLEAF tUPnPDeviceParams[];
|
||||
extern DMLEAF tUPnPDeviceCapabilitiesParams[];
|
||||
extern DMOBJ tUPnPDiscoveryObj[];
|
||||
extern DMLEAF tUPnPDiscoveryParams[];
|
||||
extern DMLEAF tUPnPDiscoveryRootDeviceParams[];
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue