OCT 修改删除接口,补充参数异常判断

This commit is contained in:
dongwenze 2022-12-09 17:07:00 +08:00
parent 9794acc41d
commit 3f8d0e4402
1 changed files with 31 additions and 2 deletions

View File

@ -491,8 +491,7 @@ static int delete_dhcpd_rangeset(data19 *req, const char *pRequest) {
sprintf(del_range, "%s-%s", saddr, eaddr);
cJSON_AddStringToObject(pdel_Item, "dhcpRange", del_range);
//judge whether the input has error
if(delRange->key && delRange->value &&
(delRange->key == cfig.dhcpRanges[i].rangeStart) && (delRange->value == cfig.dhcpRanges[i].rangeEnd)){
if(delRange->key && delRange->value && (delRange->value == cfig.dhcpRanges[i].rangeEnd)){
cJSON_AddNumberToObject(pdel_Item, "status", ERR_SUCCESS);
cJSON_AddStringToObject(pdel_Item, "message", getErrorEnumDesc(ERR_SUCCESS));
cJSON_AddItemToArray(pdelArray, pdel_Item);
@ -504,6 +503,11 @@ static int delete_dhcpd_rangeset(data19 *req, const char *pRequest) {
cJSON_AddStringToObject(pdel_Item, "message", getErrorEnumDesc(ERR_INPUT_PARAMS));
cJSON_AddItemToArray(pdelArray, pdel_Item);
}
hash_map *s = (struct hash_map*)malloc(sizeof(struct hash_map));
s->key = delRange->key;
s->value = 0;
HASH_REPLACE_INT(delMap, key, s, delRange);
} else {
//write to dhcpRanges
memcpy(&dhcpRanges[resCount], &cfig.dhcpRanges[i], sizeof(struct data13));
@ -511,6 +515,31 @@ static int delete_dhcpd_rangeset(data19 *req, const char *pRequest) {
}
}
//输入参数不存在的情况
if(resCount > cfig.rangeCount - cJSON_GetArraySize(pdhcp_range)){
cJSON *pdel_Item = cJSON_CreateObject();
hash_map *s = (struct hash_map*)malloc(sizeof(struct hash_map));
hash_map *tmp;
char saddr[128];
char eaddr[128];
char del_range[256];
memset(del_range, 0, 256);
HASH_ITER(hh, delMap, s, tmp){
if(s->value != 0){
IP2String(saddr, ntohl(s->key));
IP2String(eaddr, ntohl(s->value));
sprintf(del_range, "%s-%s", saddr, eaddr);
cJSON_AddStringToObject(pdel_Item, "dhcpRange", del_range);
cJSON_AddNumberToObject(pdel_Item, "status", ERR_ITEM_UNEXISTS);
cJSON_AddStringToObject(pdel_Item, "message", getErrorEnumDesc(ERR_ITEM_UNEXISTS));
cJSON_AddItemToArray(pdelArray, pdel_Item);
}
}
}
//rewite cfig.dhcpRanges
for(int i = 0; i < cfig.rangeCount; i++){
if(i < resCount){