From 20471b058a4c202e7370bcda7413e9b568bf8c3c Mon Sep 17 00:00:00 2001 From: Imen Bhiri Date: Wed, 26 Aug 2015 16:00:04 +0100 Subject: [PATCH] Update managementserver file --- dm/dmcommon.c | 13 ++++ dm/dmcommon.h | 1 + dm/dmtree/managementserver.c | 131 ++++++++++++++++++++--------------- dm/dmtree/managementserver.h | 1 - 4 files changed, 91 insertions(+), 55 deletions(-) diff --git a/dm/dmcommon.c b/dm/dmcommon.c index fe6efea..03762ea 100644 --- a/dm/dmcommon.c +++ b/dm/dmcommon.c @@ -16,6 +16,19 @@ #include #include "dmcwmp.h" +void compress_spaces(char *str) //REMOVE TO DMCOMMON +{ + char *dst = str; + for (; *str; ++str) { + *dst++ = *str; + if (isspace(*str)) { + do ++str; + while (isspace(*str)); + --str; + } + } + *dst = '\0'; +} char *cut_fx(char *str, char *delimiter, int occurence) { int i = 1; diff --git a/dm/dmcommon.h b/dm/dmcommon.h index b8a471a..b20116d 100644 --- a/dm/dmcommon.h +++ b/dm/dmcommon.h @@ -22,5 +22,6 @@ do { \ char *cut_fx(char *str, char *delimiter, int occurence); char *get_pid(char *pname); int check_file(char *path); +void compress_spaces(char *str); #endif \ No newline at end of file diff --git a/dm/dmtree/managementserver.c b/dm/dmtree/managementserver.c index cf77793..a24b1b2 100644 --- a/dm/dmtree/managementserver.c +++ b/dm/dmtree/managementserver.c @@ -11,11 +11,14 @@ #include #include #include +#include +#include "cwmp.h" +#include "ubus.h" #include "dmcwmp.h" #include "dmuci.h" #include "dmubus.h" -#include "managementserver.h" #include "dmcommon.h" +#include "managementserver.h" int get_management_server_url(char *refparam, struct dmctx *ctx, char **value) { @@ -23,23 +26,16 @@ int get_management_server_url(char *refparam, struct dmctx *ctx, char **value) return 0; } -int set_management_server() -{ - return 0; -} - int set_management_server_url(char *refparam, struct dmctx *ctx, int action, char *value) { - bool b; char *stat = ""; switch (action) { VALUECHECK: - if (string_to_bool(value, &b)) - return FAULT_9007; return 0; VALUESET: - dmuci_set_value("cwmp", "acs", "dhcp_discovery", "disable"); - set_management_server(); //TODO BY IBH + dmuci_set_value("cwmp", "acs", "dhcp_discovery", "disable"); + dmuci_set_value("cwmp", "acs", "url", value); + cwmp_set_end_session(END_SESSION_RELOAD); return 0; } return 0; @@ -53,13 +49,25 @@ int get_management_server_username(char *refparam, struct dmctx *ctx, char **val int set_management_server_username(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server(); //TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "userid", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } int set_management_server_passwd(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server(); //TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "passwd", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } @@ -71,7 +79,13 @@ int get_management_server_key(char *refparam, struct dmctx *ctx, char **value) int set_management_server_key(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server(); //TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "ParameterKey", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } @@ -83,7 +97,13 @@ int get_management_server_periodic_inform_enable(char *refparam, struct dmctx *c int set_management_server_periodic_inform_enable(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server();//TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "periodic_inform_enable", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } @@ -95,26 +115,27 @@ int get_management_server_periodic_inform_interval(char *refparam, struct dmctx int set_management_server_periodic_inform_interval(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server();//TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "periodic_inform_interval", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } -/*get_management_server_periodic_inform_time() { - local val="" - val=`$UCI_GET cwmp.acs.periodic_inform_time` - if [ "$val" != "0" -a "$val" != "" ];then - val=`date -d @$val +"%Y-%m-%dT%H:%M:%S.000Z"` - else - val="0001-01-01T00:00:00Z" - fi - echo "$val" -} -*/ int get_management_server_periodic_inform_time(char *refparam, struct dmctx *ctx, char **value) { + time_t time_value; + dmuci_get_option_value_string("cwmp", "acs", "periodic_inform_time", value); if ((*value)[0] != '0' && (*value)[0] != '\0') { - *value = dmstrdup("TOCODE"); + time_value = atoi(*value); + dmfree(*value); + char s_now[sizeof "AAAA-MM-JJTHH:MM:SS.000Z"]; + strftime(s_now, sizeof s_now, "%Y-%m-%dT%H:%M:%S.000Z", localtime(&time_value)); + *value = dmstrdup(s_now); } else { dmfree(*value); @@ -125,7 +146,13 @@ int get_management_server_periodic_inform_time(char *refparam, struct dmctx *ctx int set_management_server_periodic_inform_time(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server(); //TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "acs", "periodic_inform_time", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } @@ -144,47 +171,43 @@ int get_management_server_connection_request_username(char *refparam, struct dmc int set_management_server_connection_request_username(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server();//TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "cpe", "userid", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } int set_management_server_connection_request_passwd(char *refparam, struct dmctx *ctx, int action, char *value) { - set_management_server();//TODO BY IBH + switch (action) { + VALUECHECK: + return 0; + VALUESET: + dmuci_set_value("cwmp", "cpe", "passwd", value); + cwmp_set_end_session(END_SESSION_RELOAD); + } return 0; } -/* -get_cache_InternetGatewayDevice_ManagementServer() { - get_object_cache_generic "InternetGatewayDevice.ManagementServer." "0" "0" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.URL" "1" "\$UCI_GET cwmp.acs.url" "set_management_server_url \$val" "" "cwmp.acs.url" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.Username" "1" "\$UCI_GET cwmp.acs.userid" "set_management_server cwmp.acs.userid \$val" "" "cwmp.acs.userid" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.Password" "1" "" "set_management_server cwmp.acs.passwd \$val" "" "" "" "" "" "" "1" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.ParameterKey" "1" "\$UCI_GET cwmp.acs.ParameterKey" "set_management_server cwmp.acs.ParameterKey \$val" "" "cwmp.acs.ParameterKey" "" "0" "1" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.PeriodicInformEnable" "1" "\$UCI_GET cwmp.acs.periodic_inform_enable" "set_management_server cwmp.acs.periodic_inform_enable \$val" "" "cwmp.acs.periodic_inform_enable" "xsd:boolean" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.PeriodicInformInterval" "1" "\$UCI_GET cwmp.acs.periodic_inform_interval" "set_management_server cwmp.acs.periodic_inform_interval \$val" "" "cwmp.acs.periodic_inform_interval" "xsd:unsignedInt" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.PeriodicInformTime" "1" "get_management_server_periodic_inform_time" "set_management_server_periodic_inform_time \$val" "" "cwmp.acs.periodic_inform_time" "xsd:dateTime" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.ConnectionRequestURL" "0" "get_management_server_connection_request_url" "" "1" "" "" "0" "1" "2" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.ConnectionRequestUsername" "1" "\$UCI_GET cwmp.cpe.userid" "set_management_server cwmp.cpe.userid \$val" "" "cwmp.cpe.userid" - get_param_cache_generic "InternetGatewayDevice.ManagementServer.ConnectionRequestPassword" "1" "" "set_management_server cwmp.cpe.passwd \$val" "" "" "" "" "" "" "1" -} - -*/ int entry_method_root_ManagementServer(struct dmctx *ctx) { IF_MATCH(ctx, DMROOT"ManagementServer.") { DMOBJECT(DMROOT"ManagementServer.", ctx, "0", 0, NULL, NULL, NULL); - DMPARAM("URL", ctx, "1", get_management_server_url, set_management_server_url, "xsd:boolean", 0, 0, UNDEF, NULL); - DMPARAM("Username", ctx, "1", get_management_server_username, set_management_server_username, "xsd:boolean", 0, 0, UNDEF, NULL); - DMPARAM("Password", ctx, "1", get_empty, set_management_server_passwd, "xsd:boolean", 0, 0, UNDEF, NULL); + DMPARAM("URL", ctx, "1", get_management_server_url, set_management_server_url, "", 0, 0, UNDEF, NULL); + DMPARAM("Username", ctx, "1", get_management_server_username, set_management_server_username, "", 0, 0, UNDEF, NULL); + DMPARAM("Password", ctx, "1", get_empty, set_management_server_passwd, "", 0, 0, UNDEF, NULL); DMPARAM("ParameterKey", ctx, "1", get_management_server_key, set_management_server_key, "", 1, 0, UNDEF, NULL); DMPARAM("PeriodicInformEnable", ctx, "1", get_management_server_periodic_inform_enable, set_management_server_periodic_inform_enable, "xsd:boolean", 0, 0, UNDEF, NULL); - DMPARAM("PeriodicInformInterval", ctx, "1", get_management_server_periodic_inform_interval, set_management_server_periodic_inform_interval, "xsd:boolean", 0, 0, UNDEF, NULL); - DMPARAM("PeriodicInformTime", ctx, "1", get_management_server_periodic_inform_time, set_management_server_periodic_inform_time, "xsd:boolean", 0, 0, UNDEF, NULL); + DMPARAM("PeriodicInformInterval", ctx, "1", get_management_server_periodic_inform_interval, set_management_server_periodic_inform_interval, "xsd:unsignedInt", 0, 0, UNDEF, NULL); + DMPARAM("PeriodicInformTime", ctx, "1", get_management_server_periodic_inform_time, set_management_server_periodic_inform_time, "xsd:dateTime", 0, 0, UNDEF, NULL); DMPARAM("ConnectionRequestURL", ctx, "0", get_management_server_connection_request_url, NULL, "", 1, 0, UNDEF, NULL); - DMPARAM("ConnectionRequestUsername", ctx, "1", get_management_server_connection_request_username, set_management_server_connection_request_username, "xsd:boolean", 0, 0, UNDEF, NULL); - DMPARAM("ConnectionRequestPassword", ctx, "1", get_empty, set_management_server_connection_request_passwd, "xsd:boolean", 0, 0, UNDEF, NULL); + DMPARAM("ConnectionRequestUsername", ctx, "1", get_management_server_connection_request_username, set_management_server_connection_request_username, "", 0, 0, UNDEF, NULL); + DMPARAM("ConnectionRequestPassword", ctx, "1", get_empty, set_management_server_connection_request_passwd, "", 0, 0, UNDEF, NULL); return 0; } return FAULT_9005; diff --git a/dm/dmtree/managementserver.h b/dm/dmtree/managementserver.h index cb22b70..1a3e479 100644 --- a/dm/dmtree/managementserver.h +++ b/dm/dmtree/managementserver.h @@ -12,7 +12,6 @@ #define __MANAGEMENT_SERVER_H int get_management_server_url(char *refparam, struct dmctx *ctx, char **value); -int set_management_server(); int set_management_server_url(char *refparam, struct dmctx *ctx, int action, char *value); int get_management_server_username(char *refparam, struct dmctx *ctx, char **value); int set_management_server_username(char *refparam, struct dmctx *ctx, int action, char *value);