www.pudn.com > NETINFO.rar > acl.h


#ifndef _ACL_H_ 
#define _ACL_H_ 
 
enum ACL_PEMMISION_TYPE {ACL_ALLOW, ACL_DENY}; 
 
struct TCPUDP_ACL_RANGE 
{ 
	IP_ADDR addrLow; 
	WORD portLow; 
	IP_ADDR addrHigh; 
	WORD portHigh; 
}; 
 
struct ACL_ITEM 
{ 
	enum ACL_PEMMISION_TYPE permit; 
	TCPUDP_ACL_RANGE src; 
	TCPUDP_ACL_RANGE dst; 
//The Microsoft run-time library defines time_t 
	time_t validUntil; 
}; 
 
BOOL LoadAcl(const char* filename, CPtrList *pList); 
//CPtrList class supports lists of void pointers 
BOOL TcpShouldDeny(const CPtrList *pList, const IP* ip, const TCP* tcp); 
void ClearAcl(CPtrList *pList); 
BOOL MakeRstTcpPacket(const ETHERNET* ether, const IP* ip, const TCP* tcp, BOOL bSameDirection, 
					  WORD dataLen,  BYTE* buffer, DWORD bufferSize, DWORD *packetLength,  
					  BOOL bReplySynToSyn = FALSE, BOOL bImpostureData = FALSE); 
BOOL MakeICMPUnreachablePacket(const ETHERNET* ether, const IP* ip, const BYTE* ipDigest, DWORD ipDigestLen, 
							   BYTE* buffer, DWORD bufferSize, DWORD *packetLength); 
 
BOOL MakeRstTcpPacketV2(const BYTE etherSrc[ETHERNET_ADDR_LEN], const BYTE etherDst[ETHERNET_ADDR_LEN], 
						const IP_ADDR *ipSrc, const IP_ADDR *ipDst,  
						const WORD portSrc, const WORD portDst, 
						const DWORD seqSrc, const DWORD seqDst, 
						BYTE* buffer, DWORD bufferSize, DWORD *packetLength); 
 
#endif