#include "../../../../common/rpc/rpc.h" #include "../include/parsefile.h" #include "../include/configm.h" #include "../../../netlink_uapi/libnetlinku.h" #include #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; }