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

93 lines
2.6 KiB
C
Raw Normal View History

#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 */
ret_code 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 用户锁定时间: %ld\n",
struct_userlock->logintime, struct_userlock->failcount,
struct_userlock->timehorizon, struct_userlock->locktime);
/*将配置信息struct_userlock发送到数据库 */
/*把本地Portal server的配置信息存入全局变量 */
userlock = struct_userlock;
return RET_OK;
}