diff --git a/Platform/user/configm/config-server/vlan_config/vlan_config.c b/Platform/user/configm/config-server/vlan_config/vlan_config.c index ca2e8ab2d..ac7d9ad33 100644 --- a/Platform/user/configm/config-server/vlan_config/vlan_config.c +++ b/Platform/user/configm/config-server/vlan_config/vlan_config.c @@ -1824,6 +1824,7 @@ ret_code vid_value_chk(int vid) ret_code vid_num_chk(char *if_name, operation_type op_type, int num) { int ifnode = -1; + int total = 0; if(!if_name){ printf("[vlan]vid_num_chk: if_name is null.\n"); return RET_NULLP; @@ -1831,13 +1832,15 @@ ret_code vid_num_chk(char *if_name, operation_type op_type, int num) printf("[vlan]vid_num_chk: if_name=%s, op_type=%d, num=%d\n", if_name, op_type, num); ifnode = get_ifnode_from_global(if_name); if(ifnode == -1){ - printf("[vlan]vid_num_chk: get ifnode empty, return\n"); - return RET_OK; + total = num; + printf("[vlan]vid_num_chk: get ifnode empty, total = %d\n", total); } - if(op_type == OP_ADD && - g_if_vlan_info[ifnode].vidcnt + num > EACH_PORT_MAX_VLAN_NUM){ - printf("[vlan]vid_num_chk: ADD operation's vid num(%d+%d=%d) > EACH_PORT_MAX_VLAN_NUM\n", - g_if_vlan_info[ifnode].vidcnt, num, g_if_vlan_info[ifnode].vidcnt + num); + else{ + total = g_if_vlan_info[ifnode].vidcnt + num; + printf("[vlan]vid_num_chk: total = %d + %d = %d\n", g_if_vlan_info[ifnode].vidcnt, num, total); + } + if(op_type == OP_ADD && total > EACH_PORT_MAX_VLAN_NUM){ + printf("[vlan]vid_num_chk: ADD operation's total vid num > EACH_PORT_MAX_VLAN_NUM\n"); return RET_INPUTERR; } @@ -2105,12 +2108,16 @@ ret_code vlan_config_get_chk(uint source, pointer input) printf("[vlan]vlan_config_get_chk: get json parse failed(%d).\n", ret); return ret; } +#if 0 for(i = 0; i < MAX_INTERFACES; i++){ if(interface[i] == 1){ + printf("[vlan]find a node[%d]\n", i); return RET_OK; } } return RET_INPUTERR; +#endif + return RET_OK; } /************************************************************ @@ -2148,7 +2155,7 @@ ret_code vlan_config_chk(uint source,uint *config_type, if(ret != RET_OK){ goto out; } - *config_type = oper_type; + //*config_type = oper_type; printf("[vlan]vlan_config_chk: operate_type=%d\n", oper_type); if(oper_type == CM_CONFIG_SET){ printf("[vlan]vlan_config_chk: SET chk\n"); 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 f5473f59f..e62a09694 100644 --- a/libs/src/lighttpd-1.4.51/src/mod_webm.c +++ b/libs/src/lighttpd-1.4.51/src/mod_webm.c @@ -38,6 +38,8 @@ typedef enum { WEBM_HANDLE_INVALID_INDEX = -1, WEBM_HANDLE_CONFIG_UUID_USER, WEBM_HANDLE_CONFIG_DETAIL_USER, WEBM_HANDLE_CONFIG_IPV4, + WEBM_HANDLE_CONFIG_VLAN_SET, + WEBM_HANDLE_CONFIG_VLAN_GET, WEBM_HANDLE_MAX } webm_handle_index; @@ -169,6 +171,20 @@ extern int webm_config_send_proc(server *srv, uint32_t config_type, uint64 confg CM_CONFIG_SET, \ IPCONFIG_V4, \ webm_config_send_proc \ + }, \ + {\ + WEBM_HANDLE_CONFIG_VLAN_SET, \ + "/FSG-CF/setvlan", \ + CM_CONFIG_SET, \ + VLAN_CONFIG, \ + webm_config_send_proc \ + }, \ + {\ + WEBM_HANDLE_CONFIG_VLAN_GET, \ + "/FSG-GF/getvlan", \ + CM_CONFIG_GET, \ + VLAN_CONFIG, \ + webm_config_send_proc \ } \ \ }