mirror of
https://github.com/netchx/netch.git
synced 2026-03-18 18:13:21 +08:00
[Redirector] Support custom icmp delay
This commit is contained in:
@@ -5,6 +5,7 @@ BOOL filterIntranet = FALSE;
|
||||
BOOL filterICMP = TRUE;
|
||||
BOOL filterTCP = TRUE;
|
||||
BOOL filterUDP = TRUE;
|
||||
DWORD icmping = 0;
|
||||
wstring tgtHost = L"1.1.1.1";
|
||||
wstring tgtPort = L"1080";
|
||||
string tgtUsername = "";
|
||||
|
||||
@@ -29,6 +29,8 @@ typedef enum _AIO_TYPE {
|
||||
AIO_FILTERTCP,
|
||||
AIO_FILTERUDP,
|
||||
|
||||
AIO_ICMPING,
|
||||
|
||||
AIO_TGTHOST,
|
||||
AIO_TGTPORT,
|
||||
AIO_TGTUSER,
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#include "IPEventHandler.h"
|
||||
|
||||
extern DWORD icmping;
|
||||
|
||||
USHORT IPv4Checksum(PBYTE buffer, ULONG64 size)
|
||||
{
|
||||
UINT32 sum = 0;
|
||||
@@ -76,6 +78,7 @@ void ipSend(const char* buffer, int length, PNF_IP_PACKET_OPTIONS options)
|
||||
data[options->ipHeaderSize + 2] = icmpsum & 0xff;
|
||||
data[options->ipHeaderSize + 3] = (icmpsum >> 8);
|
||||
|
||||
Sleep(icmping);
|
||||
printf("[Redirector][IPEventHandler][ipSend] Fake ICMP response for %d.%d.%d.%d\n", data[12], data[13], data[14], data[15]);
|
||||
|
||||
nf_ipPostReceive((PCHAR)data, length, options);
|
||||
|
||||
@@ -8,6 +8,7 @@ extern BOOL filterIntranet;
|
||||
extern BOOL filterICMP;
|
||||
extern BOOL filterTCP;
|
||||
extern BOOL filterUDP;
|
||||
extern DWORD icmping;
|
||||
extern wstring tgtHost;
|
||||
extern wstring tgtPort;
|
||||
extern string tgtUsername;
|
||||
@@ -68,9 +69,8 @@ extern "C" {
|
||||
case AIO_FILTERUDP:
|
||||
filterUDP = (wstring(value).find(L"false") == string::npos);
|
||||
break;
|
||||
case AIO_CLRNAME:
|
||||
bypassList.clear();
|
||||
handleList.clear();
|
||||
case AIO_ICMPING:
|
||||
icmping = atoi(ws2s(value).c_str());
|
||||
break;
|
||||
case AIO_TGTHOST:
|
||||
tgtHost = wstring(value);
|
||||
@@ -84,6 +84,10 @@ extern "C" {
|
||||
case AIO_TGTPASS:
|
||||
tgtPassword = ws2s(value);
|
||||
break;
|
||||
case AIO_CLRNAME:
|
||||
bypassList.clear();
|
||||
handleList.clear();
|
||||
break;
|
||||
case AIO_BYPNAME:
|
||||
try
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user