Mod aaa-12 修改用户认证-用户认证参数配置恢复

RCA:
SOL:
修改人:chenling
检视人:
This commit is contained in:
ChenLing 2019-09-26 09:52:38 +08:00
parent fe0013a7df
commit 03422647f7
2 changed files with 62 additions and 35 deletions

View File

@ -77,7 +77,7 @@ void auth_getpara_db(char ** parameters_db)
return;
}
char *select_sql = "SELECT port, timehorizon, failcount, dip, locktime, aging_time FROM `authparas`";
char *select_sql = "SELECT port, timehorizon, failcount, locktime, aging_time FROM `authparas`";
ret_parameters = select_datebase_by_number(AUTHRECOVER_DATABASE_ID, auth_hdbc, "authparas", select_sql, 1, 0, &num, 0);
if(0 == num || NULL == ret_parameters)
@ -94,7 +94,6 @@ void auth_getpara_db(char ** parameters_db)
memset(point, 0, size);
memcpy(point, ret_parameters, size);
*parameters_db = point; //在函数外面释放
return;
}
@ -177,7 +176,8 @@ ret_code auth_recover_get_all(uint source,
/*创建freeauth_configure_t结构体对象 */
s2j_create_struct_obj(freeauth_buff, freeauth_configure_t);
if(freeauth_buff == NULL) {
if(freeauth_buff == NULL)
{
cJSON_Delete(cjson);
return RET_NOMEM;
}
@ -198,7 +198,7 @@ ret_code auth_recover_get_all(uint source,
cJSON *name = cJSON_GetObjectItem(pArrayItem, "name");
if(name) {
strncpy(freeauth_buff->name, name->valuestring, 31);
strncpy(freeauth_buff->name, name->valuestring, NAME_SIZE);
}
/*源IP地址*/
@ -242,7 +242,7 @@ ret_code auth_recover_get_all(uint source,
printf("%s(%d) freeauth_array[%d] = %p\n", __FUNCTION__, __LINE__, i, &freeauth_array[i]);
memset(&freeauth_array[i], 0, sizeof(freeauth_configure_t));
freeauth_array[i].rule_priority = freeauth_buff->rule_priority;
strncpy(freeauth_array[i].name, freeauth_buff->name, 32);
strncpy(freeauth_array[i].name, freeauth_buff->name, NAME_SIZE);
freeauth_array[i].sip = freeauth_buff->sip;
freeauth_array[i].dip = freeauth_buff->dip;
freeauth_array[i].dport = freeauth_buff->dport;
@ -264,55 +264,80 @@ ret_code auth_recover_get_all(uint source,
return RET_OK;
}
auth_getpara_db(&parameters_db);
if(NULL != parameters_db)
{
/*输出参数为json字符串*/
cJSON * cjson_para = cJSON_Parse(parameters_db);
if(NULL == cjson_para)
cJSON * cjson = cJSON_Parse(parameters_db);
if(NULL == cjson)
{
free(parameters_db);
ret = RET_ERR;
return ret;
}
cJSON * data_para = cJSON_GetObjectItem(cjson_para, "data");
if(NULL == data_para)
cJSON *data = cJSON_GetObjectItem(cjson, "data");
if(NULL == data)
{
free(parameters_db);
cJSON_Delete(cjson_para);
ret = RET_ERR;
return ret;
}
int mun_para = cJSON_GetArraySize(data);
if(0 == mun_para)
{
free(parameters_db);
cJSON_Delete(cjson);
return RET_ERR;
}
/*创建freeauth_configure_t结构体对象 */
s2j_create_struct_obj(auth_parameters, auth_parameters_t);
for (int i = 0; i < mun_para; i++)
{
cJSON *pArrayItem = cJSON_GetArrayItem(data, i);
if(auth_parameters == NULL) {
cJSON_Delete(cjson_para);
return RET_NOMEM;
if(pArrayItem)
{
/*获取未认证权限优先级键值对*/
cJSON *para_port = cJSON_GetObjectItem(pArrayItem, "port");
if(para_port) {
auth_para->port = para_port->valueint;
}
/*认证时间范围*/
cJSON *para_timehorizon = cJSON_GetObjectItem(pArrayItem, "timehorizon");
if(para_timehorizon) {
auth_para->timehorizon = para_timehorizon->valueint;
}
/*失败次数*/
cJSON *para_failcount = cJSON_GetObjectItem(pArrayItem, "failcount");
if(para_failcount) {
auth_para->failcount = para_failcount->valueint;
}
/*锁定时间*/
cJSON *para_locktime = cJSON_GetObjectItem(pArrayItem, "locktime");
if(para_locktime) {
auth_para->locktime = para_locktime->valueint;
}
/*老化时间*/
cJSON *para_aging_time = cJSON_GetObjectItem(pArrayItem, "aging_time");
if(para_aging_time) {
auth_para->aging_time = para_aging_time->valueint;
}
}
}
/*反序列化数据到freeauth_configure_t结构体对象 */
s2j_struct_get_basic_element(auth_parameters, data_para, int, port);
s2j_struct_get_basic_element(auth_parameters, data_para, int, timehorizon);
s2j_struct_get_basic_element(auth_parameters, data_para, int, failcount);
s2j_struct_get_basic_element(auth_parameters, data_para, int, locktime);
s2j_struct_get_basic_element(auth_parameters, data_para, int, aging_time);
/*将数据存入全局结构体指针*/
if(auth_para) {
auth_para->port = auth_parameters->port;
auth_para->timehorizon = auth_parameters->timehorizon;
auth_para->failcount = auth_parameters->failcount;
auth_para->locktime = auth_parameters->locktime;
auth_para->aging_time = auth_parameters->aging_time;
}
s2j_delete_struct_obj(auth_parameters);
cJSON_Delete(cjson_para);
cJSON_Delete(cjson);
}
return RET_OK;
}

View File

@ -11,6 +11,8 @@
#include <net/if.h>
#include "rpc_common.h"
#define NAME_SIZE 63
/*数据库重连*/
void db_connect();