parent
fe0013a7df
commit
03422647f7
|
@ -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(¶meters_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;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include <net/if.h>
|
||||
#include "rpc_common.h"
|
||||
|
||||
#define NAME_SIZE 63
|
||||
|
||||
/*数据库重连*/
|
||||
void db_connect();
|
||||
|
||||
|
|
Loading…
Reference in New Issue