www.pudn.com > netcode34.zip > XFile.h, change:2001-09-29,size:5789b
//============================================================================================= /* XFile.h File operate function of ACL file Project : XFILTER 1.0 Personal Firewall Author : Tony Zhu Create Date : 2001/08/03 Email : xstudio@xfilt.com URL : http://www.xfilt.com Copyright (c) 2001-2002 XStudio Technology. All Rights Reserved. WARNNING: */ //============================================================================================= #include "XFileRes.h" #include "Debug.h" //============================================================================================= // Internet Info typedef struct _XUSER_INFO { TCHAR sEmail[51]; TCHAR sUserName[21]; TCHAR sPassword[21]; TCHAR sQQ[13]; TCHAR sICQ[13]; TCHAR sName[21]; BYTE bIdType; TCHAR sId[21]; int iStatus; BYTE bGender; BYTE bMetier; TCHAR sDuty[21]; BYTE bDegree; BYTE bSalary; CTime tBirthday; WORD wCountry; WORD wCity; TCHAR sAddress[51]; TCHAR sZip[11]; TCHAR sInc[51]; } XUSER_INFO, *PXUSER_INFO; typedef struct _XNET_COMMAND_HEADER { long lVersion; long lCount; CTime tCheckTime; } XNET_COMMAND_HEADER, *PXNET_COMMAND_HEADER; //============================================================================================= // ACL file typedef struct _XACL_HEADER { TCHAR sSignature[16]; DWORD ulHeaderLenth; BYTE bMajor; BYTE bMinor; UINT uiSerial; DWORD ulVersion; BYTE bSet; UINT uiLogSize; BYTE bUpdateInterval; TCHAR sUserName[16]; TCHAR sACode[16]; TCHAR sWebURL[MAX_PATH]; TCHAR sCommandURL[MAX_PATH]; TCHAR sUserRegisterURL[MAX_PATH]; TCHAR sEmail[MAX_PATH]; DWORD ulAclOffset; DWORD ulAclCount; DWORD ulIntranetIPOffset; DWORD ulIntranetIPCount; DWORD ulDistrustIPOffset; DWORD ulDistrustIPCount; DWORD ulTrustIPOffset; DWORD ulTrustIPCount; DWORD ulCustomIPOffset; DWORD ulCustomIPCount; DWORD ulTimeOffset; DWORD ulTimeCount; } XACL_HEADER, *PXACL_HEADER; typedef struct _XACL { DWORD ulAclID; TCHAR sApplication[MAX_PATH]; BYTE bRemoteNetType; BYTE bAccessTimeType; BYTE bAction; BYTE bDirection; BYTE bServiceType; UINT uiServicePort; TCHAR sMemo[51]; } XACL, *PXACL; typedef struct _XACL_IP { DWORD ulStartIP; DWORD ulEndIP; } XACL_IP, *PXACL_IP; typedef struct _XACL_TIME { BYTE bWeekDay; CTime tStartTime; CTime tEndTime; } XACL_TIME, *PXACL_TIME; typedef struct _XACL_FILE { XACL_HEADER mAclHeader; XACL_IP mAclIntranetIP; XACL_TIME mAclTime [ACL_HEADER_TIME_COUNT]; XACL_IP mpAclDistrustIP [MAX_IP_ARIA]; XACL_IP mpAclTrustIP [MAX_IP_ARIA]; XACL_IP mpAclCustomIP [MAX_IP_ARIA]; XACL mpAcl [MAX_ACL]; } XACL_FILE, *PXACL_FILE; //============================================================================================= // the packet struct of TCPIPDOG Capture typedef struct _SESSION { SOCKET s; DWORD ulRemoteIP; CTime tStartTime; BYTE bDirection; BYTE bProtocol; UINT uiPort; BYTE bAction; UINT uiLocalPort; DWORD ulLocalIP; DWORD ulSendData; DWORD ulRecvData; TCHAR sPathName[MAX_PATH]; TCHAR sMemo[MAX_PATH]; CTime tEndTime; } SESSION, *PSESSION; #define SESSION_LENTH sizeof(SESSION) //============================================================================================= // the query session typedef struct _QUERY_SESSION { BYTE status; //0: no use, 1: using TCHAR sPathName[MAX_PATH]; } QUERY_SESSION, *PQUERY_SESSION; //============================================================================================= // XFITLER Io Control struct typedef BOOL (WINAPI * ADD_ACL_QUERY)(TCHAR* sPathName, BOOL EnableComboApplication = FALSE); typedef struct _XFILTER_IO_CONTROL { int iWorkMode; XACL_FILE AclFile; ADD_ACL_QUERY pAddAclQuery; HWND hwnd; SESSION *session; int isession; TCHAR sPathName[MAX_PATH]; } XFILTER_IO_CONTROL, *PXFILTER_IO_CONTROL; typedef int (WINAPI * XF_IO_CONTROL)(int iControlType, XFILTER_IO_CONTROL* ioControl); //============================================================================================= // class of Acl file class CAclFile { private: CRITICAL_SECTION gCriticalSectionFile; private: void InitDefaultValue(); int CreateAcl (const TCHAR *sPathName); int WriteAcl (const TCHAR *sPathName); int OpenAcl (); int AddAclAcl (XACL *pAddAcl, int AddAclCount); int AddDistrustIP(XACL_IP *pDistrustIP, int AddCount); int AddTrustIP (XACL_IP *pTrustIP, int AddCount); int AddCustomIP (XACL_IP *pCustomIP, int AddCount); int DelAclIP (XACL_IP *pAclIP, DWORD* pCount, DWORD iIndex); int DelAcl (XACL *pAcl, DWORD* pCount, DWORD iIndex); public: CAclFile(); virtual ~CAclFile (); void CloseAcl (); int ReadAcl (BOOL IsDLL = FALSE, HINSTANCE instance = NULL); int SaveAcl (); int AddAcl (void *pAddAcl, int AddAclCount, int AclType = 0); int DelAcl (int iIndex, int AclType); int FreeMemory (); public: static int GetBit (BYTE bit, int index, int count = 1); static int SetBit (BYTE* bit, int index, BOOL isTrue); static CString DIPToSIP (DWORD* pIP); static CString GetAppPath (BOOL IsDLL = FALSE, HINSTANCE instance = NULL, BOOL IsFullPathName = FALSE); static CString GetPath (TCHAR *sFilename); static CString GetName (TCHAR *sFilename); public: CFile mAclFile; XACL_HEADER mAclHeader; XACL_IP mAclIntranetIP; XACL_TIME mAllTime; XACL_TIME mAclTime[ACL_HEADER_TIME_COUNT]; XACL_IP *mpAclDistrustIP; XACL_IP *mpAclTrustIP; XACL_IP *mpAclCustomIP; XACL *mpAcl; CString mAppPath; };