From a877349bbe2c127f68d303e564fe2ff1648b8759 Mon Sep 17 00:00:00 2001 From: Connection Refused Date: Sun, 17 Oct 2021 15:50:11 +0800 Subject: [PATCH] [Redirector] Update SocksHelper --- Redirector/SocksHelper.cpp | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/Redirector/SocksHelper.cpp b/Redirector/SocksHelper.cpp index f4613aa3..fe1b5543 100644 --- a/Redirector/SocksHelper.cpp +++ b/Redirector/SocksHelper.cpp @@ -126,31 +126,31 @@ bool SocksHelper::Handshake(SOCKET client) bool SocksHelper::SplitAddr(SOCKET client, PSOCKADDR_IN6 addr) { - char addressType; - if (recv(client, (char*)&addressType, 1, 0) != 1) + char addrType; + if (recv(client, (char*)&addrType, 1, 0) != 1) { printf("[Redirector][SocksHelper::SplitAddr] Read address type failed: %d\n", WSAGetLastError()); return false; } - if (addressType == 0x01) + if (addrType == 0x01) { - auto address = (PSOCKADDR_IN)addr; - address->sin_family = AF_INET; + auto ipv4 = (PSOCKADDR_IN)addr; + ipv4->sin_family = AF_INET; - if (recv(client, (char*)&address->sin_addr, 4, 0) != 4) + if (recv(client, (char*)&ipv4->sin_addr, 4, 0) != 4) { printf("[Redirector][SocksHelper::SplitAddr] Read IPv4 address failed: %d\n", WSAGetLastError()); return false; } - if (recv(client, (char*)&address->sin_port, 2, 0) != 2) + if (recv(client, (char*)&ipv4->sin_port, 2, 0) != 2) { printf("[Redirector][SocksHelper::SplitAddr] Read IPv4 port failed: %d\n", WSAGetLastError()); return false; } } - else if (addressType == 0x04) + else if (addrType == 0x04) { addr->sin6_family = AF_INET6; @@ -168,7 +168,7 @@ bool SocksHelper::SplitAddr(SOCKET client, PSOCKADDR_IN6 addr) } else { - printf("[Redirector][SocksHelper::SplitAddr] Unsupported address family: %d\n", addressType); + printf("[Redirector][SocksHelper::SplitAddr] Unsupported address family: %d\n", addrType); return false; } @@ -306,17 +306,10 @@ bool SocksHelper::UDP::Associate() if (!SocksHelper::Handshake(this->tcpSocket)) return false; - char buffer[10]; + char buffer[10]{}; buffer[0] = 0x05; buffer[1] = 0x03; - buffer[2] = 0x00; buffer[3] = 0x01; - buffer[4] = 0x00; - buffer[5] = 0x00; - buffer[6] = 0x00; - buffer[7] = 0x00; - buffer[8] = 0x00; - buffer[9] = 0x00; if (send(this->tcpSocket, buffer, 10, 0) != 10) { @@ -332,7 +325,7 @@ bool SocksHelper::UDP::Associate() if (buffer[1] != 0x00) { - puts("[Redirector][SocksHelper::UDP::Associate] UDP associate failed"); + printf("[Redirector][SocksHelper::UDP::Associate] UDP associate failed: %d\n", buffer[1]); return false; }