|
|
@ -293,8 +293,10 @@ bool static Socks5(string strDest, int port, SOCKET& hSocket) |
|
|
|
case 0x03: |
|
|
|
case 0x03: |
|
|
|
{ |
|
|
|
{ |
|
|
|
ret = recv(hSocket, pchRet3, 1, 0) != 1; |
|
|
|
ret = recv(hSocket, pchRet3, 1, 0) != 1; |
|
|
|
if (ret) |
|
|
|
if (ret) { |
|
|
|
|
|
|
|
closesocket(hSocket); |
|
|
|
return error("Error reading from proxy"); |
|
|
|
return error("Error reading from proxy"); |
|
|
|
|
|
|
|
} |
|
|
|
int nRecv = pchRet3[0]; |
|
|
|
int nRecv = pchRet3[0]; |
|
|
|
ret = recv(hSocket, pchRet3, nRecv, 0) != nRecv; |
|
|
|
ret = recv(hSocket, pchRet3, nRecv, 0) != nRecv; |
|
|
|
break; |
|
|
|
break; |
|
|
@ -501,6 +503,7 @@ bool ConnectSocket(const CService &addrDest, SOCKET& hSocketRet, int nTimeout) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
|
|
|
|
closesocket(hSocket); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -532,7 +535,9 @@ bool ConnectSocketByName(CService &addr, SOCKET& hSocketRet, const char *pszDest |
|
|
|
|
|
|
|
|
|
|
|
switch(nameproxy.second) { |
|
|
|
switch(nameproxy.second) { |
|
|
|
default: |
|
|
|
default: |
|
|
|
case 4: return false; |
|
|
|
case 4: |
|
|
|
|
|
|
|
closesocket(hSocket); |
|
|
|
|
|
|
|
return false; |
|
|
|
case 5: |
|
|
|
case 5: |
|
|
|
if (!Socks5(strDest, port, hSocket)) |
|
|
|
if (!Socks5(strDest, port, hSocket)) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|