📄 domainiphash.h
字号:
#ifndef _DOMAIN_IP_HASH_
#define _DOMAIN_IP_HASH_
#define IP_TYPE_INIT 0X00000000
#define IP_TYPE_SHOOT 0X00000001
#define IP_TYPE_WEBMAIL 0X00000002
#define IP_TYPE_FOUND 0X00000004
#define IP_TYPE_LOGON 0X00000008
#define IP_TYPE_BBS 0X00000010
#define IP_TYPE_SEARCH 0X00000020
#define IP_TYPE_POST 0X00000040
#define WEB_MAIL_BEGIN "begin"
#define WEB_MAIL_HOST "host"
#define WEB_MAIL_HOST_ATTR "attr"
#define WEB_MAIL_USERNAME "username"
#define WEB_MAIL_PASSWORD "password"
#define WEB_MAIL_CRYPTOGRAM "cryptogram"
#define WEB_MAIL_SEPARATOR "sepatator"
#define WEB_MAIL_END "endup"
#define WEB_MAIL_LOGIN_FLAG "loginflag"
#define WEB_MAIL_SUFFIX "suffix"
#define WEB_MAIL_LOCATION "location"
#define WEB_MAIL_LOCEND "locend"
#define WEB_MAIL_RCFLAG "rcflag"
#define WEB_MAIL_RCCONTINUE "rccontinue"
#define WEB_MAIL_RAFLAG "raflag"
#define WEB_MAIL_SCFLAG "scflag"
#define WEB_MAIL_SAFLAG "saflag"
#define WEB_MAIL_ADDLIST "addlist"
#define WEB_MAIL_HOST_SEQ "."
#define WEB_MAIL_CONFIG_SEQ "\r\n"
#define WEB_MAIL_HOST_LEN 128
#define WEB_MAIL_USERNAME_LEN 12
#define WEB_MAIL_PASSWORD_LEN 12
#define WEB_MAIL_LOCATION_NUM 4
#define WEB_MAIL_LOCATION_LEN 64
#define WEB_MAIL_LOCEND_NUM 4
#define WEB_MAIL_LOCEND_LEN 64
#define WEB_MAIL_FROM_LEN 12
#define WEB_MAIL_TO_LEN 12
#define WEB_MAIL_CC_LEN 12
#define WEB_MAIL_BCC_LEN 12
#define WEB_MAIL_SUBJECT_LEN 12
#define WEB_MAIL_SEPARATOR_LEN 4
#define WEB_MAIL_LOGIN_FLAG_LEN 24
#define WEB_MAIL_SUFFIX_LEN 48
#define WEB_MAIL_RCFLAG_LEN 64
#define WEB_MAIL_RCCONTINUE_LEN 64
#define WEB_MAIL_RAFLAG_LEN 64
#define WEB_MAIL_SCFLAG_LEN 64
#define WEB_MAIL_SAFLAG_LEN 64
#define WEB_MAIL_ADDLIST_LEN 64
#define DOMAIN_STATE_VALIDATE 0X00000000
#define DOMAIN_STATE_INVALIDATE 0X00000001
#define UINT unsigned int
#define USHORT unsigned short
typedef struct _WEB_MAIL_CONFIG
{
struct _WEB_MAIL_CONFIG *pNext;
UINT uiLocation;
UINT IPType;
UINT httpType; //http_bbs or http_webmail
UINT crypt;
UINT hostNumber;
#define WEB_MAIL_HOST_NUMBER 100
char host[WEB_MAIL_HOST_LEN];
char separator[WEB_MAIL_SEPARATOR_LEN];
char suffix[WEB_MAIL_SUFFIX_LEN];
char username[WEB_MAIL_USERNAME_LEN];
char password[WEB_MAIL_PASSWORD_LEN];
char location[WEB_MAIL_LOCATION_NUM][WEB_MAIL_LOCATION_LEN];
char locend[WEB_MAIL_LOCATION_NUM][WEB_MAIL_LOCATION_LEN];
char loginflag[WEB_MAIL_LOGIN_FLAG_LEN];
char rcflag[WEB_MAIL_RCFLAG_LEN];
char rccontinue[WEB_MAIL_RCCONTINUE_LEN];
char raflag[WEB_MAIL_RAFLAG_LEN];
char scflag[WEB_MAIL_SCFLAG_LEN];
char saflag[WEB_MAIL_SAFLAG_LEN];
char addlist[WEB_MAIL_ADDLIST_LEN];
char from[WEB_MAIL_FROM_LEN];
char to[WEB_MAIL_TO_LEN];
char cc[WEB_MAIL_CC_LEN];
char bcc[WEB_MAIL_BCC_LEN];
char subject[WEB_MAIL_SUBJECT_LEN];
}WEB_MAIL_CONFIG, *PWEB_MAIL_CONFIG;
typedef struct _IP_HASH_BUCKET
{
struct _IP_HASH_BUCKET *pNext;
UINT type;
UINT ip;
PWEB_MAIL_CONFIG pConfig;
}IP_HASH_BUCKET, *PIP_HASH_BUCKET;
typedef struct _RULE_IP_HASH_BUCKET
{
struct _RULE_IP_HASH_BUCKET *pNext;
UINT sip;
UINT ruleID;
UINT ruleType;
USHORT state;
UINT totalHited;
struct timeval time;
}RULE_IP_HASH_BUCKET, *PRULE_IP_HASH_BUCEKT;
#define RULE_IP_HASH_BUCKET_STATE_VALID 0X0001
#define RULE_IP_HASH_BUCKET_STATE_INVALID 0X0002
#define RULE_IP_HASH_BUCKET_STATE_STATIC 0X0100
#define RULE_IP_HASH_BUCKET_STATE_DYNAMIC 0X0200
typedef struct _RULE_IP_HASH_HEAD
{
RULE_IP_HASH_BUCKET *pHead;
spinlock_t spinLock;
}RULE_IP_HASH_HEAD, *PRULE_IP_HASH_HEAD;
typedef struct _DOMAIN_HASH_BUCKET
{
struct _DOMAIN_HASH_BUCKET *pNext;
UINT type;
UINT domainLen;
UINT ruleID;
UINT state; //当前域名是否有效
PWEB_MAIL_CONFIG pConfig;
char payload[1];
}DOMAIN_HASH_BUCKET, *PDOMAIN_HASH_BUCKET;
typedef struct _HASHHEAD_LOOKASIDE_INFO
{
kmem_cache_t* pHashLookside;
long iNumber;
struct semaphore fastMutex;
}HASHHEAD_LOOKASIDE_INFO, *PHASHHEAD_LOOKASIDE_INFO;
typedef struct _PACKET_LOOKASIDE_INFO{
kmem_cache_t* pPacketLookside;
long iNumber;
struct semaphore fastMutex;
}PACKET_LOOKASIDE_INFO, *PPACKET_LOOKASIDE_INFO;
#endif //_DOMAIN_IP_HASH_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -