mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2025-12-10 07:44:41 +01:00
Ticket refs #11459: icwmp does not compile for target ramips (EX400)
This commit is contained in:
parent
efd0b25381
commit
504617f116
49 changed files with 428 additions and 325 deletions
|
|
@ -10,6 +10,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include "cwmp.h"
|
||||
#include "backupSession.h"
|
||||
#include "xml.h"
|
||||
|
|
@ -49,7 +50,7 @@ mxml_node_t *bkp_session_node_found(mxml_node_t *tree, char *name, struct search
|
|||
{
|
||||
mxml_node_t *b = tree, *c, *d;
|
||||
struct search_keywords;
|
||||
int i;
|
||||
int i = 0;
|
||||
|
||||
b = mxmlFindElement(b, b, name, NULL, NULL, MXML_DESCEND_FIRST);
|
||||
while (b)
|
||||
|
|
@ -415,7 +416,7 @@ void bkp_session_delete_apply_schedule_download(struct apply_schedule_download *
|
|||
{
|
||||
sprintf(delay[2*i],"%ld",papply_schedule_download->timeintervals[i].windowstart);
|
||||
sprintf(delay[2*i+1],"%ld",papply_schedule_download->timeintervals[i].windowend);
|
||||
sprintf(maxretrie[i],"%ld",papply_schedule_download->timeintervals[i].maxretries);
|
||||
sprintf(maxretrie[i],"%d",papply_schedule_download->timeintervals[i].maxretries);
|
||||
}
|
||||
|
||||
keys[0].name = "start_time";
|
||||
|
|
@ -581,7 +582,7 @@ void bkp_session_delete_schedule_download(struct schedule_download *pschedule_do
|
|||
{
|
||||
sprintf(delay[2*i],"%ld",pschedule_download->timewindowstruct[i].windowstart);
|
||||
sprintf(delay[2*i+1],"%ld",pschedule_download->timewindowstruct[i].windowend);
|
||||
sprintf(maxretrie[i],"%ld",pschedule_download->timewindowstruct[i].maxretries);
|
||||
sprintf(maxretrie[i],"%d",pschedule_download->timewindowstruct[i].maxretries);
|
||||
}
|
||||
keys[0].name = "url";
|
||||
keys[0].value = pschedule_download->url;
|
||||
|
|
@ -781,7 +782,7 @@ void load_queue_event(mxml_node_t *tree,struct cwmp *cwmp)
|
|||
{
|
||||
char *command_key = NULL;
|
||||
mxml_node_t *b = tree, *c;
|
||||
int idx = -1, id;
|
||||
int idx = -1, id = -1;
|
||||
struct event_container *event_container_save = NULL;
|
||||
|
||||
b = mxmlWalkNext(b, tree, MXML_DESCEND);
|
||||
|
|
@ -855,9 +856,9 @@ void load_queue_event(mxml_node_t *tree,struct cwmp *cwmp)
|
|||
|
||||
void load_schedule_inform(mxml_node_t *tree,struct cwmp *cwmp)
|
||||
{
|
||||
char *command_key;
|
||||
char *command_key = NULL;
|
||||
mxml_node_t *b = tree, *c;
|
||||
time_t scheduled_time;
|
||||
time_t scheduled_time = 0;
|
||||
struct schedule_inform *schedule_inform = NULL;
|
||||
struct list_head *ilist = NULL;
|
||||
|
||||
|
|
@ -1797,7 +1798,7 @@ void load_du_state_change_complete (mxml_node_t *tree,struct cwmp *cwmp)
|
|||
{
|
||||
if(d->value.text.string != NULL)
|
||||
{
|
||||
elem->start_time = atol(d->value.text.string);
|
||||
elem->start_time = strdup(d->value.text.string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1810,7 +1811,7 @@ void load_du_state_change_complete (mxml_node_t *tree,struct cwmp *cwmp)
|
|||
{
|
||||
if(d->value.text.string != NULL)
|
||||
{
|
||||
elem->complete_time = atol(d->value.text.string);
|
||||
elem->complete_time = strdup(d->value.text.string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
156
config.c
156
config.c
|
|
@ -385,6 +385,84 @@ static void uppercase ( char *sPtr )
|
|||
}
|
||||
}
|
||||
|
||||
int get_amd_version_config()
|
||||
{
|
||||
int error;
|
||||
int a = 0;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_AMD_VERSION ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.amd_version = DEFAULT_AMD_VERSION;
|
||||
if(value != NULL)
|
||||
{
|
||||
a = atoi(value) ;
|
||||
if ( a >= 1 ) {
|
||||
cwmp->conf.amd_version = a;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
cwmp->conf.supported_amd_version = cwmp->conf.amd_version;
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
|
||||
int get_session_timeout_config()
|
||||
{
|
||||
int error;
|
||||
int a = 0;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_SESSION_TIMEOUT ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.session_timeout = DEFAULT_SESSION_TIMEOUT;
|
||||
if(value != NULL)
|
||||
{
|
||||
a = atoi(value) ;
|
||||
if ( a >= 1 ) {
|
||||
cwmp->conf.session_timeout = a;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
|
||||
int get_instance_mode_config()
|
||||
{
|
||||
int error;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_INSTANCE_MODE ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.instance_mode = DEFAULT_INSTANCE_MODE;
|
||||
if(value != NULL)
|
||||
{
|
||||
if ( 0 == strcmp(value, "InstanceNumber") ) {
|
||||
cwmp->conf.instance_mode = INSTANCE_MODE_NUMBER;
|
||||
} else {
|
||||
cwmp->conf.instance_mode = INSTANCE_MODE_ALIAS;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
int get_global_config(struct config *conf)
|
||||
{
|
||||
int error, error2, error3;
|
||||
|
|
@ -892,84 +970,6 @@ int get_global_config(struct config *conf)
|
|||
return CWMP_OK;
|
||||
}
|
||||
|
||||
int get_amd_version_config()
|
||||
{
|
||||
int error;
|
||||
int a = 0;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_AMD_VERSION ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.amd_version = DEFAULT_AMD_VERSION;
|
||||
if(value != NULL)
|
||||
{
|
||||
a = atoi(value) ;
|
||||
if ( a >= 1 ) {
|
||||
cwmp->conf.amd_version = a;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
cwmp->conf.supported_amd_version = cwmp->conf.amd_version;
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
|
||||
int get_session_timeout_config()
|
||||
{
|
||||
int error;
|
||||
int a = 0;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_SESSION_TIMEOUT ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.session_timeout = DEFAULT_SESSION_TIMEOUT;
|
||||
if(value != NULL)
|
||||
{
|
||||
a = atoi(value) ;
|
||||
if ( a >= 1 ) {
|
||||
cwmp->conf.session_timeout = a;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
|
||||
int get_instance_mode_config()
|
||||
{
|
||||
int error;
|
||||
char *value = NULL;
|
||||
struct cwmp *cwmp = &cwmp_main;
|
||||
if((error = uci_get_value(UCI_CPE_INSTANCE_MODE ,&value)) == CWMP_OK)
|
||||
{
|
||||
cwmp->conf.instance_mode = DEFAULT_INSTANCE_MODE;
|
||||
if(value != NULL)
|
||||
{
|
||||
if ( 0 == strcmp(value, "InstanceNumber") ) {
|
||||
cwmp->conf.instance_mode = INSTANCE_MODE_NUMBER;
|
||||
} else {
|
||||
cwmp->conf.instance_mode = INSTANCE_MODE_ALIAS;
|
||||
}
|
||||
free(value);
|
||||
value = NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error;
|
||||
}
|
||||
return CWMP_OK;
|
||||
}
|
||||
int get_lwn_config(struct config *conf)
|
||||
{
|
||||
int error;
|
||||
|
|
|
|||
1
cwmp.c
1
cwmp.c
|
|
@ -17,6 +17,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include "cwmp.h"
|
||||
#include "http.h"
|
||||
#include "backupSession.h"
|
||||
#include "xml.h"
|
||||
#include "log.h"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include "log.h"
|
||||
#include "external.h"
|
||||
#include "dmentry.h"
|
||||
#include "dmcommon.h"
|
||||
#include "ubus.h"
|
||||
#include "diagnostic.h"
|
||||
#include <netinet/in.h>
|
||||
|
|
@ -688,10 +689,10 @@ int cwmp_start_diagnostic(int diagnostic_type)
|
|||
extract_stats(DOWNLOAD_DUMP_FILE, DOWNLOAD_DIAGNOSTIC_HTTP, DOWNLOAD_DIAGNOSTIC);
|
||||
if(strncmp(url,DOWNLOAD_PROTOCOL_FTP,strlen(DOWNLOAD_PROTOCOL_FTP)) == 0)
|
||||
extract_stats(DOWNLOAD_DUMP_FILE, DOWNLOAD_DIAGNOSTIC_FTP, DOWNLOAD_DIAGNOSTIC);
|
||||
cwmp_root_cause_event_ipdiagnostic(&cwmp_main);
|
||||
cwmp_root_cause_event_ipdiagnostic();
|
||||
}
|
||||
else if (status && strncmp(status, "Error_", strlen("Error_")) == 0)
|
||||
cwmp_root_cause_event_ipdiagnostic(&cwmp_main);
|
||||
cwmp_root_cause_event_ipdiagnostic();
|
||||
free(status);
|
||||
}
|
||||
else
|
||||
|
|
@ -706,10 +707,10 @@ int cwmp_start_diagnostic(int diagnostic_type)
|
|||
extract_stats(UPLOAD_DUMP_FILE, DOWNLOAD_DIAGNOSTIC_HTTP, UPLOAD_DIAGNOSTIC);
|
||||
if(strncmp(url,DOWNLOAD_PROTOCOL_FTP,strlen(DOWNLOAD_PROTOCOL_FTP)) == 0)
|
||||
extract_stats(UPLOAD_DUMP_FILE, DOWNLOAD_DIAGNOSTIC_FTP, UPLOAD_DIAGNOSTIC);
|
||||
cwmp_root_cause_event_ipdiagnostic(&cwmp_main);
|
||||
cwmp_root_cause_event_ipdiagnostic();
|
||||
}
|
||||
else if (status && strncmp(status, "Error_", strlen("Error_")) == 0)
|
||||
cwmp_root_cause_event_ipdiagnostic(&cwmp_main);
|
||||
cwmp_root_cause_event_ipdiagnostic();
|
||||
free(status);
|
||||
free(size);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ static int lookup_sub_value(char *dest, size_t size, const char *data,
|
|||
const char *q2;
|
||||
const char *qn;
|
||||
|
||||
unsigned int diff;
|
||||
if (0 == size)
|
||||
return 0;
|
||||
keylen = strlen(key);
|
||||
|
|
@ -177,8 +178,9 @@ static int lookup_sub_value(char *dest, size_t size, const char *data,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (size > (q2 - q1) + 1)
|
||||
size = (q2 - q1) + 1;
|
||||
diff = (q2 - q1) + 1;
|
||||
if (size > diff)
|
||||
size = diff;
|
||||
size--;
|
||||
memcpy(dest, q1, size);
|
||||
dest[size] = '\0';
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ int get_interface_enable_ubus(char *iface, char *refparam, struct dmctx *ctx, ch
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", iface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", iface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -442,7 +442,7 @@ int network_get_ipaddr(char **value, char *iface)
|
|||
json_object *res;
|
||||
char *ipv6_value = "";
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", iface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", iface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "ipv4-address", 0, "address", value, NULL);
|
||||
json_select(res, "ipv6-address", 0, "address", &ipv6_value, NULL);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <libubox/blobmsg_json.h>
|
||||
#include <json-c/json.h>
|
||||
#include <unistd.h>
|
||||
#include "dmcwmp.h"
|
||||
#define NVRAM_FILE "/proc/nvram/WpaKey"
|
||||
#define MAX_DHCP_LEASES 256
|
||||
|
|
|
|||
104
dm/dmcwmp.c
104
dm/dmcwmp.c
|
|
@ -155,7 +155,7 @@ struct prefix_method prefix_methods[] = {
|
|||
|
||||
int dm_entry_set_prefix_methods_enable(void)
|
||||
{
|
||||
int i = 0;
|
||||
unsigned int i = 0;
|
||||
for (i = 0; i < ARRAY_SIZE(prefix_methods); i++) {
|
||||
if (prefix_methods[i].set_enable) {
|
||||
prefix_methods[i].enable = prefix_methods[i].set_enable();
|
||||
|
|
@ -172,7 +172,7 @@ char *handle_update_instance(int instance_ranck, struct dmctx *ctx, char **last_
|
|||
char *instance, *inst_mode;
|
||||
char *alias;
|
||||
int i = 0;
|
||||
int pos = instance_ranck - 1;
|
||||
unsigned int pos = instance_ranck - 1;
|
||||
unsigned int alias_resister = 0, max, action;
|
||||
void *argv[argc];
|
||||
|
||||
|
|
@ -443,6 +443,42 @@ void free_all_list_fault_param(struct dmctx *ctx)
|
|||
}
|
||||
}
|
||||
|
||||
int update_param_instance_alias(struct dmctx *ctx, char *param, char **new_param)
|
||||
{
|
||||
char *pch, *spch, *p;
|
||||
char buf[512];
|
||||
int i = 0, j = 0;
|
||||
|
||||
char *dup = dmstrdup(param);
|
||||
p = buf;
|
||||
for (pch = strtok_r(dup, ".", &spch); pch != NULL; pch = strtok_r(NULL, ".", &spch)) {
|
||||
if (isdigit(pch[0])) {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, pch);
|
||||
i++;
|
||||
} else if (pch[0]== '[') {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, ctx->inst_buf[i]);
|
||||
i++;
|
||||
} else {
|
||||
if(j > 0) {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, pch);
|
||||
}
|
||||
if(j == 0) {
|
||||
dmstrappendstr(p, pch);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (param[strlen(param)-1] == '.')
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendend(p);
|
||||
*new_param = dmstrdup(buf);
|
||||
dmfree(dup);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void add_list_enabled_notify(char *param, char *notification, char *value)
|
||||
{
|
||||
struct dm_enabled_notify *dm_enabled_notify;
|
||||
|
|
@ -567,42 +603,6 @@ static int remove_parameter_notification(char *param)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int update_param_instance_alias(struct dmctx *ctx, char *param, char **new_param)
|
||||
{
|
||||
char *pch, *spch, *p;
|
||||
char buf[512];
|
||||
int i = 0, j = 0;
|
||||
|
||||
char *dup = dmstrdup(param);
|
||||
p = buf;
|
||||
for (pch = strtok_r(dup, ".", &spch); pch != NULL; pch = strtok_r(NULL, ".", &spch)) {
|
||||
if (isdigit(pch[0])) {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, pch);
|
||||
i++;
|
||||
} else if (pch[0]== '[') {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, ctx->inst_buf[i]);
|
||||
i++;
|
||||
} else {
|
||||
if(j > 0) {
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendstr(p, pch);
|
||||
}
|
||||
if(j == 0) {
|
||||
dmstrappendstr(p, pch);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (param[strlen(param)-1] == '.')
|
||||
dmstrappendchr(p, '.');
|
||||
dmstrappendend(p);
|
||||
*new_param = dmstrdup(buf);
|
||||
dmfree(dup);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int set_parameter_notification(struct dmctx *ctx, char *param, char *value)
|
||||
{
|
||||
char *tmp = NULL, *buf = NULL, *pch, *new_param;
|
||||
|
|
@ -673,13 +673,13 @@ static int check_obj_is_nl1(char *refparam, char *inparam, int ndot)
|
|||
{
|
||||
unsigned int len, i;
|
||||
len = strlen(refparam);
|
||||
for (i = len - 1; i >= 0; i--) {
|
||||
if (refparam[i] == '.') {
|
||||
for (i = len; i > 0; i--) {
|
||||
if (refparam[i-1] == '.') {
|
||||
if (--ndot == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
//i++;
|
||||
if (strlen(inparam) == i)
|
||||
return 0;
|
||||
return -1;
|
||||
|
|
@ -712,7 +712,7 @@ int string_to_bool(char *v, bool *b)
|
|||
* **********/
|
||||
int dm_entry_get_value(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->faultcode = FAULT_9005;
|
||||
|
||||
if (ctx->in_param[0] == '\0' || check_param_prefix(ctx) == 0) {
|
||||
|
|
@ -806,7 +806,7 @@ static int get_value_inparam_isobj_check_param(DMPARAM_API_ARGS)
|
|||
|
||||
int dm_entry_get_name(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->faultcode = FAULT_9005;
|
||||
if (ctx->in_param[0] == '\0' && ctx->nextlevel == 1) {
|
||||
ctx->method_obj=&get_name_emptyin_nl1_obj;
|
||||
|
|
@ -932,7 +932,7 @@ static int get_name_emptyin_nl1_param(DMPARAM_API_ARGS)
|
|||
* ********************/
|
||||
int dm_entry_get_notification(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->faultcode = FAULT_9005;
|
||||
|
||||
if (ctx->in_param[0] == '\0' || check_param_prefix(ctx) == 0) {
|
||||
|
|
@ -1031,7 +1031,7 @@ static int get_notification_inparam_isobj_check_param(DMPARAM_API_ARGS)
|
|||
***************/
|
||||
int dm_entry_inform(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->method_obj = &inform_check_obj;
|
||||
ctx->method_param = &inform_check_param;
|
||||
for (i = 0; i < ARRAY_SIZE(prefix_methods); i++) {
|
||||
|
|
@ -1064,7 +1064,7 @@ static int inform_check_param(DMPARAM_API_ARGS)
|
|||
* **************/
|
||||
int dm_entry_add_object(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
if (ctx->tree)
|
||||
return FAULT_9005;
|
||||
ctx->method_obj=&add_object_obj;
|
||||
|
|
@ -1110,7 +1110,7 @@ static int add_object_param(DMPARAM_API_ARGS)
|
|||
* **************/
|
||||
int dm_entry_delete_object(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
if (ctx->tree == 1)
|
||||
return FAULT_9005;
|
||||
ctx->method_obj=&delete_object_obj;
|
||||
|
|
@ -1148,7 +1148,7 @@ static int delete_object_param(DMPARAM_API_ARGS)
|
|||
* **************/
|
||||
int dm_entry_set_value(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
if (ctx->in_param[0] == '\0' || ctx->in_param[strlen(ctx->in_param)-1] == '.' ) {
|
||||
return FAULT_9005;
|
||||
} else {
|
||||
|
|
@ -1211,7 +1211,7 @@ static int set_value_check_param(DMPARAM_API_ARGS)
|
|||
* ****************/
|
||||
int dm_entry_set_notification(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
if (ctx->in_param[0] == '\0') {
|
||||
return FAULT_9009;
|
||||
} else {
|
||||
|
|
@ -1277,7 +1277,7 @@ static int set_notification_check_param(DMPARAM_API_ARGS)
|
|||
********************/
|
||||
int dm_entry_enabled_notify(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->method_obj = &enabled_notify_check_obj;
|
||||
ctx->method_param = &enabled_notify_check_param;
|
||||
for (i = 0; i < ARRAY_SIZE(prefix_methods); i++) {
|
||||
|
|
@ -1324,7 +1324,7 @@ static int enabled_notify_check_param(DMPARAM_API_ARGS)
|
|||
*****************/
|
||||
int dm_entry_get_linker(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->method_obj = &get_linker_check_obj;
|
||||
ctx->method_param = &get_linker_check_param;
|
||||
for (i = 0; i < ARRAY_SIZE(prefix_methods); i++) {
|
||||
|
|
@ -1361,7 +1361,7 @@ static int get_linker_check_param(DMPARAM_API_ARGS)
|
|||
*****************/
|
||||
int dm_entry_get_linker_value(struct dmctx *ctx)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
ctx->method_obj = &get_linker_value_check_obj;
|
||||
ctx->method_param = &get_linker_value_check_param;
|
||||
dmentry_instance_lookup_inparam(ctx);
|
||||
|
|
|
|||
|
|
@ -265,6 +265,7 @@ char *get_last_instance_icwmpd(char *package, char *section, char *opt_inst);
|
|||
char *get_last_instance_lev2(char *package, char *section, char *opt_inst, char *opt_check, char *value_check);
|
||||
char *handle_update_instance(int instance_ranck, struct dmctx *ctx, char **last_inst, char * (*up_instance)(int action, char **last_inst, void *argv[]), int argc, ...);
|
||||
|
||||
void free_all_list_enabled_lwnotify();
|
||||
#ifndef TRACE
|
||||
#define TRACE_TYPE 0
|
||||
static inline void trace_empty_func()
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include "dmentry.h"
|
||||
#include "cwmp.h"
|
||||
#include "log.h"
|
||||
#include "wepkey.h"
|
||||
|
||||
LIST_HEAD(head_package_change);
|
||||
|
||||
|
|
@ -309,7 +310,7 @@ int dm_entry_restart_services()
|
|||
list_for_each_entry(pc, &head_package_change, list) {
|
||||
if(strcmp(pc->package, "cwmp") == 0)
|
||||
continue;
|
||||
dmubus_call_set("uci", "commit", UBUS_ARGS{{"config", pc->package}}, 1);
|
||||
dmubus_call_set("uci", "commit", UBUS_ARGS{{"config", pc->package, String}}, 1);
|
||||
}
|
||||
free_all_list_package_change(&head_package_change);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,4 +22,5 @@ int dm_ctx_clean(struct dmctx *ctx);
|
|||
int dm_ctx_clean_sub(struct dmctx *ctx);
|
||||
void dm_entry_cli(int argc, char** argv);
|
||||
void wepkey_cli(int argc, char** argv);
|
||||
void dmentry_instance_lookup_inparam(struct dmctx *ctx);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#ifndef __DMMEM_H
|
||||
#define __DMMEM_H
|
||||
|
||||
void dmfree(void *m);
|
||||
static inline void dm_empty_func()
|
||||
{
|
||||
}
|
||||
|
|
@ -28,7 +29,7 @@ struct dmmem {
|
|||
char mem[0];
|
||||
};
|
||||
|
||||
inline void *__dmmalloc
|
||||
void *__dmmalloc
|
||||
(
|
||||
#ifdef WITH_MEMTRACK
|
||||
const char *file, const char *func, int line,
|
||||
|
|
@ -36,7 +37,7 @@ const char *file, const char *func, int line,
|
|||
size_t size
|
||||
);
|
||||
|
||||
inline void *__dmcalloc
|
||||
void *__dmcalloc
|
||||
(
|
||||
#ifdef WITH_MEMTRACK
|
||||
const char *file, const char *func, int line,
|
||||
|
|
@ -51,7 +52,7 @@ const char *file, const char *func, int line,
|
|||
#endif /*WITH_MEMTRACK*/
|
||||
const char *s
|
||||
);
|
||||
inline void dmfree(void *m);
|
||||
//inline void dmfree(void *m);
|
||||
void dmcleanmem();
|
||||
#endif /*WITH_MEMLEACKSEC*/
|
||||
int __dmasprintf
|
||||
|
|
|
|||
|
|
@ -14,12 +14,15 @@
|
|||
#include <dirent.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/klog.h>
|
||||
#include "dmcwmp.h"
|
||||
#include "dmuci.h"
|
||||
#include "dmubus.h"
|
||||
#include "dmcommon.h"
|
||||
#include "deviceinfo.h"
|
||||
|
||||
inline int entry_method_device_info_vcf(struct dmctx *ctx);
|
||||
inline int entry_method_device_info_vcf_instance(struct dmctx *ctx, char *ivcf);
|
||||
struct dev_vcf cur_dev_vcf = {0};
|
||||
|
||||
inline int init_args_vcf(struct dmctx *ctx, struct uci_section *s)
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ int set_management_server_periodic_inform_time(char *refparam, struct dmctx *ctx
|
|||
if (!(strptime(value, "%Y-%m-%dT%H:%M:%S", &tm))) {
|
||||
return 0;
|
||||
}
|
||||
sprintf(buf, "%d", mktime(&tm));
|
||||
sprintf(buf, "%ld", mktime(&tm));
|
||||
dmuci_set_value("cwmp", "acs", "periodic_inform_time", buf);
|
||||
cwmp_set_end_session(END_SESSION_RELOAD);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include "softwaremodules.h"
|
||||
|
||||
struct software_module cur_software_module = {0};
|
||||
inline int entry_softwaremodules_deploymentunit_instance(struct dmctx *ctx, char *idu);
|
||||
|
||||
inline int init_args_du_entry(struct dmctx *ctx, struct uci_section *s)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ struct software_module
|
|||
struct uci_section *softsection;
|
||||
};
|
||||
int update_softwaremodules_url(char *uuid, char *url);
|
||||
char *get_softwaremodules_url(char *uuid);
|
||||
char *get_softwaremodules_uuid(char *url);
|
||||
char *get_softwaremodules_username(char *uuid);
|
||||
char *get_softwaremodules_pass(char *uuid);
|
||||
|
|
|
|||
|
|
@ -104,7 +104,15 @@ inline int entry_voice_service_capabilities_codecs(struct dmctx *ctx, char *ivoi
|
|||
inline int entry_services_voice_service_voiceprofile(struct dmctx *ctx, char *ivoice);
|
||||
inline int entry_services_voice_service_line(struct dmctx *ctx, char *ivoice, char *profile_num);
|
||||
inline int entry_services_voice_service_line_codec_list(struct dmctx *ctx, char *ivoice, char *profile_num, char *line_num);
|
||||
int entry_method_root_Service_sub(struct dmctx *ctx, char *ivoice);
|
||||
inline int entry_method_Service(struct dmctx *ctx);
|
||||
inline int init_allowed_sip_codecs();
|
||||
int get_voice_service_max_line();
|
||||
inline int entry_services_voice_service_line_codec_list_instance(struct dmctx *ctx, char *ivoice, char *profile_num, char *line_num, char *codec_num);
|
||||
inline int entry_services_voice_service_line_codec_list_instance(struct dmctx *ctx, char *ivoice, char *profile_num, char *line_num, char *codec_num);
|
||||
inline int entry_services_voice_service_line_instance(struct dmctx *ctx, char *ivoice, char *profile_num, char *line_num);
|
||||
inline int entry_services_voice_service_voiceprofile_instance (struct dmctx *ctx, char *ivoice, char *profile_num);
|
||||
inline int entry_voice_service_capabilities_codecs_instance(struct dmctx *ctx, char *ivoice, char *id);
|
||||
|
||||
///////////////////////////////INIT ARGS//////////////////
|
||||
void wait_voice_service_up(void)
|
||||
|
|
@ -122,7 +130,7 @@ inline int init_allowed_sip_codecs()
|
|||
{
|
||||
json_object *res = NULL;
|
||||
char id[8], priority[24], ptime[24];
|
||||
int i;
|
||||
unsigned int i;
|
||||
available_sip_codecs = 0;
|
||||
dmubus_call("asterisk", "codecs", UBUS_ARGS{}, 0, &res);
|
||||
if(res) {
|
||||
|
|
@ -555,7 +563,7 @@ int get_entry_id(char *refparam, struct dmctx *ctx, char **value)
|
|||
|
||||
int get_capabilities_sip_codec(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct codec_args *cdcargs = (struct codec_args *)(ctx->args);
|
||||
bool sep = false;
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_sip_codecs); i++) {
|
||||
|
|
@ -569,7 +577,7 @@ int get_capabilities_sip_codec(char *refparam, struct dmctx *ctx, char **value)
|
|||
|
||||
int get_capabilities_sip_bitrate(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct codec_args *cdcargs = (struct codec_args *)(ctx->args);
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_sip_codecs); i++) {
|
||||
if(capabilities_sip_codecs[i].enumid == cdcargs->enumid) {
|
||||
|
|
@ -582,7 +590,7 @@ int get_capabilities_sip_bitrate(char *refparam, struct dmctx *ctx, char **value
|
|||
|
||||
int get_capabilities_sip_pperiod(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct codec_args *cdcargs = (struct codec_args *)(ctx->args);
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_sip_codecs); i++) {
|
||||
if(capabilities_sip_codecs[i].enumid == cdcargs->enumid) {
|
||||
|
|
@ -656,7 +664,7 @@ int set_voice_profile_reset(char *refparam, struct dmctx *ctx, int action, char
|
|||
case VALUESET:
|
||||
string_to_bool(value, &b);
|
||||
if(b) {
|
||||
dmubus_call_set("uci", "commit", UBUS_ARGS{{"config", "voice_client"}}, 1);
|
||||
dmubus_call_set("uci", "commit", UBUS_ARGS{{"config", "voice_client", String}}, 1);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -1046,7 +1054,7 @@ int set_voice_profile_sip_dtmfmethod(char *refparam, struct dmctx *ctx, int acti
|
|||
|
||||
int get_sip_profile_region(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
dmuci_get_option_value_string("voice_client", "BRCM", "country", value);
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_regions); i++) {
|
||||
|
|
@ -1060,7 +1068,7 @@ int get_sip_profile_region(char *refparam, struct dmctx *ctx, char **value)
|
|||
|
||||
int set_sip_profile_region(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct sip_args *sipargs = (struct sip_args *)(ctx->args);
|
||||
|
||||
switch (action) {
|
||||
|
|
@ -1187,7 +1195,7 @@ int set_voice_profile_rtp_localportmax(char *refparam, struct dmctx *ctx, int ac
|
|||
|
||||
int get_voice_service_vp_rtp_dscp(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
char *tmp;
|
||||
*value = "0";
|
||||
|
||||
|
|
@ -1203,7 +1211,7 @@ int get_voice_service_vp_rtp_dscp(char *refparam, struct dmctx *ctx, char **val
|
|||
|
||||
int set_voice_service_vp_rtp_dscp(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct sip_args *sipargs = (struct sip_args *)(ctx->args);
|
||||
|
||||
switch (action) {
|
||||
|
|
@ -1593,7 +1601,9 @@ int codec_compare(const void *s1, const void *s2)
|
|||
|
||||
void codec_priority_sort(struct uci_section *sip_section, char *new_codec)
|
||||
{
|
||||
int j, k = 0, h = 0, size = ARRAY_SIZE(codec_option_array);
|
||||
unsigned int j;
|
||||
|
||||
int k = 0, h = 0, size = ARRAY_SIZE(codec_option_array);
|
||||
char *ucodec, *coption, *poption;
|
||||
bool found;
|
||||
struct codec sipcodec[ARRAY_SIZE(codec_option_array)+1] = {0};
|
||||
|
|
@ -1642,7 +1652,8 @@ void codec_priority_sort(struct uci_section *sip_section, char *new_codec)
|
|||
void codec_priority_update(struct uci_section *sip_section)
|
||||
{
|
||||
bool found;
|
||||
int i, j;
|
||||
int i;
|
||||
unsigned int j;
|
||||
char *priority = NULL;
|
||||
char *codec;
|
||||
char pid[4] = "1";
|
||||
|
|
@ -1676,7 +1687,7 @@ int get_codec_entry_id(char *refparam, struct dmctx *ctx, char **value)
|
|||
|
||||
int capabilities_sip_codecs_get_codec(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_sip_codecs); i++) {
|
||||
|
|
@ -1690,7 +1701,7 @@ int capabilities_sip_codecs_get_codec(char *refparam, struct dmctx *ctx, char **
|
|||
|
||||
int capabilities_sip_codecs_get_bitrate(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(capabilities_sip_codecs); i++) {
|
||||
|
|
@ -1704,7 +1715,7 @@ int capabilities_sip_codecs_get_bitrate(char *refparam, struct dmctx *ctx, char
|
|||
|
||||
int get_capabilities_sip_codecs_pperiod(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
dmuci_get_value_by_section_string(line_codecargs->sip_section, line_codecargs->ptime_cdc, value);
|
||||
if ((*value)[0] != '\0')
|
||||
|
|
@ -1720,7 +1731,7 @@ int get_capabilities_sip_codecs_pperiod(char *refparam, struct dmctx *ctx, char
|
|||
|
||||
int get_line_codec_list_enable(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
char *val;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
|
||||
|
|
@ -1759,7 +1770,7 @@ int set_line_codec_list_packetization(char *refparam, struct dmctx *ctx, int act
|
|||
int set_line_codec_list_enable(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
bool b;
|
||||
int j;
|
||||
unsigned int j;
|
||||
char *codec;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
int error = string_to_bool(value, &b);
|
||||
|
|
@ -1794,7 +1805,7 @@ int set_line_codec_list_enable(char *refparam, struct dmctx *ctx, int action, ch
|
|||
|
||||
int set_line_codec_list_priority(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
char *val;
|
||||
struct line_codec_args *line_codecargs = (struct line_codec_args *)ctx->args;
|
||||
|
||||
|
|
@ -1944,7 +1955,7 @@ int entry_method_root_Service(struct dmctx *ctx)
|
|||
{
|
||||
IF_MATCH(ctx, DMROOT"Services.") {
|
||||
DMOBJECT(DMROOT"Services.", ctx, "0", 1, NULL, NULL, NULL);
|
||||
DMOBJECT(DMROOT"Services.VoiceService.", ctx, "0", 1, NULL, NULL, NULL, NULL);
|
||||
DMOBJECT(DMROOT"Services.VoiceService.", ctx, "0", 1, NULL, NULL, NULL);
|
||||
SUBENTRY(entry_method_Service, ctx);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ struct pforwardrgs cur_pforwardrgs = {0};
|
|||
|
||||
inline int entry_xinteno_ipacccfg_listcfgobj(struct dmctx *ctx);
|
||||
inline int entry_xinteno_ipacccfg_portforwarding(struct dmctx *ctx);
|
||||
inline int entry_xinteno_ipacccfg_portforwarding_instance(struct dmctx *ctx, char *iforward);
|
||||
inline int entry_xinteno_ipacccfg_listcfgobj_instance(struct dmctx *ctx, char *irule);
|
||||
inline int init_args_ipacc(struct dmctx *ctx, struct uci_section *s)
|
||||
{
|
||||
struct ipaccargs *args = &cur_ipaccargs;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include "dmuci.h"
|
||||
#include "dmubus.h"
|
||||
#include "dmcommon.h"
|
||||
#include "dmentry.h"
|
||||
#include "x_inteno_se_owsd.h"
|
||||
|
||||
struct owsd_listenargs cur_owsd_listenargs = {0};
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <unistd.h>
|
||||
#include "dmcwmp.h"
|
||||
#include "dmuci.h"
|
||||
#include "dmcommon.h"
|
||||
|
||||
int get_pwr_mgmt_value_ethapd(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,8 +19,10 @@
|
|||
struct linterfargs cur_linterfargs = {0};
|
||||
struct wifaceargs cur_wifaceargs = {0};
|
||||
static inline void laninterface_lookup(char *eths[], int *size);
|
||||
inline int entry_laninterface_lan(struct dmctx *ctx);
|
||||
inline int entry_laninterface_wlan(struct dmctx *ctx);
|
||||
int entry_laninterface_lan(struct dmctx *ctx);
|
||||
int entry_laninterface_wlan(struct dmctx *ctx);
|
||||
inline int entry_laninterface_wlan_instance(struct dmctx *ctx, char *wli);
|
||||
inline int entry_laninterface_lan_instance(struct dmctx *ctx, char *li);
|
||||
//////////////////////INIT ARGS////////////////////////////////
|
||||
static inline int init_lan_interface_args(char *lif, struct uci_section *port_sec)
|
||||
{
|
||||
|
|
@ -86,7 +88,7 @@ static inline void laninterface_lookup(char *eths[], int *size)
|
|||
*size = n;
|
||||
}
|
||||
|
||||
inline void init_laninterface_lan(struct dmctx *ctx)
|
||||
void init_laninterface_lan(struct dmctx *ctx)
|
||||
{
|
||||
struct linterfargs *args = &cur_linterfargs;
|
||||
ctx->args = (void *)args;
|
||||
|
|
@ -130,7 +132,7 @@ int set_wlan_conf_alias(char *refparam, struct dmctx *ctx, int action, char *val
|
|||
return 0;
|
||||
}
|
||||
/////////////SUB ENTRIES///////////////
|
||||
inline int entry_laninterface_lan(struct dmctx *ctx)
|
||||
int entry_laninterface_lan(struct dmctx *ctx)
|
||||
{
|
||||
char *ei, *ei_last = NULL;
|
||||
int i = 0;
|
||||
|
|
@ -148,7 +150,7 @@ inline int entry_laninterface_lan(struct dmctx *ctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
inline int entry_laninterface_wlan(struct dmctx *ctx)
|
||||
int entry_laninterface_wlan(struct dmctx *ctx)
|
||||
{
|
||||
struct uci_section *s = NULL;
|
||||
char *wi, *wi_last = NULL;
|
||||
|
|
|
|||
|
|
@ -11,12 +11,17 @@
|
|||
|
||||
#include <ctype.h>
|
||||
#include <uci.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include "cwmp.h"
|
||||
#include "dmcwmp.h"
|
||||
#include "dmuci.h"
|
||||
#include "dmubus.h"
|
||||
#include "dmcommon.h"
|
||||
#include "dmentry.h"
|
||||
#include "landevice.h"
|
||||
#include "wepkey.h"
|
||||
#define DELIMITOR ","
|
||||
#define TAILLE 10
|
||||
#define MAX_PROC_ARP 256
|
||||
|
|
@ -32,6 +37,8 @@ inline int entry_landevice_wlanconfiguration_associateddevice_instance(struct dm
|
|||
inline int entry_landevice_lanethernetinterfaceconfig_instance(struct dmctx *ctx, char *idev, char *ieth);
|
||||
inline int entry_landevice_host_instance(struct dmctx *ctx, char *idev, char *idx);
|
||||
|
||||
inline int entry_landevice_wlanconfiguration_wepkey_instance(struct dmctx *ctx, char *idev, char *iwlan, char *iwep);
|
||||
inline int entry_landevice_dhcpconditionalservingpool_option_instance(struct dmctx *ctx, char * idev, char *icondpool, char *idx);
|
||||
inline int entry_landevice_lanhostconfigmanagement_dhcpconditionalservingpool_instance(struct dmctx *ctx, char * idev, char *icondpool);
|
||||
inline int entry_landevice_lanhostconfigmanagement_dhcpconditionalservingpool(struct dmctx *ctx, char *idev);
|
||||
|
||||
|
|
@ -158,7 +165,7 @@ void update_dhcp_conf_start(int i, void *data)
|
|||
dm_ctx_init(&dmctx);
|
||||
dmuci_get_option_value_string("network", dhcp_param->interface, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -168,7 +175,7 @@ void update_dhcp_conf_start(int i, void *data)
|
|||
|
||||
dmuci_get_option_value_string("network", dhcp_param->interface, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0')
|
||||
|
|
@ -199,7 +206,7 @@ void update_dhcp_conf_end(int i, void *data)
|
|||
dm_ctx_init(&dmctx);
|
||||
dmuci_get_option_value_string("network", dhcp_param->interface, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -209,7 +216,7 @@ void update_dhcp_conf_end(int i, void *data)
|
|||
|
||||
dmuci_get_option_value_string("network", dhcp_param->interface, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", dhcp_param->interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0')
|
||||
|
|
@ -246,7 +253,7 @@ int get_dhcp_option_last_inst(struct uci_section *ss)
|
|||
int dr = 0;
|
||||
struct uci_section *s;
|
||||
|
||||
uci_path_foreach_sections(icwmpd, "dmmap", section_name(cur_dhcppoolargs.dhcppoolsection), s) {
|
||||
uci_path_foreach_sections(icwmpd, "dmmap", section_name(ss), s) {
|
||||
dmuci_get_value_by_section_string(s, "optioninst", &tmp);
|
||||
if (tmp[0] == '\0')
|
||||
break;
|
||||
|
|
@ -541,7 +548,7 @@ int get_lan_dns(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct ldlanargs *lanargs = (struct ldlanargs *)ctx->args;
|
||||
char *lan_name = section_name(lanargs->ldlansection);
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_parse_array(res, "dns-server", -1, NULL, value);
|
||||
if ((*value)[0] == '\0') {
|
||||
|
|
@ -698,7 +705,7 @@ int get_lan_dhcp_interval_address(struct dmctx *ctx, char **value, int option)
|
|||
}
|
||||
dmuci_get_value_by_section_string(lanargs->ldlansection, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
if (res)
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -707,7 +714,7 @@ int get_lan_dhcp_interval_address(struct dmctx *ctx, char **value, int option)
|
|||
}
|
||||
dmuci_get_value_by_section_string(lanargs->ldlansection, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0') {
|
||||
|
|
@ -945,7 +952,7 @@ int get_lan_dhcp_subnetmask(char *refparam, struct dmctx *ctx, char **value)
|
|||
if (s == NULL || (*value)[0] == '\0')
|
||||
dmuci_get_value_by_section_string(lanargs->ldlansection, "netmask", value);
|
||||
if ((*value)[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
int i_mask = atoi(mask);
|
||||
|
|
@ -1213,7 +1220,7 @@ int get_interface_ipaddress(char *refparam, struct dmctx *ctx, char **value)
|
|||
if (strcmp(proto, "static") == 0)
|
||||
dmuci_get_value_by_section_string(ipargs->ldipsection, "ipaddr", value);
|
||||
else {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "ipv4-address", 0, "address", value, NULL);
|
||||
}
|
||||
|
|
@ -1250,7 +1257,7 @@ int get_interface_subnetmask(char *refparam, struct dmctx *ctx, char **value)
|
|||
if (strcmp(proto, "static") == 0)
|
||||
dmuci_get_value_by_section_string(ipargs->ldipsection, "netmask", value);
|
||||
else {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", lan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "ipv4-address", 0, "mask", &val, NULL);
|
||||
tmp = cidr2netmask(atoi(val));
|
||||
|
|
@ -1424,7 +1431,7 @@ int get_lan_eth_iface_cfg_enable(char *refparam, struct dmctx *ctx, char **value
|
|||
json_object *res;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "up", -1, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1498,7 +1505,7 @@ int set_lan_eth_iface_cfg_maxbitrate(char *refparam, struct dmctx *ctx, int acti
|
|||
char *val = NULL;
|
||||
char *duplex;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
struct uci_section *s, *sec;
|
||||
struct uci_section *s, *sec = NULL;
|
||||
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
|
|
@ -1563,7 +1570,7 @@ int set_lan_eth_iface_cfg_duplexmode(char *refparam, struct dmctx *ctx, int acti
|
|||
{
|
||||
char *m, *spch, *rate, *val = NULL;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
struct uci_section *s, *sec;
|
||||
struct uci_section *s, *sec = NULL;
|
||||
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
|
|
@ -1606,7 +1613,7 @@ int get_lan_eth_iface_cfg_stats_tx_bytes(char *refparam, struct dmctx *ctx, char
|
|||
json_object *res;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1617,7 +1624,7 @@ int get_lan_eth_iface_cfg_stats_rx_bytes(char *refparam, struct dmctx *ctx, char
|
|||
json_object *res;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1628,7 +1635,7 @@ int get_lan_eth_iface_cfg_stats_tx_packets(char *refparam, struct dmctx *ctx, ch
|
|||
json_object *res;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1639,7 +1646,7 @@ int get_lan_eth_iface_cfg_stats_rx_packets(char *refparam, struct dmctx *ctx, ch
|
|||
json_object *res;
|
||||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ethargs->eth, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1667,7 +1674,7 @@ char *get_interface_type(char *mac, char *ndev)
|
|||
else {
|
||||
p = wunit;
|
||||
}
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", p}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", p, String}}, 1, &res);
|
||||
if(res) {
|
||||
json_object_object_foreach(res, key, val) {
|
||||
json_select(val, "assoc_mac", 0, NULL, &value, NULL);
|
||||
|
|
@ -2155,6 +2162,26 @@ int set_wlan_wep_key_index(char *refparam, struct dmctx *ctx, int action, char *
|
|||
return 0;
|
||||
}
|
||||
|
||||
int set_wlan_pre_shared_key(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
char *encryption;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
return 0;
|
||||
case VALUESET:
|
||||
dmuci_get_value_by_section_string(wlanargs->lwlansection, "encryption", &encryption);
|
||||
if (!strstr(encryption, "psk")) {
|
||||
reset_wlan(wlanargs->lwlansection);
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "gtk_rekey", "3600");
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "encryption", "psk");
|
||||
}
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "key", value);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int set_wlan_key_passphrase(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
char *option, *encryption;
|
||||
|
|
@ -2611,7 +2638,7 @@ int get_wlan_total_associations(char *refparam, struct dmctx *ctx, char **value)
|
|||
char *wunit, buf[8];
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_object_object_foreach(res, key, val) {
|
||||
if (strstr(key, "sta-"))
|
||||
|
|
@ -2626,7 +2653,7 @@ int get_wlan_devstatus_statistics_tx_bytes(char *refparam, struct dmctx *ctx, ch
|
|||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", -1, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -2637,7 +2664,7 @@ int get_wlan_devstatus_statistics_rx_bytes(char *refparam, struct dmctx *ctx, ch
|
|||
json_object *res;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -2648,7 +2675,7 @@ int get_wlan_devstatus_statistics_tx_packets(char *refparam, struct dmctx *ctx,
|
|||
json_object *res;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -2660,7 +2687,7 @@ int get_wlan_devstatus_statistics_rx_packets(char *refparam, struct dmctx *ctx,
|
|||
char *val = NULL;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -2930,26 +2957,6 @@ int get_wlan_associated_authenticationstate(char *refparam, struct dmctx *ctx, c
|
|||
return 0;
|
||||
}
|
||||
|
||||
int set_wlan_pre_shared_key(char *refparam, struct dmctx *ctx, int action, char *value)
|
||||
{
|
||||
char *encryption;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
switch (action) {
|
||||
case VALUECHECK:
|
||||
return 0;
|
||||
case VALUESET:
|
||||
dmuci_get_value_by_section_string(wlanargs->lwlansection, "encryption", &encryption);
|
||||
if (!strstr(encryption, "psk")) {
|
||||
reset_wlan(wlanargs->lwlansection);
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "gtk_rekey", "3600");
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "encryption", "psk");
|
||||
}
|
||||
dmuci_set_value_by_section(wlanargs->lwlansection, "key", value);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_wlan_psk_assoc_MACAddress(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
|
|
@ -2960,7 +2967,7 @@ int get_wlan_psk_assoc_MACAddress(char *refparam, struct dmctx *ctx, char **valu
|
|||
dmuci_get_value_by_section_string(wlanargs->lwlansection, "encryption", &encryption);
|
||||
if (strstr(encryption, "psk")) {
|
||||
sprintf(sta_pki, "sta-%d", wlanargs->pki);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, sta_pki, -1, "macaddr", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -3037,7 +3044,7 @@ int set_x_inteno_se_frequency(char *refparam, struct dmctx *ctx, int action, cha
|
|||
else if (value[0] == '5' || value[0] == '2')
|
||||
{
|
||||
uci_foreach_sections("wireless", "wifi-device", s) {
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", section_name(s)}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", section_name(s), String}}, 1, &res);
|
||||
if(res)
|
||||
{
|
||||
json_select(res, "frequency", 0, NULL, &freq, NULL);
|
||||
|
|
@ -3419,7 +3426,7 @@ inline int entry_landevice_wlanconfiguration(struct dmctx *ctx, struct uci_secti
|
|||
sprintf(buf, "%s.%d", wiface, wlctl_num);
|
||||
wiface = buf;
|
||||
}
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wiface}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wiface, String}}, 1, &res);
|
||||
init_ldargs_wlan(ctx, sss, wlctl_num, ss, section_name(ss), wiface, res, 0);
|
||||
wlctl_num++;
|
||||
SUBENTRY(entry_landevice_wlanconfiguration_instance, ctx, idev, iwlan);
|
||||
|
|
@ -3472,7 +3479,7 @@ inline int entry_landevice_wlanconfiguration_associateddevice(struct dmctx *ctx,
|
|||
char *idx, *idx_last = NULL;
|
||||
struct ldwlanargs *wlanargs = (struct ldwlanargs *)ctx->args;
|
||||
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", wlanargs->wiface, String}}, 1, &res);
|
||||
if (res) {
|
||||
char *value;
|
||||
json_object_object_foreach(res, key, wl_client_obj) {
|
||||
|
|
|
|||
|
|
@ -629,7 +629,7 @@ int get_bridge_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
struct args_layer2 *args = (struct args_layer2 *)ctx->args;
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(args->layer2section)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(args->layer2section), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -648,10 +648,10 @@ int set_bridge_status(char *refparam, struct dmctx *ctx, int action, char *value
|
|||
return 0;
|
||||
case VALUESET:
|
||||
if (b) {
|
||||
dmubus_call_set("network.interface", "up", UBUS_ARGS{{"interface", section_name(args->layer2section)}}, 1);
|
||||
dmubus_call_set("network.interface", "up", UBUS_ARGS{{"interface", section_name(args->layer2section), String}}, 1);
|
||||
}
|
||||
else {
|
||||
dmubus_call_set("network.interface", "down", UBUS_ARGS{{"interface", section_name(args->layer2section)}}, 1);
|
||||
dmubus_call_set("network.interface", "down", UBUS_ARGS{{"interface", section_name(args->layer2section), String}}, 1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
|
||||
#include <uci.h>
|
||||
#include <ctype.h>
|
||||
#include <arpa/inet.h>
|
||||
#include "dmcwmp.h"
|
||||
#include "dmentry.h"
|
||||
#include "dmuci.h"
|
||||
#include "dmubus.h"
|
||||
#include "dmcommon.h"
|
||||
|
|
@ -460,7 +462,7 @@ char *get_layer3_interface(struct dmctx *ctx)
|
|||
if (!strstr(bval, "br-")) {
|
||||
uci_foreach_option_cont("network", "interface", "ifname", bval, ss) {
|
||||
ifname = section_name(ss);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", ifname}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", ifname, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "device", 0, NULL, &device, NULL);
|
||||
if (strcmp(bval, device) == 0) {
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ int check_multiwan_interface(struct uci_section *interface_section, char *fwan)
|
|||
if (type[0] == '\0' || cn < 2)
|
||||
return 0;
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(interface_section)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(interface_section), String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "device", -1, NULL, &device, NULL);
|
||||
}
|
||||
|
|
@ -888,7 +888,7 @@ int get_wan_eth_intf_enable(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "up", -1, NULL, &val, NULL);
|
||||
if (val) {
|
||||
|
|
@ -917,7 +917,7 @@ int set_wan_eth_intf_enable(char *refparam, struct dmctx *ctx, int action, char
|
|||
return 0;
|
||||
case VALUESET: //ENHANCEMENT look for function to start and stop the ethernet driver
|
||||
string_to_bool(value, &b);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "up", 0, NULL, &enable, NULL);
|
||||
string_to_bool(enable, &enable_b);
|
||||
|
|
@ -939,7 +939,7 @@ int set_wan_eth_intf_enable(char *refparam, struct dmctx *ctx, int action, char
|
|||
goto end;
|
||||
}
|
||||
else {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"name", section_name(s)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"name", section_name(s), String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "device", -1, NULL, &device, NULL);
|
||||
if (strstr(device, wandargs->fdev)) {
|
||||
|
|
@ -962,7 +962,7 @@ int get_wan_eth_intf_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
bool b;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "Disabled");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
if (*value) {
|
||||
|
|
@ -979,7 +979,7 @@ int get_wan_eth_intf_mac(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "00:00:00:00:00:00");
|
||||
json_select(res, "macaddr", 0, NULL, value, NULL);
|
||||
if (!(*value) || (*value)[0] == '\0') {
|
||||
|
|
@ -993,7 +993,7 @@ int get_wan_eth_intf_stats_tx_bytes(char *refparam, struct dmctx *ctx, char **va
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "statistics", 0, "tx_bytes", value, NULL);
|
||||
if (!(*value) || (*value)[0] == '\0') {
|
||||
|
|
@ -1007,7 +1007,7 @@ int get_wan_eth_intf_stats_rx_bytes(char *refparam, struct dmctx *ctx, char **va
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
if (!(*value) || (*value)[0] == '\0') {
|
||||
|
|
@ -1021,7 +1021,7 @@ int get_wan_eth_intf_stats_tx_packets(char *refparam, struct dmctx *ctx, char **
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
if (!(*value) || (*value)[0] == '\0') {
|
||||
|
|
@ -1035,7 +1035,7 @@ int get_wan_eth_intf_stats_rx_packets(char *refparam, struct dmctx *ctx, char **
|
|||
struct wanargs *wandargs = (struct wanargs *)ctx->args;
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", wandargs->fdev, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
if (!(*value) || (*value)[0] == '\0') {
|
||||
|
|
@ -1135,7 +1135,8 @@ int set_wan_dsl_link_config_atm_encapsulation(char *refparam, struct dmctx *ctx,
|
|||
{
|
||||
int i;
|
||||
struct uci_section *s;
|
||||
char *type, *encapsulation, *encaptype, *pch;
|
||||
char *type, *pch;
|
||||
char *encapsulation = NULL, *encaptype = NULL;
|
||||
struct wancdevargs *wandcdevargs = (struct wancdevargs *)ctx->args;
|
||||
|
||||
switch (action) {
|
||||
|
|
@ -1218,7 +1219,7 @@ int get_wan_device_mng_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct wancprotoargs *wandcprotoargs = (struct wancprotoargs *) (ctx->args);
|
||||
|
||||
intf = section_name(wandcprotoargs->wancprotosection);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "Disconnected");
|
||||
if (json_select(res, "up", 0, NULL, &status, NULL) != -1)
|
||||
{
|
||||
|
|
@ -1527,7 +1528,7 @@ int get_wan_device_ppp_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct wancprotoargs *wandcprotoargs = (struct wancprotoargs *) (ctx->args);
|
||||
|
||||
intf = section_name(wandcprotoargs->wancprotosection);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
if (json_select(res, "up", 0, NULL, &status, NULL) != -1)
|
||||
{
|
||||
|
|
@ -1565,10 +1566,10 @@ int get_wan_device_mng_interface_mac(char *refparam, struct dmctx *ctx, char **v
|
|||
*value = "";
|
||||
intf = section_name(wandcprotoargs->wancprotosection);
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", intf, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
if (json_select(res, "device", 0, NULL, &device, NULL) != -1) {
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", device}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", device, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "macaddr", 0, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1647,7 +1648,7 @@ int get_layer2_interface(char *wan_name, char **ifname)
|
|||
dmuci_get_option_value_string("network", wan_name, "type", &wtype);
|
||||
if(wtype[0] == '\0' || strcmp(wtype, "anywan") == 0)
|
||||
{
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", wan_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", wan_name, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "device", -1, NULL, &device, NULL);
|
||||
if(device[0] != '\0') {
|
||||
|
|
@ -1945,7 +1946,7 @@ inline int ubus_get_wan_stats(json_object *res, char **value, char *stat_mod)
|
|||
dmuci_get_option_value_string("network", section_name(cur_wancprotoargs.wancprotosection), "proto", &proto);
|
||||
if (strcmp(proto, "dhcp") == 0 || strcmp(proto, "pppoe") == 0)
|
||||
{
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wancdevargs.wan_ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wancdevargs.wan_ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, stat_mod, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -1956,28 +1957,28 @@ inline int ubus_get_wan_stats(json_object *res, char **value, char *stat_mod)
|
|||
|
||||
int get_wan_link_connection_eth_bytes_received(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
json_object *res = NULL;
|
||||
ubus_get_wan_stats(res, value, "rx_bytes");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_wan_link_connection_eth_bytes_sent(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
json_object *res = NULL;
|
||||
ubus_get_wan_stats(res, value, "tx_bytes");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_wan_link_connection_eth_pack_received(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
json_object *res = NULL;
|
||||
ubus_get_wan_stats(res, value, "rx_packets");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_wan_link_connection_eth_pack_sent(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
json_object *res = NULL;
|
||||
ubus_get_wan_stats(res, value, "tx_packets");
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -2056,7 +2057,7 @@ int set_wan_ppp_con_alias(char *refparam, struct dmctx *ctx, int action, char *v
|
|||
return 0;
|
||||
}
|
||||
/////////////SUB ENTRIES///////////////
|
||||
inline int entry_wandevice_sub(struct dmctx *ctx)
|
||||
int entry_wandevice_sub(struct dmctx *ctx)
|
||||
{
|
||||
int i = 0;
|
||||
bool notif_permission;
|
||||
|
|
@ -2095,7 +2096,7 @@ inline int entry_wandevice_sub(struct dmctx *ctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
inline int entry_wandevice_wanconnectiondevice(struct dmctx *ctx, char *dev, int i, char *cwritable)
|
||||
int entry_wandevice_wanconnectiondevice(struct dmctx *ctx, char *dev, int i, char *cwritable)
|
||||
{
|
||||
struct uci_section *s = NULL;
|
||||
char *fwan;
|
||||
|
|
@ -2123,7 +2124,7 @@ inline int entry_wandevice_wanconnectiondevice(struct dmctx *ctx, char *dev, int
|
|||
return 0;
|
||||
}
|
||||
|
||||
inline int entry_wandevice_wanprotocolconnection(struct dmctx *ctx, char *idev, char *iwan, char *fwan)
|
||||
int entry_wandevice_wanprotocolconnection(struct dmctx *ctx, char *idev, char *iwan, char *fwan)
|
||||
{
|
||||
struct uci_section *ss = NULL;
|
||||
char *pack, *stype, *p, *iconp_ip_last = NULL, *iconp_ppp_last = NULL;
|
||||
|
|
@ -2179,7 +2180,7 @@ int entry_method_root_WANDevice(struct dmctx *ctx)
|
|||
|
||||
inline int entry_wandevice_sub_instance(struct dmctx *ctx, char *dev, int i, char *cwritable, bool notif_permission)
|
||||
{
|
||||
IF_MATCH(ctx, DMROOT"WANDevice.", dev) {
|
||||
IF_MATCH(ctx, DMROOT"WANDevice.%s.", dev) {
|
||||
DMOBJECT(DMROOT"WANDevice.%s.", ctx, "0", notif_permission, NULL, NULL, NULL, dev);
|
||||
DMPARAM("Alias", ctx, "1", get_wan_dev_alias, set_wan_dev_alias, NULL, 0, 1, UNDEF, NULL);
|
||||
DMOBJECT(DMROOT"WANDevice.%s.WANConnectionDevice.", ctx, cwritable, notif_permission, add_wan_wanconnectiondevice, delete_wan_wanconnectiondevice_all, NULL, dev);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
struct sewifiargs cur_wifiargs = {0};
|
||||
|
||||
inline int entry_sewifi_radio(struct dmctx *ctx);
|
||||
inline int entry_sewifi_radio_instance(struct dmctx *ctx, char *wnum);
|
||||
inline int init_se_wifi(struct dmctx *ctx, struct uci_section *s)
|
||||
{
|
||||
struct sewifiargs *args = &cur_wifiargs;
|
||||
|
|
@ -36,7 +37,7 @@ int get_wifi_frequency(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct sewifiargs *wifiargs = (struct sewifiargs *)ctx->args;
|
||||
char *wlan_name = section_name(wifiargs->sewifisection);
|
||||
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "frequency", 0, NULL, &freq, NULL);
|
||||
dmastrcat(value, freq, "GHz"); // MEM WILL BE FREED IN DMMEMCLEAN
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ int get_br_enable(char *refparam, struct dmctx *ctx, char **value)
|
|||
json_object *res;
|
||||
char *br_name;
|
||||
dmastrcat(&br_name, "br-", section_name(cur_bridging_args.bridge_sec));
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", br_name}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", br_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "false");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -323,7 +323,7 @@ int get_br_enable(char *refparam, struct dmctx *ctx, char **value)
|
|||
int get_br_status(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "Disabled");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
if(strcmp(*value,"true") == 0)
|
||||
|
|
@ -342,10 +342,10 @@ int set_br_enable(char *refparam, struct dmctx *ctx, int action, char *value)
|
|||
return 0;
|
||||
case VALUESET:
|
||||
if (b) {
|
||||
dmubus_call_set("network.interface", "up", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec)}}, 1);
|
||||
dmubus_call_set("network.interface", "up", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec), String}}, 1);
|
||||
}
|
||||
else {
|
||||
dmubus_call_set("network.interface", "down", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec)}}, 1);
|
||||
dmubus_call_set("network.interface", "down", UBUS_ARGS{{"interface", section_name(cur_bridging_args.bridge_sec), String}}, 1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -375,7 +375,7 @@ int get_br_port_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
dmuci_get_value_by_section_string(cur_bridging_port_args.bridge_port_sec, "ifname", value);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", *value}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", *value, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "Down");
|
||||
json_select(res, "up", 0, NULL, value, NULL);
|
||||
if (strcmp(*value,"true") == 0)
|
||||
|
|
@ -409,7 +409,7 @@ int get_br_port_stats_tx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
dmuci_get_value_by_section_string(cur_bridging_port_args.bridge_port_sec, "ifname", value);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -421,7 +421,7 @@ int get_br_port_stats_rx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
|||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmuci_get_value_by_section_string(cur_bridging_port_args.bridge_port_sec, "ifname", value);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -433,7 +433,7 @@ int get_br_port_stats_tx_packets(char *refparam, struct dmctx *ctx, char **value
|
|||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmuci_get_value_by_section_string(cur_bridging_port_args.bridge_port_sec, "ifname", value);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -445,7 +445,7 @@ int get_br_port_stats_rx_packets(char *refparam, struct dmctx *ctx, char **value
|
|||
struct ldethargs *ethargs = (struct ldethargs *)ctx->args;
|
||||
|
||||
dmuci_get_value_by_section_string(cur_bridging_port_args.bridge_port_sec, "ifname", value);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", *value, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ int get_dns_server(char *refparam, struct dmctx *ctx, char **value)
|
|||
json_object *res;
|
||||
int len;
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if(res)
|
||||
json_parse_array(res, "dns-server", -1, NULL, value);
|
||||
else
|
||||
|
|
@ -286,7 +286,7 @@ int get_dhcp_interval_address(struct dmctx *ctx, char **value, int option)
|
|||
}
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res)
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -295,7 +295,7 @@ int get_dhcp_interval_address(struct dmctx *ctx, char **value, int option)
|
|||
}
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0') {
|
||||
|
|
@ -341,7 +341,7 @@ int set_dhcp_address_min(char *refparam, struct dmctx *ctx, int action, char *va
|
|||
case VALUESET:
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -351,7 +351,7 @@ int set_dhcp_address_min(char *refparam, struct dmctx *ctx, int action, char *va
|
|||
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0')
|
||||
|
|
@ -392,7 +392,7 @@ int set_dhcp_address_max(char *refparam, struct dmctx *ctx, int action, char *va
|
|||
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "ipaddr", &ipaddr);
|
||||
if (ipaddr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "address", &ipaddr, NULL);
|
||||
}
|
||||
|
|
@ -402,7 +402,7 @@ int set_dhcp_address_max(char *refparam, struct dmctx *ctx, int action, char *va
|
|||
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "netmask", &mask);
|
||||
if (mask[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
if (mask[0] == '\0')
|
||||
|
|
@ -513,7 +513,7 @@ int get_dhcp_subnetmask(char *refparam, struct dmctx *ctx, char **value)
|
|||
if (s == NULL || (*value)[0] == '\0')
|
||||
dmuci_get_option_value_string("network", cur_dhcp_args.interface, "netmask", value);
|
||||
if ((*value)[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", cur_dhcp_args.interface, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "ipv4-address", 0, "mask", &mask, NULL);
|
||||
int i_mask = atoi(mask);
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ int get_eth_port_enable(char *refparam, struct dmctx *ctx, char **value)
|
|||
} else
|
||||
ifname = dmstrdup(cur_eth_port_args.ifname);
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "up", -1, NULL, value, NULL);
|
||||
dmfree(ifname);
|
||||
|
|
@ -166,7 +166,7 @@ int get_eth_port_mac_address(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "macaddr", -1, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -232,7 +232,7 @@ int get_eth_port_stats_tx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -242,7 +242,7 @@ int get_eth_port_stats_rx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -252,7 +252,7 @@ int get_eth_port_stats_tx_packets(char *refparam, struct dmctx *ctx, char **valu
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -262,7 +262,7 @@ int get_eth_port_stats_rx_packets(char *refparam, struct dmctx *ctx, char **valu
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_eth_port_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ char *get_interface_type(char *mac, char *ndev)
|
|||
else {
|
||||
p = wunit;
|
||||
}
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", p}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", p, String}}, 1, &res);
|
||||
if(res) {
|
||||
json_object_object_foreach(res, key, val) {
|
||||
json_select(val, "macaddr", 0, NULL, &value, NULL);
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ int get_ip_int_lower_layer(char *refparam, struct dmctx *ctx, char **value)
|
|||
return 0;
|
||||
}
|
||||
} else if (wtype[0] == '\0' || strcmp(wtype, "anywan") == 0) {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_ip_args.ip_sec)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_ip_args.ip_sec), String}}, 1, &res);
|
||||
dmuci_get_value_by_section_string(cur_ip_args.ip_sec, "ifname", &wifname);
|
||||
strcpy (linker, wifname);
|
||||
if (res) {
|
||||
|
|
@ -695,13 +695,13 @@ inline int entry_ip_interface(struct dmctx *ctx)
|
|||
continue;
|
||||
dmuci_get_value_by_section_string(net_sec, "ipaddr", &ipv4addr);
|
||||
if (ipv4addr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(net_sec)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(net_sec), String}}, 1, &res);
|
||||
if (res)
|
||||
json_select(res, "ipv4-address", 0, "address", &ipv4addr, NULL);
|
||||
}
|
||||
dmuci_get_value_by_section_string(net_sec, "ip6addr", &ipv6addr);
|
||||
if (ipv6addr[0] == '\0') {
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(net_sec)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(net_sec), String}}, 1, &res);
|
||||
if (res)
|
||||
json_select(res, "ipv6-address", 0, "address", &ipv6addr, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ int get_ppp_status(char *refparam, struct dmctx *ctx, char **value)
|
|||
json_object *res = NULL;
|
||||
bool bstatus = false, bpend = false;
|
||||
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_ppp_args.ppp_sec)}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", section_name(cur_ppp_args.ppp_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
if (json_select(res, "up", 0, NULL, &status, NULL) != -1)
|
||||
{
|
||||
|
|
@ -137,7 +137,7 @@ inline int ubus_get_wan_stats(json_object *res, char **value, char *stat_mod)
|
|||
dmuci_get_value_by_section_string(cur_ppp_args.ppp_sec, "ifname", &ifname);
|
||||
dmuci_get_value_by_section_string(cur_ppp_args.ppp_sec, "proto", &proto);
|
||||
if (strcmp(proto, "pppoe") == 0) {
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, stat_mod, value, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ char *get_router_ipv4forwarding_interface(struct dmctx *ctx)
|
|||
if (!strstr(bval, "br-")) {
|
||||
uci_foreach_option_cont("network", "interface", "ifname", bval, ss) {
|
||||
ifname = section_name(ss);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", ifname}}, 1, &res);
|
||||
dmubus_call("network.interface", "status", UBUS_ARGS{{"interface", ifname, String}}, 1, &res);
|
||||
if (res) {
|
||||
json_select(res, "device", 0, NULL, &device, NULL);
|
||||
if (strcmp(bval, device) == 0) {
|
||||
|
|
|
|||
|
|
@ -516,7 +516,7 @@ int get_ptm_lower_layer(char *refparam, struct dmctx *ctx, char **value)
|
|||
inline int ubus_atm_stats(json_object *res, char **value, char *stat_mod)
|
||||
{
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_atm_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_atm_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, stat_mod, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -553,7 +553,7 @@ int get_atm_stats_pack_sent(char *refparam, struct dmctx *ctx, char **value)
|
|||
inline int ubus_ptm_stats(json_object *res, char **value, char *stat_mod)
|
||||
{
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_ptm_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_ptm_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, stat_mod, value, NULL);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ int get_wlan_bssid(char *refparam, struct dmctx *ctx, char **value)
|
|||
json_object *res;
|
||||
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "bssid", 0, NULL, value, NULL);
|
||||
return 0;
|
||||
|
|
@ -174,7 +174,7 @@ int get_radio_frequency(char *refparam, struct dmctx *ctx, char **value)
|
|||
char *freq;
|
||||
json_object *res;
|
||||
char *wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "frequency", 0, NULL, &freq, NULL);
|
||||
if(strcmp(freq, "2") == 0 ) {
|
||||
|
|
@ -194,7 +194,7 @@ int get_radio_operating_channel_bandwidth(char *refparam, struct dmctx *ctx, cha
|
|||
if (value[0] == '\0')
|
||||
{
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "bandwidth", 0, NULL, &bandwith, NULL);
|
||||
dmastrcat(value, bandwith, "MHz"); // MEM WILL BE FREED IN DMMEMCLEAN
|
||||
|
|
@ -276,7 +276,7 @@ int get_radio_supported_standard(char *refparam, struct dmctx *ctx, char **value
|
|||
char *freq, *wlan_name;
|
||||
json_object *res;
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "b, g, n");
|
||||
json_select(res, "frequency", 0, NULL, &freq, NULL);
|
||||
if (strcmp(freq, "5") == 0)
|
||||
|
|
@ -311,7 +311,7 @@ int set_radio_operating_standard(char *refparam, struct dmctx *ctx, int action,
|
|||
return 0;
|
||||
case VALUESET:
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
json_select(res, "frequency", 0, NULL, &freq, NULL);
|
||||
if (strcmp(freq, "5") == 0) {
|
||||
if (strcmp(value, "n") == 0)
|
||||
|
|
@ -355,7 +355,7 @@ int get_radio_channel(char *refparam, struct dmctx *ctx, char **value)
|
|||
dmuci_get_value_by_section_string(cur_wifi_radio_args.wifi_radio_sec, "channel", value);
|
||||
if (strcmp(*value, "auto") == 0 || (*value)[0] == '\0') {
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "channel", 0, NULL, value, NULL);
|
||||
}
|
||||
|
|
@ -400,7 +400,7 @@ int set_radio_auto_channel_enable(char *refparam, struct dmctx *ctx, int action,
|
|||
value = "auto";
|
||||
else {
|
||||
wlan_name = section_name(cur_wifi_radio_args.wifi_radio_sec);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name}}, 1, &res);
|
||||
dmubus_call("router.wireless", "status", UBUS_ARGS{{"vif", wlan_name, String}}, 1, &res);
|
||||
if(res == NULL)
|
||||
return 0;
|
||||
else
|
||||
|
|
@ -416,7 +416,7 @@ int get_radio_statistics_tx_bytes(char *refparam, struct dmctx *ctx, char **valu
|
|||
{
|
||||
json_object *res;
|
||||
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec)}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", -1, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -425,7 +425,7 @@ int get_radio_statistics_tx_bytes(char *refparam, struct dmctx *ctx, char **valu
|
|||
int get_radio_statistics_rx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec)}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -434,7 +434,7 @@ int get_radio_statistics_rx_bytes(char *refparam, struct dmctx *ctx, char **valu
|
|||
int get_radio_statistics_tx_packets(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec)}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -443,7 +443,7 @@ int get_radio_statistics_tx_packets(char *refparam, struct dmctx *ctx, char **va
|
|||
int get_radio_statistics_rx_packets(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec)}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", section_name(cur_wifi_radio_args.wifi_radio_sec), String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -452,7 +452,7 @@ int get_radio_statistics_rx_packets(char *refparam, struct dmctx *ctx, char **va
|
|||
int get_ssid_statistics_tx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", -1, "tx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -461,7 +461,7 @@ int get_ssid_statistics_tx_bytes(char *refparam, struct dmctx *ctx, char **value
|
|||
int get_ssid_statistics_rx_bytes(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_bytes", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -470,7 +470,7 @@ int get_ssid_statistics_rx_bytes(char *refparam, struct dmctx *ctx, char **value
|
|||
int get_ssid_statistics_tx_packets(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "tx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -479,7 +479,7 @@ int get_ssid_statistics_tx_packets(char *refparam, struct dmctx *ctx, char **val
|
|||
int get_ssid_statistics_rx_packets(char *refparam, struct dmctx *ctx, char **value)
|
||||
{
|
||||
json_object *res;
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname}}, 1, &res);
|
||||
dmubus_call("network.device", "status", UBUS_ARGS{{"name", cur_wifi_ssid_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "");
|
||||
json_select(res, "statistics", 0, "rx_packets", value, NULL);
|
||||
return 0;
|
||||
|
|
@ -561,7 +561,7 @@ int get_access_point_total_associations(char *refparam, struct dmctx *ctx, char
|
|||
int i = 0;
|
||||
json_object *res;
|
||||
char *wunit, buf[8];
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", cur_wifi_ssid_args.ifname}}, 1, &res);
|
||||
dmubus_call("router.wireless", "stas", UBUS_ARGS{{"vif", cur_wifi_ssid_args.ifname, String}}, 1, &res);
|
||||
DM_ASSERT(res, *value = "0");
|
||||
json_object_object_foreach(res, key, val) {
|
||||
if (strstr(key, "sta-"))
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <uci.h>
|
||||
#include <ctype.h>
|
||||
#include "dmuci.h"
|
||||
#include "dmmem.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -148,6 +148,14 @@ struct uci_section *dmuci_walk_state_section(char *package, char *stype, void *a
|
|||
struct uci_section *dmuci_walk_section_icwmpd(char *package, char *stype, void *arg1, void *arg2, int cmp , int (*filter)(struct uci_section *s, void *value), struct uci_section *prev_section, int walk);
|
||||
char *dmuci_set_value_by_section_icwmpd(struct uci_section *s, char *option, char *value);
|
||||
|
||||
int dmuci_add_section_icwmpd(char *package, char *stype, struct uci_section **s, char **value);
|
||||
int dmuci_add_state_section(char *package, char *stype, struct uci_section **s, char **value);
|
||||
char *dmuci_set_varstate_value(char *package, char *section, char *option, char *value);
|
||||
char *dmuci_set_value_icwmpd(char *package, char *section, char *option, char *value);
|
||||
int dmuci_delete_by_section_icwmpd(struct uci_section *s, char *option, char *value);
|
||||
int dmuci_rename_section_by_section(struct uci_section *s, char *value);
|
||||
int dmuci_exit_icwmpd(void);
|
||||
int dmuci_init_icwmpd(void);
|
||||
#define NEW_UCI_PATH(UCI_PATH, CPATH, DPATH) \
|
||||
struct uci_context *uci_ctx_##UCI_PATH; \
|
||||
const char *uci_savedir_##UCI_PATH = DPATH; \
|
||||
|
|
|
|||
3
event.c
3
event.c
|
|
@ -24,6 +24,7 @@
|
|||
#include "jshn.h"
|
||||
#include "external.h"
|
||||
#include "dmcwmp.h"
|
||||
#include "dmentry.h"
|
||||
#include "deviceinfo.h"
|
||||
|
||||
LIST_HEAD(list_value_change);
|
||||
|
|
@ -75,7 +76,7 @@ void cwmp_save_event_container (struct cwmp *cwmp,struct event_container *event_
|
|||
|
||||
struct event_container *cwmp_add_event_container (struct cwmp *cwmp, int event_code, char *command_key)
|
||||
{
|
||||
static unsigned int id;
|
||||
static int id;
|
||||
struct event_container *event_container;
|
||||
struct session *session;
|
||||
struct list_head *ilist;
|
||||
|
|
|
|||
|
|
@ -186,8 +186,9 @@ void external_init()
|
|||
close(pfds_out[0]);
|
||||
|
||||
if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
|
||||
{
|
||||
DD(ERROR, "icwmp script intialization: signal ignoring error");
|
||||
|
||||
}
|
||||
external_read_pipe_input(NULL);
|
||||
|
||||
DD(INFO, "icwmp script is listening");
|
||||
|
|
|
|||
7
http.c
7
http.c
|
|
@ -20,6 +20,8 @@
|
|||
#include <arpa/inet.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <uci.h>
|
||||
#include "external.h"
|
||||
#include "cwmp.h"
|
||||
#include "log.h"
|
||||
#include "xml.h"
|
||||
|
|
@ -48,8 +50,7 @@ static struct http_client http_c;
|
|||
static CURL *curl;
|
||||
#endif
|
||||
|
||||
int
|
||||
http_client_init(struct cwmp *cwmp)
|
||||
int http_client_init(struct cwmp *cwmp)
|
||||
{
|
||||
char *dhcp_dis;
|
||||
char *acs_var_stat;
|
||||
|
|
@ -153,7 +154,7 @@ http_get_response(void *buffer, size_t size, size_t rxed, char **msg_in)
|
|||
{
|
||||
char *c;
|
||||
|
||||
if (asprintf(&c, "%s%.*s", *msg_in, size * rxed, buffer) == -1) {
|
||||
if (asprintf(&c, "%s%.*s", *msg_in, size * rxed, (char *)buffer) == -1) {
|
||||
FREE(*msg_in);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,10 +42,12 @@ struct search_keywords {
|
|||
|
||||
extern pthread_mutex_t mutex_backup_session;
|
||||
|
||||
int cwmp_init_backup_session(struct cwmp *cwmp, char **ret, enum backup_loading load);
|
||||
void bkp_session_save();
|
||||
int cwmp_load_saved_session(struct cwmp *cwmp, char **acsurl, enum backup_loading load);
|
||||
mxml_node_t *bkp_session_insert_event(int index, char *command_key, int id, char *status);
|
||||
void bkp_session_delete_event(int id, char *status);
|
||||
void bkp_session_simple_insert_in_parent(char *parent, char *child, char *value);
|
||||
void bkp_session_insert_parameter(mxml_node_t *b, char *name);
|
||||
void bkp_session_simple_insert(char *parent, char *child, char *value);
|
||||
void bkp_session_move_inform_to_inform_send ();
|
||||
|
|
@ -64,4 +66,7 @@ void bkp_session_delete_transfer_complete(struct transfer_complete *ptransfer_co
|
|||
void bkp_session_insert_schedule_download(struct schedule_download *pschedule_download);
|
||||
void bkp_session_insert_apply_schedule_download(struct apply_schedule_download *papply_schedule_download);
|
||||
void bkp_session_delete_apply_schedule_download(struct apply_schedule_download *papply_schedule_download);
|
||||
void bkp_session_delete_du_state_change_complete(struct du_state_change_complete *pdu_state_change_complete);
|
||||
void bkp_session_delete_schedule_download(struct schedule_download *pschedule_download);
|
||||
void bkp_session_insert_du_state_change_complete(struct du_state_change_complete *pdu_state_change_complete);
|
||||
#endif /* _BACKUPSESSION_H__ */
|
||||
|
|
|
|||
20
inc/cwmp.h
20
inc/cwmp.h
|
|
@ -201,8 +201,8 @@ typedef struct config {
|
|||
bool lw_notification_enable;
|
||||
char *lw_notification_hostname;
|
||||
int lw_notification_port;
|
||||
unsigned int amd_version;
|
||||
unsigned int supported_amd_version;
|
||||
int amd_version;
|
||||
int supported_amd_version;
|
||||
unsigned int instance_mode;
|
||||
unsigned int session_timeout;
|
||||
bool xmpp_enable;
|
||||
|
|
@ -336,6 +336,12 @@ extern struct list_head list_lw_value_change;
|
|||
extern struct list_head list_value_change;
|
||||
extern pthread_mutex_t mutex_value_change;
|
||||
|
||||
int cwmp_config_reload(struct cwmp *cwmp);
|
||||
int cwmp_move_session_to_session_send (struct cwmp *cwmp, struct session *session);
|
||||
int cwmp_schedule_rpc (struct cwmp *cwmp, struct session *session);
|
||||
int run_session_end_func (struct session *session);
|
||||
int cwmp_move_session_to_session_queue (struct cwmp *cwmp, struct session *session);
|
||||
int cwmp_session_destructor (struct cwmp *cwmp, struct session *session);
|
||||
int dm_add_end_session(void(*function)(int a, void *d), int action, void *data);
|
||||
int apply_end_session();
|
||||
struct rpc *cwmp_add_session_rpc_cpe (struct session *session, int type);
|
||||
|
|
@ -348,6 +354,7 @@ void cwmp_save_event_container (struct cwmp *cwmp,struct event_container *event_
|
|||
void *thread_event_periodic (void *v);
|
||||
void cwmp_add_notification(void);
|
||||
int netlink_init(void);
|
||||
int netlink_init_v6(void);
|
||||
char * mix_get_time(void);
|
||||
char * mix_get_time_of(time_t t_time);
|
||||
void *thread_exit_program (void *v);
|
||||
|
|
@ -358,4 +365,13 @@ void cwmp_set_end_session (unsigned int end_session_flag);
|
|||
void *thread_handle_notify(void *v);
|
||||
int zlib_compress (char *message, unsigned char **zmsg, int *zlen, int type);
|
||||
int cwmp_get_int_event_code(char *code);
|
||||
int cwmp_apply_acs_changes ();
|
||||
int cwmp_init(int argc, char** argv,struct cwmp *cwmp);
|
||||
int cwmp_config_reload(struct cwmp *cwmp);
|
||||
int uci_get_value(char *cmd,char **value);
|
||||
int uci_set_state_value(char *cmd);
|
||||
int uci_get_state_value(char *cmd,char **value);
|
||||
int save_acs_bkp_config(struct cwmp *cwmp);
|
||||
int get_instance_mode_config();
|
||||
int get_amd_version_config();
|
||||
#endif /* _CWMP_H__ */
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ static char *fc_script = "./ext/openwrt/scripts/icwmp.sh";
|
|||
static char *fc_script = "/usr/sbin/icwmp";
|
||||
#endif
|
||||
|
||||
void external_du_change_stateFaultResp (char *fault_code, char *version, char *name);
|
||||
void external_downloadFaultResp (char *fault_code);
|
||||
void external_fetch_downloadFaultResp (char **fault_code);
|
||||
void external_uploadFaultResp (char *fault_code);
|
||||
|
|
@ -32,6 +33,8 @@ int external_download(char *url, char *size, char *type, char *user, char *pass,
|
|||
int external_upload(char *url, char *type, char *user, char *pass, char *name);
|
||||
int external_apply(char *action, char *arg,time_t c);
|
||||
int external_change_du_state_uninstall(char *package_name);
|
||||
void external_fetch_du_change_stateFaultResp (char **fault, char **version, char **name);
|
||||
int external_change_du_state_download(char *url, char *user, char *pass);
|
||||
int external_handle_action(int (*external_handler)(char *msg));
|
||||
void external_add_list_paramameter(char *param_name, char *param_data, char *param_type, char *fault_code);
|
||||
void external_free_list_parameter();
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include <stdint.h>
|
||||
|
||||
#include <libubox/uloop.h>
|
||||
#include <cwmp.h>
|
||||
|
||||
#ifdef HTTP_CURL
|
||||
#include <curl/curl.h>
|
||||
|
|
|
|||
|
|
@ -24,6 +24,12 @@ enum log_severity_enum {
|
|||
DEBUG
|
||||
};
|
||||
|
||||
void puts_log(int severity, const char *fmt, ...);
|
||||
int log_set_log_file_name (char *value);
|
||||
int log_set_file_max_size(char *value);
|
||||
int log_set_on_console(char *value);
|
||||
int log_set_on_file(char *value);
|
||||
int log_set_severity_idx (char *value);
|
||||
#define DEFAULT_LOG_FILE_SIZE 10240
|
||||
#define DEFAULT_LOG_FILE_NAME "/var/log/icwmpd.log"
|
||||
#define DEFAULT_LOG_SEVERITY INFO
|
||||
|
|
|
|||
14
inc/xml.h
14
inc/xml.h
|
|
@ -300,6 +300,7 @@ int cwmp_rpc_acs_destroy_data_du_state_change_complete(struct session *session,
|
|||
int xml_handle_message(struct session *session);
|
||||
int xml_prepare_msg_out(struct session *session);
|
||||
int xml_prepare_lwnotification_message(char **msg_out);
|
||||
int xml_set_cwmp_id_rpc_cpe(struct session *session);
|
||||
int cwmp_create_fault_message(struct session *session, struct rpc *rpc_cpe, int fault_code);
|
||||
int cwmp_get_fault_code (int fault_code);
|
||||
int cwmp_scheduleInform_remove_all();
|
||||
|
|
@ -319,5 +320,18 @@ int cwmp_launch_change_du_state_download(struct operations *poperation, struct o
|
|||
int cwmp_launch_update_du_state_download(char *user, char *pass, char *url, struct opresult **pchange_du_state_complete);
|
||||
const char *whitespace_cb(mxml_node_t *node, int where);
|
||||
|
||||
int cwmp_root_cause_TransferComplete (struct cwmp *cwmp, struct transfer_complete *p);
|
||||
int cwmp_root_cause_dustatechangeComplete (struct cwmp *cwmp, struct du_state_change_complete *p);
|
||||
int cwmp_root_cause_events (struct cwmp *cwmp);
|
||||
void cwmp_root_cause_event_ipdiagnostic(void);
|
||||
int xml_set_cwmp_id(struct session *session);
|
||||
int xml_send_message(struct cwmp *cwmp, struct session *session, struct rpc *rpc);
|
||||
int cwmp_free_download_request(struct download *download);
|
||||
int cwmp_free_upload_request(struct upload *upload);
|
||||
int cwmp_free_schedule_download_request(struct schedule_download *schedule_download);
|
||||
int cwmp_add_apply_schedule_download(struct schedule_download *schedule_download, char *start_time);
|
||||
int cwmp_free_apply_schedule_download_request(struct apply_schedule_download *apply_schedule_download);
|
||||
char *calculate_lwnotification_cnonce();
|
||||
void sotfware_version_value_change(struct cwmp *cwmp, struct transfer_complete *p);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
2
log.c
2
log.c
|
|
@ -94,7 +94,7 @@ void puts_log(int severity, const char *fmt, ...)
|
|||
time_t t;
|
||||
struct tm *Tm;
|
||||
struct timeval tv;
|
||||
FILE *pLog;
|
||||
FILE *pLog = NULL;
|
||||
struct stat st;
|
||||
long int size = 0;
|
||||
char log_file_name_bak[256];
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ static void netlink_new_msg(struct uloop_fd *ufd, unsigned events)
|
|||
return;
|
||||
}
|
||||
|
||||
while (msg_size > sizeof(*nlh)) {
|
||||
while (msg_size - sizeof(*nlh) > 0) {
|
||||
int len = nlh->nlmsg_len;
|
||||
int req_len = len - sizeof(*nlh);
|
||||
|
||||
|
|
@ -159,7 +159,7 @@ static void netlink_new_msg_v6(struct uloop_fd *ufd, unsigned events)
|
|||
return;
|
||||
}
|
||||
|
||||
while (msg_size > sizeof(*nlh)) {
|
||||
while (msg_size - sizeof(*nlh) > 0 ) {
|
||||
int len = nlh->nlmsg_len;
|
||||
int req_len = len - sizeof(*nlh);
|
||||
|
||||
|
|
|
|||
33
xml.c
33
xml.c
|
|
@ -15,6 +15,7 @@
|
|||
#include <stdint.h>
|
||||
#include <microxml.h>
|
||||
#include <time.h>
|
||||
#include "http.h"
|
||||
#include "cwmp.h"
|
||||
#include "xml.h"
|
||||
#include "external.h"
|
||||
|
|
@ -49,17 +50,17 @@ LIST_HEAD(list_schedule_inform);
|
|||
static pthread_mutex_t mutex_schedule_inform = PTHREAD_MUTEX_INITIALIZER;
|
||||
static pthread_cond_t threshold_schedule_inform;
|
||||
|
||||
const static char *soap_env_url = "http://schemas.xmlsoap.org/soap/envelope/";
|
||||
const static char *soap_enc_url = "http://schemas.xmlsoap.org/soap/encoding/";
|
||||
const static char *xsd_url = "http://www.w3.org/2001/XMLSchema";
|
||||
const static char *xsi_url = "http://www.w3.org/2001/XMLSchema-instance";
|
||||
static const char *soap_env_url = "http://schemas.xmlsoap.org/soap/envelope/";
|
||||
static const char *soap_enc_url = "http://schemas.xmlsoap.org/soap/encoding/";
|
||||
static const char *xsd_url = "http://www.w3.org/2001/XMLSchema";
|
||||
static const char *xsi_url = "http://www.w3.org/2001/XMLSchema-instance";
|
||||
|
||||
typedef struct DEVICE_ID_STRUCT {
|
||||
char *device_id_name;
|
||||
char *parameter_name;
|
||||
} DEVICE_ID_STRUCT;
|
||||
|
||||
const static char *cwmp_urls[] = {
|
||||
static const char *cwmp_urls[] = {
|
||||
"urn:dslforum-org:cwmp-1-0",
|
||||
"urn:dslforum-org:cwmp-1-1",
|
||||
"urn:dslforum-org:cwmp-1-2",
|
||||
|
|
@ -125,6 +126,8 @@ const struct rpc_acs_method rpc_acs_methods[] = {
|
|||
[RPC_ACS_DU_STATE_CHANGE_COMPLETE] = {"DUStateChangeComplete", cwmp_rpc_acs_prepare_du_state_change_complete, NULL, cwmp_rpc_acs_destroy_data_du_state_change_complete}
|
||||
|
||||
};
|
||||
int cwmp_free_change_du_state_request(struct change_du_state *change_du_state);
|
||||
int cwmp_launch_uninstall_du_state(char *package_name, struct opresult **pchange_du_state_complete);
|
||||
|
||||
static int xml_recreate_namespace(mxml_node_t *tree)
|
||||
{
|
||||
|
|
@ -3386,7 +3389,7 @@ int cwmp_launch_change_du_state_download(struct operations *poperations, struct
|
|||
{
|
||||
int i, error = FAULT_CPE_NO_FAULT;
|
||||
char *download_startTime;
|
||||
struct opresult *p;
|
||||
struct opresult *p = NULL;
|
||||
char *fault_code;
|
||||
char *package_version;
|
||||
char *package_name;
|
||||
|
|
@ -3841,14 +3844,14 @@ int cwmp_handle_rpc_cpe_change_du_state(struct session *session, struct rpc *rpc
|
|||
pthread_t change_du_state_thread;
|
||||
char *c, *tmp, *file_type = NULL;
|
||||
int error = FAULT_CPE_NO_FAULT;
|
||||
struct change_du_state *change_du_state,*ichange_du_state;
|
||||
struct change_du_state *change_du_state = NULL,*ichange_du_state;
|
||||
struct transfer_complete *ptransfer_complete;
|
||||
struct list_head *ilist, *ilist1;
|
||||
time_t scheduled_time;
|
||||
time_t download_delay;
|
||||
bool cond_signal = false;
|
||||
int i = 0;
|
||||
struct operations *elem;
|
||||
struct operations *elem = NULL;
|
||||
struct installop *p;
|
||||
struct uninstallop *q;
|
||||
struct updateop *r;
|
||||
|
|
@ -4041,11 +4044,11 @@ int cwmp_handle_rpc_cpe_download(struct session *session, struct rpc *rpc)
|
|||
pthread_t download_thread;
|
||||
char *c, *tmp, *file_type = NULL;
|
||||
int error = FAULT_CPE_NO_FAULT;
|
||||
struct download *download,*idownload;
|
||||
struct download *download = NULL,*idownload;
|
||||
struct transfer_complete *ptransfer_complete;
|
||||
struct list_head *ilist;
|
||||
time_t scheduled_time;
|
||||
time_t download_delay;
|
||||
time_t scheduled_time = 0;
|
||||
time_t download_delay = 0;
|
||||
bool cond_signal = false;
|
||||
|
||||
if (asprintf(&c, "%s:%s", ns.cwmp, "Download") == -1)
|
||||
|
|
@ -4237,7 +4240,7 @@ int cwmp_handle_rpc_cpe_schedule_download(struct session *session, struct rpc *r
|
|||
char *windowmode0 = NULL, *windowmode1 = NULL;
|
||||
int i = 0, j = 0;
|
||||
int error = FAULT_CPE_NO_FAULT;
|
||||
struct schedule_download *schedule_download,*ischedule_download;
|
||||
struct schedule_download *schedule_download = NULL,*ischedule_download;
|
||||
struct transfer_complete *ptransfer_complete;
|
||||
struct list_head *ilist;
|
||||
time_t scheduled_time;
|
||||
|
|
@ -4494,11 +4497,11 @@ int cwmp_handle_rpc_cpe_upload(struct session *session, struct rpc *rpc)
|
|||
pthread_t upload_thread;
|
||||
char *c, *tmp, *file_type = NULL;
|
||||
int error = FAULT_CPE_NO_FAULT;
|
||||
struct upload *upload,*iupload;
|
||||
struct upload *upload = NULL,*iupload;
|
||||
struct transfer_complete *ptransfer_complete;
|
||||
struct list_head *ilist;
|
||||
time_t scheduled_time;
|
||||
time_t upload_delay;
|
||||
time_t scheduled_time = 0;
|
||||
time_t upload_delay = 0;
|
||||
bool cond_signal = false;
|
||||
|
||||
if (asprintf(&c, "%s:%s", ns.cwmp, "Upload") == -1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue