secgateway/Platform/user/configm/config-server/userlock_config/userlock.c

93 lines
2.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "../../../../common/rpc/rpc.h"
#include "../include/parsefile.h"
#include "../include/configm.h"
#include "../../../netlink_uapi/libnetlinku.h"
#include <cjson/cJSON.h>
#include "../../../../../Common/s2j/s2j.h"
#include "../../../../../Common/commuapinl.h"
#include "../include/userlock.h"
/*全局变量,存放锁定功能的信息 */
userlock_configure_t *userlock;
/*全局变量初始化 失败为1 成功为0*/
int Init(userlock_configure_t *userlock)
{
userlock = (userlock_configure_t *)malloc(sizeof * userlock);
if (NULL == userlock)
{
return 1;
}
return 0;
}
/*判断锁定配置信息是否有效时间范围大于0失败的次数大于0锁定时间大于0 */
ret_code userlock_config_chk(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
userlock_configure_t *struct_userlock;
struct_userlock = (userlock_configure_t *)input;
if(input_len < sizeof(userlock_configure_t) )
{
ret = RET_INPUTERR;
}
/*配置的用户失败次数如果小于0则配置错误 */
if(struct_userlock->failcount < FAIL_MIN_NUM )
{
ret = RET_ERR;
printf("userlock configure error\n");
}
/*配置的用户锁定时间如果小于0则配置错误 */
if(struct_userlock->locktime < LOCK_MIN_TIME )
{
ret = RET_ERR;
printf("locktime configure error\n");
}
/*配置的用户认证时间范围如果小于0则配置错误 */
if(struct_userlock->timehorizon < HORIZON_MIN_VALUE )
{
ret = RET_ERR;
printf("timehorizon configure error\n");
}
ASSERT_RET(ret);
return RET_OK;
}
/*系统管理模块将数据内容IP地址、端口号发送给web server */
int userlock_config_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
userlock_configure_t *struct_userlock;
struct_userlock = (userlock_configure_t *)input;
rpc_log_info("userlock configure: 登录时间: %d 用户认证失败次数: %d 用户认证的时间范围: %d 用户锁定时间: %d\n",
struct_userlock->logintime, struct_userlock->failcount,
struct_userlock->timehorizon, struct_userlock->locktime);
/*将配置信息struct_userlock发送到数据库 */
/*把本地Portal server的配置信息存入全局变量 */
userlock = struct_userlock;
return 0;
}