acl
3.5.3.0
|
类 | |
struct | ACL_HOSTNAME |
struct | ACL_DNS_DB |
宏定义 | |
#define | ACL_HOSTNAME_TYPE_IPV4 0 |
#define | ACL_HOSTNAME_TYPE_IPV6 1 |
#define | ACL_HOSTNAME_TYPE_CNAME 2 |
#define | ACL_HOSTNAME_TYPE_MX 3 |
#define | ACL_HOSTNAME_TYPE_SOA 4 |
#define | ACL_HOSTNAME_TYPE_NS 5 |
#define | ACL_HOSTNAME_TYPE_TXT 6 |
类型定义 | |
typedef struct ACL_HOSTNAME | ACL_HOST_INFO |
typedef struct ACL_HOSTNAME | ACL_HOSTNAME |
typedef struct ACL_DNS_DB | ACL_DNS_DB |
函数 | |
ACL_API const ACL_HOSTNAME * | acl_netdb_index (const ACL_DNS_DB *h_dns_db, int i) |
ACL_API const ACL_SOCKADDR * | acl_netdb_index_saddr (ACL_DNS_DB *h_dns_db, int i) |
ACL_API void | acl_netdb_refer_oper (ACL_DNS_DB *h_dns_db, int i, int n) |
ACL_API void | acl_netdb_refer (ACL_DNS_DB *h_dns_db, int i) |
ACL_API void | acl_netdb_unrefer (ACL_DNS_DB *h_dns_db, int i) |
ACL_API const char * | acl_netdb_index_ip (const ACL_DNS_DB *h_dns_db, int i) |
ACL_API int | acl_netdb_size (const ACL_DNS_DB *h_dns_db) |
ACL_API void | acl_netdb_free (ACL_DNS_DB *h_dns_db) |
ACL_API ACL_DNS_DB * | acl_netdb_new (const char *domain) |
ACL_API void | acl_netdb_set_ns (ACL_DNS_DB *db, ACL_SOCKADDR *sa) |
ACL_API void | acl_netdb_addip (ACL_DNS_DB *h_dns_db, const char *ip) |
ACL_API void | acl_netdb_add_addr (ACL_DNS_DB *h_dns_db, const char *ip, int port) |
ACL_API ACL_DNS_DB * | acl_netdb_clone (const ACL_DNS_DB *h_dns_db) |
ACL_API ACL_DNS_DB * | acl_gethostbyname (const char *name, int *h_error) |
ACL_API ACL_DNS_DB * | acl_gethostbyname2 (const char *name, int socktype, int family, int *h_error) |
ACL_API const char * | acl_netdb_strerror (int errnum) |
ACL_API void | acl_netdb_cache_push (const ACL_DNS_DB *h_dns_db, int timeout) |
ACL_API ACL_DNS_DB * | acl_netdb_cache_lookup (const char *name) |
ACL_API void | acl_netdb_cache_del_host (const char *name) |
ACL_API void | acl_netdb_cache_init (int timeout, int thread_safe) |
#define ACL_HOSTNAME_TYPE_CNAME 2 |
在文件 acl_netdb.h 第 27 行定义.
#define ACL_HOSTNAME_TYPE_IPV4 0 |
在文件 acl_netdb.h 第 25 行定义.
#define ACL_HOSTNAME_TYPE_IPV6 1 |
在文件 acl_netdb.h 第 26 行定义.
#define ACL_HOSTNAME_TYPE_MX 3 |
在文件 acl_netdb.h 第 28 行定义.
#define ACL_HOSTNAME_TYPE_NS 5 |
在文件 acl_netdb.h 第 30 行定义.
#define ACL_HOSTNAME_TYPE_SOA 4 |
在文件 acl_netdb.h 第 29 行定义.
#define ACL_HOSTNAME_TYPE_TXT 6 |
在文件 acl_netdb.h 第 31 行定义.
typedef struct ACL_DNS_DB ACL_DNS_DB |
DNS查询结果集
typedef struct ACL_HOSTNAME ACL_HOST_INFO |
主机地址结构
在文件 acl_netdb.h 第 16 行定义.
typedef struct ACL_HOSTNAME ACL_HOSTNAME |
ACL_API ACL_DNS_DB* acl_gethostbyname | ( | const char * | name, |
int * | h_error | ||
) |
查询某个域名的IP地址集
name | {const char*} 域名 |
h_error | {int*} 如果查询失败存储出错原因 |
ACL_API ACL_DNS_DB* acl_gethostbyname2 | ( | const char * | name, |
int | socktype, | ||
int | family, | ||
int * | h_error | ||
) |
查询某个域名的IP地址集
name | {const char*} 域名 |
socktype | {int} 查询域名服务器所采用的 socket 类型: SOCK_DGRAM – UDP 方式, SOCK_STREAM – TCP 方式 |
family | {int} IP 地址簇类型:PF_INET – IPV4, PF_INET6 – IPV6, PF_UNSPEC – 由系统自动选择 |
h_error | {int*} 如果查询失败存储出错原因 |
ACL_API void acl_netdb_add_addr | ( | ACL_DNS_DB * | h_dns_db, |
const char * | ip, | ||
int | port | ||
) |
向结果集中添加IP地址及端口号
h_dns_db | {ACL_DNS_DB*} 查询结果集对象 |
ip | {const char*} 要添加的IP地址 |
port | {int} 要添加的端口号 |
ACL_API void acl_netdb_addip | ( | ACL_DNS_DB * | h_dns_db, |
const char * | ip | ||
) |
向结果集中添加IP地址
h_dns_db | {ACL_DNS_DB*} 查询结果集对象 |
ip | {const char*} 要添加的IP地址 |
ACL_API void acl_netdb_cache_del_host | ( | const char * | name | ) |
从DNS缓存中删除某个DNS查询结果集
name | {const char*} 域名 |
ACL_API void acl_netdb_cache_init | ( | int | timeout, |
int | thread_safe | ||
) |
初始化DNS缓存区
timeout | {int} DNS结果集的默认缓存时间(秒) |
thread_safe | {int} 是否需要DNS缓存区线程安全, 0: 表示不需要, 1: 表示需要线程安全 |
ACL_API ACL_DNS_DB* acl_netdb_cache_lookup | ( | const char * | name | ) |
从DNS缓存中取得DNS查询结果集
name | {const char*} 域名 |
ACL_API void acl_netdb_cache_push | ( | const ACL_DNS_DB * | h_dns_db, |
int | timeout | ||
) |
向DNS缓存中添加缓存数据
h_dns_db | {const ACL_DNS_DB*} DNS查询结果集 |
timeout | {int} 该结果集被缓存的超时时间,如果 <= 0, 则采用默认的值, 该默认值是在 acl_netdb_cache_init()/2 中的设置值, 单位为秒 |
ACL_API ACL_DNS_DB* acl_netdb_clone | ( | const ACL_DNS_DB * | h_dns_db | ) |
克隆一个查询结果集对象
h_dns_db | {const ACL_DNS_DB*} 源结果集对象 |
ACL_API void acl_netdb_free | ( | ACL_DNS_DB * | h_dns_db | ) |
释放结果集内存资源
h_dns_db | {ACL_DNS_DB*} DNS结果集 |
ACL_API const ACL_HOSTNAME* acl_netdb_index | ( | const ACL_DNS_DB * | h_dns_db, |
int | i | ||
) |
从结果集中取得某个下标位置的主机地址结构
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |
ACL_API const char* acl_netdb_index_ip | ( | const ACL_DNS_DB * | h_dns_db, |
int | i | ||
) |
将结果集中的对应某个下标的IP地址,以字符串表示
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |
ACL_API const ACL_SOCKADDR* acl_netdb_index_saddr | ( | ACL_DNS_DB * | h_dns_db, |
int | i | ||
) |
从结果集中取得某个下标位置的主机IP地址
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |
ACL_API ACL_DNS_DB* acl_netdb_new | ( | const char * | domain | ) |
根据域名创建一个查询结果集的结构,但并不进行DNS查询
domain | {const char*} 要查询的域名 |
ACL_API void acl_netdb_refer | ( | ACL_DNS_DB * | h_dns_db, |
int | i | ||
) |
将结果集中的对应某个下标的主机地址引用加1
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |
ACL_API void acl_netdb_refer_oper | ( | ACL_DNS_DB * | h_dns_db, |
int | i, | ||
int | n | ||
) |
将结果集中的对应某个下标的主机地址引用增加
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |
n | {int} 需要增加的引用值 |
ACL_API void acl_netdb_set_ns | ( | ACL_DNS_DB * | db, |
ACL_SOCKADDR * | sa | ||
) |
设置该 DNS 查询对象所绑定的 DNS 服务器地址
db | {ACL_DNS_DB*} 由 acl_netdb_new 或 acl_netdb_clone 创建 |
sa | {ACL_SOCKADDR*} DNS 服务器地址 |
ACL_API int acl_netdb_size | ( | const ACL_DNS_DB * | h_dns_db | ) |
取得结果集中主机地址的个数
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
ACL_API const char* acl_netdb_strerror | ( | int | errnum | ) |
根据错误号获得出错提示信息
errnum | {int} 错误号 |
ACL_API void acl_netdb_unrefer | ( | ACL_DNS_DB * | h_dns_db, |
int | i | ||
) |
将结果集中的对应某个下标的主机地址引用减1
h_dns_db | {const ACL_DNS_DB*} DNS结果集 |
i | {int} 下标位置 |