diff --git a/Platform/user/configm/config-server/web_config/authfree.c b/Platform/user/configm/config-server/web_config/authfree.c index 7d8723ed8..edb404324 100644 --- a/Platform/user/configm/config-server/web_config/authfree.c +++ b/Platform/user/configm/config-server/web_config/authfree.c @@ -16,7 +16,7 @@ /*定义结构体数组 存在免认证规则 */ freeauth_configure_t freeauth_array[RULE_MAX_NUM] = {0}; -#define UNAMESIZE (127 + 1) +#define UNAMESIZE (60 + 1) #define SPECHAR(element) (strpbrk((element), "~!@#$%^&*()_+{}|:\"<>?\\,./;\'[]-=`")) //校验特殊字符 #ifdef FREEAUTH_ACK_COOKIES @@ -536,6 +536,8 @@ ret_code freeauth_config_mod_proc(uint source, uint config_type, int i; int cnt; cJSON *res; + cJSON *pJsonArry; + cJSON *pJsonsub; authfree_result_t authfree_result; freeauth_configure_t *freeauth_configure = NULL; uint conf_type = FREEAUTH_CONFIG_GET; @@ -564,6 +566,9 @@ ret_code freeauth_config_mod_proc(uint source, uint config_type, freeauth_configure[j].dip, freeauth_configure[j].dport, freeauth_configure[j].dport, j); } + pJsonArry= cJSON_CreateArray(); /*创建数组*/ + + /*查找要修改的免认证规则名字,不存在则退出程序 */ for(i = 0; i < RULE_MAX_NUM; i++) { /*两个字符串相等 strcmp值为0*/ @@ -602,35 +607,43 @@ ret_code freeauth_config_mod_proc(uint source, uint config_type, commcfgnl_close(); printf("cfgchannel main exit!\r\n"); #endif + + cJSON_AddItemToArray(pJsonArry, pJsonsub=cJSON_CreateObject()); /* 给创建的数组增加对象*/ - /*创建json对象 */ - res = cJSON_CreateObject(); - - if(!res) { - return RET_ERR; + /*在json对象上添加键值对*/ + char *result_message = malloc(strlen(freeauth_configure[j].name)+strlen(authfree_result.message)+1);//+1 for the zero-terminator + //in real code you would check for errors in malloc here + if (result_message == NULL) + { + return RET_NOMEM; } - /*将json对象转换成json字符串 返回处理结果*/ - cJSON_AddNumberToObject(res, "resultcode", authfree_result.resultcode); - cJSON_AddStringToObject(res, "message", authfree_result.message); - ret_char = cJSON_PrintUnformatted(res); + strcpy(result_message, freeauth_configure[j].name); + strcat(result_message, authfree_result.message); + printf("%s\n", result_message); + + cJSON_AddNumberToObject(pJsonsub, "resultcode", authfree_result.resultcode); + cJSON_AddStringToObject(pJsonsub, "message", result_message); + + ret_char = cJSON_Print(pJsonArry); ret_int = strlen(ret_char); - if(output_len) { + if(output_len) + { *output_len = ret_int; } /*超出2k的内存,报错 */ - if(ret_int >= 1024 * 2) { + if(ret_int >= 1024 * 2) + { free(ret_char); - cJSON_Delete(res); + cJSON_Delete(pJsonArry); return RET_NOMEM; } memcpy(output, ret_char, ret_int + 1); - free(ret_char); - cJSON_Delete(res); + free(ret_char); } } } @@ -651,6 +664,8 @@ ret_code freeauth_config_del_proc(uint source, uint config_type, int i; int cnt; cJSON *res; + cJSON *pJsonArry; + cJSON *pJsonsub; authfree_result_t authfree_result; freeauth_configure_t *freeauth_configure = NULL; uint conf_type = FREEAUTH_CONFIG_GET; @@ -679,6 +694,7 @@ ret_code freeauth_config_del_proc(uint source, uint config_type, printf("[%s %d]\n", freeauth_configure[j].name, j); } + pJsonArry= cJSON_CreateArray(); /*创建数组*/ /*查找要修改的免认证规则名字,不存在则退出程序 */ for(i = 0; i < RULE_MAX_NUM; i++) { @@ -719,18 +735,24 @@ ret_code freeauth_config_del_proc(uint source, uint config_type, printf("cfgchannel main exit!\r\n"); #endif - /*创建json对象 */ - res = cJSON_CreateObject(); - - if(!res) + cJSON_AddItemToArray(pJsonArry, pJsonsub=cJSON_CreateObject()); + + /*在json对象上添加键值对*/ + char *result_message = malloc(strlen(freeauth_configure[j].name)+strlen(authfree_result.message)+1);//+1 for the zero-terminator + //in real code you would check for errors in malloc here + if (result_message == NULL) { - return RET_ERR; + return RET_NOMEM; } - /*将json对象转换成json字符串 返回处理结果*/ - cJSON_AddNumberToObject(res, "resultcode", authfree_result.resultcode); - cJSON_AddStringToObject(res, "message", authfree_result.message); - ret_char = cJSON_PrintUnformatted(res); + strcpy(result_message, freeauth_configure[j].name); + strcat(result_message, authfree_result.message); + printf("%s\n", result_message); + + cJSON_AddNumberToObject(pJsonsub, "resultcode", authfree_result.resultcode); + cJSON_AddStringToObject(pJsonsub, "message", result_message); + + ret_char = cJSON_Print(pJsonArry); ret_int = strlen(ret_char); if(output_len) @@ -748,8 +770,7 @@ ret_code freeauth_config_del_proc(uint source, uint config_type, memcpy(output, ret_char, ret_int + 1); - free(ret_char); - cJSON_Delete(res); + free(ret_char); } } } diff --git a/libs/src/lighttpd-1.4.51/src/mod_webm.c b/libs/src/lighttpd-1.4.51/src/mod_webm.c index e62a09694..26017deb8 100644 --- a/libs/src/lighttpd-1.4.51/src/mod_webm.c +++ b/libs/src/lighttpd-1.4.51/src/mod_webm.c @@ -23,10 +23,10 @@ typedef enum { WEBM_HANDLE_INVALID_INDEX = -1, WEBM_HANDLE_LOGIN, WEBM_HANDLE_HOMEPAGE, - /* ������ҳ��ȡ��չʾ��case�������������ܿ���ͨ�����ݿ��ѯ�������ȷŵ�һ�� */ + /* ҳȡչʾcaseܿͨݿѯȷŵһ */ WEBM_HANDLE_CONFIG_LIST_GROUP, - /* ���������ò�����ص�case */ + /* òصcase */ WEBM_HANDLE_CONFIG_ADD_GROUP, WEBM_HANDLE_CONFIG_UUID_GROUP, WEBM_HANDLE_CONFIG_MOD_GROUP, @@ -40,7 +40,12 @@ typedef enum { WEBM_HANDLE_INVALID_INDEX = -1, WEBM_HANDLE_CONFIG_IPV4, WEBM_HANDLE_CONFIG_VLAN_SET, WEBM_HANDLE_CONFIG_VLAN_GET, - WEBM_HANDLE_MAX + WEBM_HANDLE_MAX, + + WEBM_HANDLE_CONFIG_MOD_AUTHPARA, + WEBM_HANDLE_CONFIG_ADD_AUTHRULE, + WEBM_HANDLE_CONFIG_MOD_AUTHRULE, + WEBM_HANDLE_CONFIG_DEL_AUTHRULE } webm_handle_index; typedef struct _webm_config_st @@ -185,6 +190,37 @@ extern int webm_config_send_proc(server *srv, uint32_t config_type, uint64 confg CM_CONFIG_GET, \ VLAN_CONFIG, \ webm_config_send_proc \ + }, \ + {\ + WEBM_HANDLE_CONFIG_MOD_AUTHPARA, \ + "/FSG-CF/userauth-parameters-mod", \ + CM_CONFIG_SET, \ + FREEPARAMETERS_CONFIG , \ + webm_config_send_proc \ + }, \ +\ + {\ + WEBM_HANDLE_CONFIG_ADD_AUTHRULE, \ + "/FSG-GF/userauth-rule-add", \ + CM_CONFIG_SET, \ + AUTHFREE_CONFIG, \ + webm_config_send_proc \ + }, \ +\ + {\ + WEBM_HANDLE_CONFIG_MOD_AUTHRULE, \ + "/FSG-GF/userauth-rule-mod", \ + CM_CONFIG_SET, \ + AUTHFREE_CONFIG, \ + webm_config_send_proc \ + }, \ +\ + {\ + WEBM_HANDLE_CONFIG_DEL_AUTHRULE, \ + "/FSG-GF/userauth-rule-del", \ + CM_CONFIG_SET, \ + AUTHFREE_CONFIG, \ + webm_config_send_proc \ } \ \ }