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

📄 filter.cpp

📁 用Delphi实现的防火墙,可实现象天网一样的功能.
💻 CPP
字号:
// Filter.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "Filter.h"
#include <stdlib.h> 
#include <malloc.h>
#include "cons_def.h"
#include "ZPIMObject.h"
#include "fw_interface.h"

ZPIMObject *pIMObject=NULL;

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			pIMObject=new ZPIMObject;
			break;
		case DLL_THREAD_ATTACH:
			break;
		case DLL_THREAD_DETACH:
			break;
		case DLL_PROCESS_DETACH:
			if(pIMObject) delete pIMObject;
			break;
    }
    return TRUE;
}


FILTER_API void DeleteFilter()
{
  unsigned char stat=FWS_ALLOWALL;
  
  if(!pIMObject)  return;

  pIMObject->SetFwStatus(&stat);
  pIMObject->CleanCheckData();

  return;
}

FILTER_API int AddFilterKey(unsigned short port, char *pkey)
{
   struct Interface_Keyword *pK=NULL;
   int ret, len=0;
   unsigned char stat, mode;

   if(!pkey) return -1;
   len=strlen(pkey);
   if(len<=0) return -1;

   if(!pIMObject)  return -1;

   pK=(struct Interface_Keyword *)malloc(len+sizeof(struct Interface_Keyword));
   
   if(!pK) return -1;

   pK->id=0;
   pK->len = len;
   pK->port = port;

   memcpy((char *)pK+sizeof(*pK), pkey, len);

   stat = FWS_NORMAL;
   pIMObject->SetFwStatus(&stat);

   mode = RM_ALLOW;
   pIMObject->SetFwMode(&mode);

   ret = pIMObject->AddCheckData(pK);

   free(pK);

   if(ret==ERROR_SUCCESS) return 1; else return -1;
}



⌨️ 快捷键说明

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