acl  3.5.3.0
acl_access.h
浏览该文件的文档.
1 #ifndef ACL_ACCESS_INCLUDE_H
2 #define ACL_ACCESS_INCLUDE_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include "../stdlib/acl_stdlib.h"
9 
10 /**
11  * 向访问列表中添加一个允许的 ip 地址段
12  * @param data 多个 IP 地址段数据字符串. 如: 10.0.0.1:10.0.250.1, 192.168.0.1:192.168.0.255
13  * @param sep1 每个 IP 地址段之间的分隔符, 如上例中的 "," 分隔符
14  * @param sep2 每个 IP 地址段高地址与低地址之间的分隔符, 如上例中的 ":" 分隔符
15  * @return 添加 结果. 0: 成功; < 0: 失败
16  * 注: 该函数是线程不安全的
17  */
18 ACL_API int acl_access_add(const char *data, const char *sep1, const char *sep2);
19 
20 /**
21  * 从配置文件中读取 IP 地址字符串, 并自动生成 IP 地址访问列表
22  * @param xcp 已经成功分析了配置文件的结果句柄
23  * @param name xcp 结果句柄中与 IP 地址访问相关的变量名
24  * @return 是否添加成功. 0: 成功; < 0: 失败.
25  * 注: 该函数是线程不安全的
26  */
27 ACL_API int acl_access_cfg(ACL_XINETD_CFG_PARSER *xcp, const char *name);
28 
29 /**
30  * 用户可以设置自己的日志记录函数, 如果不调用此函数, 则本库自动使用 aclMsg.c中的库.
31  * @param log_fn 用户自己的日志记录函数.
32  * 注: 该函数是线程不安全的
33  */
34 ACL_API void acl_access_setup_logfn(void (*log_fn)(const char *fmt, ...));
35 
36 /**
37  * 判定给定 IP 地址是否在允许的访问 IP 地址列表中.
38  * @param ip 格式: 192.168.0.1
39  * @return 是否在允许的访问列表中, != 0: 是; == 0: 不是.
40  */
41 ACL_API int acl_access_permit(const char *ip);
42 
43 /**
44  * 将访问地址表表打印出来.
45  */
46 ACL_API void acl_access_debug(void);
47 
48 #ifdef __cplusplus
49 }
50 #endif
51 
52 #endif
HTTP_API void const char * name
Definition: lib_http.h:620
ACL_API int acl_access_cfg(ACL_XINETD_CFG_PARSER *xcp, const char *name)
struct ACL_XINETD_CFG_PARSER ACL_XINETD_CFG_PARSER
ACL_API void acl_access_setup_logfn(void(*log_fn)(const char *fmt,...))
ACL_API void acl_access_debug(void)
ACL_API int acl_access_permit(const char *ip)
ACL_API int acl_access_add(const char *data, const char *sep1, const char *sep2)
ACL_API void const char * fmt
Definition: acl_aio.h:771