⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intotodns.h

📁 Linux下DHCP Client的实现。
💻 H
字号:
//INTOTO_DNS
//

#ifndef INTOTO_DNS_H
#define INTOTO_DNS_H

#define DNSRD_DOMAIN_NAME_LEN             128
#define DNSRD_MAX_NSINFO_BUFF_SIZE       1024
#define DNSRD_MAX_QUERY_SIZE             1024
#define DNSRD_DOMAIN_PORT                  53
/**
 ** Free Pools Maximum values..
 **/
#define DNS_MAX_ANSWERS             30
#define DNS_MAX_TYPE_A_ANSWERS      30
#define DNS_MAX_TYPE_MX_ANSWERS     10
#define DNS_MAX_GENERIC_RR_POOL     30  /**Max. Cnt of RR's in Cache list **/
#define DNS_MAX_TYPEA_RR_POOL       50   /**Max. Cnt of RR's in Cache list **/
#define DNS_MAX_TYPESOA_RR_POOL     10  /**Max. Cnt of RR's in Cache list **/
#define DNS_MAX_TYPEMX_RR_POOL      30   /**Max. Cnt of RR's in Cache list **/
#define DNS_MAX_TYPEHINFO_RR_POOL   10   /**Max. Cnt of RR's in Cache list **/
#define DNS_MAX_TYPEPTR_RR_POOL     50  /**Max. Cnt of RR's in Cache list **/

#define DNS_MAX_DNS_SESSION_POOL    20  /**Max. Cnt of Dns Sessions in list **/
#define DNS_MAX_DSERVERS_POOL_CNT   (2*DNS_MAX_DNS_SESSION_POOL+2) /**Max. Cnt of NAME Servers pool**/
#define DNS_MAX_DSERVERS_CNT        12   /**Max. Cnt of NAME Servers Canbe configured.**/
#define DNSRD_MAX_DYNAMIC_DSERVERS        4
#define DNSRD_MAX_STATIC_DSERVERS         2
#define DNSRD_DYNAMIC_DSERVERS_INDEX      0
#define DNSRD_STATIC_DSERVERS_INDEX       DNSRD_MAX_DYNAMIC_DESERVERS
#define DNSRD_MAX_DSERVERS_CNT            (DNSRD_MAX_STATIC_DSERVERS + DNSRD_MAX_DYNAMIC_DSERVERS) 


typedef struct DNSRDAppRecCmdMsg_s
{
 	char DomainName[DNSRD_DOMAIN_NAME_LEN + 1];
}DNSRDAppRecCmdMsg_t;

typedef struct SysDomainName_s
{
 	char SysDomainName[DNSRD_DOMAIN_NAME_LEN + 1];
}SysDomainName_t;

typedef struct DNSServer_s
{
 	int32_t uiFlags;
#define DNSRD_ADMIN_CONFIG       0x1
#define DNSRD_DHCPC_CONFIG       0x2
#define DNSRD_PPP_CONFIG         0x4
#define MAX_DNSRD_SERVER_TYPES   3
	int32_t ulCnt[MAX_DNSRD_SERVER_TYPES]; /* Counters used for non */
  	unsigned long  ServerIp;
  /*T_INT32 type;*/
}DNSServer_t;

typedef struct CMDServerList_s
{
 	char      srvrcnt;
 	DNSServer_t  servers[DNSRD_MAX_DSERVERS_CNT];
}CMDServerList_t;

typedef struct ReplyIPs_s
{
 	char   DomainName[DNSRD_DOMAIN_NAME_LEN + 1];
 	int32_t   ancountA;  
 	unsigned long    AIpAddress[DNS_MAX_TYPE_A_ANSWERS];
	int32_t   ancountMX;  
	unsigned long    MXIpAddress[DNS_MAX_TYPE_MX_ANSWERS];
}ReplyIPs_t;

typedef struct DNSRDAppCBStats_s
{
	uint32_t DynamicAllocs;
	uint32_t DynamicFrees;
	uint32_t StaticAllocs;
	uint32_t StaticFrees;
	uint32_t FreeAvail;
}DNSRDAppCBStats_t;


typedef union DNSRDUnionControlMsg_s
{
	DNSRDAppRecCmdMsg_t CmdData;
	SysDomainName_t     SysDN;
	CMDServerList_t     CmdServList;
	ReplyIPs_t          IPList;
	DNSServer_t         Server;
	DNSRDAppCBStats_t   CBStats;
}DNSRDUnionControlMsg_t;

typedef struct DNSRDCntrlMsg_s
{
	int32_t                CmdType;
	DNSRDUnionControlMsg_t Cmd;
}DNSRDCntrlMsg_t;


typedef enum {
	DNSRD_RESP_BASE = 0,
	DNSRD_REGISTER_DOMAIN_NAME,
	DNSRD_REGISTER_CACHE_REFCOUNT_INCREASED,
	DNSRD_REGISTER_CB_REFCOUNT_INCREASED,
	DNSRD_DE_REGISTER_DOMAIN_NAME,
	DNSRD_DE_REGISTER_CACHE_REFCOUNT_DECREASED,
	DNSRD_DE_REGISTER_CB_REFCOUNT_DECREASED,
	DNSRD_ADD_NAME_SERVER,
	DNSRD_DROP_NAME_SERVER,
	DNSRD_GET_SERVER_LIST,
	DNSRD_GET_POOL_STATS,
	DNSRD_GET_CACHE_LIST,
	DNSRD_GET_RESOLVE_DOMAIN,
	DNSRD_GET_CB_STATS,
	/*Responses Definations for Firewall Module */
	DNSRD_IP_MATCHED_WITH_DOMAIN,
	DNSRD_LIST_SYS_DOMAIN,
	DNSRD_ADD_SYS_DOMAIN,
	DNSRD_MAX_RESP_BASE
}eDNSRDRespVal;
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -