Browse Source

fix !O_NONBLOCK where ~O_NONBLOCK was meant

Using ! on a non-zero value will always return 0.

Also remove some duplicate and superfluous code in other places.
0.8
Wladimir J. van der Laan 12 years ago
parent
commit
fe9e88cb06
  1. 21
      src/netbase.cpp

21
src/netbase.cpp

@ -72,19 +72,14 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign @@ -72,19 +72,14 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign
aiHint.ai_socktype = SOCK_STREAM;
aiHint.ai_protocol = IPPROTO_TCP;
#ifdef WIN32
#ifdef USE_IPV6
aiHint.ai_family = AF_UNSPEC;
#else
aiHint.ai_family = AF_INET;
#endif
#ifdef WIN32
aiHint.ai_flags = fAllowLookup ? 0 : AI_NUMERICHOST;
#else
# ifdef USE_IPV6
aiHint.ai_family = AF_UNSPEC;
# else
aiHint.ai_family = AF_INET;
# endif
aiHint.ai_flags = fAllowLookup ? AI_ADDRCONFIG : AI_NUMERICHOST;
#endif
struct addrinfo *aiRes = NULL;
@ -119,13 +114,12 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign @@ -119,13 +114,12 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign
bool LookupHost(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup)
{
std::string str(pszName);
std::string strHost = str;
if (str.empty())
std::string strHost(pszName);
if (strHost.empty())
return false;
if (boost::algorithm::starts_with(str, "[") && boost::algorithm::ends_with(str, "]"))
if (boost::algorithm::starts_with(strHost, "[") && boost::algorithm::ends_with(strHost, "]"))
{
strHost = str.substr(1, str.size() - 2);
strHost = strHost.substr(1, strHost.size() - 2);
}
return LookupIntern(strHost.c_str(), vIP, nMaxSolutions, fAllowLookup);
@ -222,10 +216,9 @@ bool static Socks5(string strDest, int port, SOCKET& hSocket) @@ -222,10 +216,9 @@ bool static Socks5(string strDest, int port, SOCKET& hSocket)
return error("Hostname too long");
}
char pszSocks5Init[] = "\5\1\0";
char *pszSocks5 = pszSocks5Init;
ssize_t nSize = sizeof(pszSocks5Init) - 1;
ssize_t ret = send(hSocket, pszSocks5, nSize, MSG_NOSIGNAL);
ssize_t ret = send(hSocket, pszSocks5Init, nSize, MSG_NOSIGNAL);
if (ret != nSize)
{
closesocket(hSocket);
@ -414,7 +407,7 @@ bool static ConnectSocketDirectly(const CService &addrConnect, SOCKET& hSocketRe @@ -414,7 +407,7 @@ bool static ConnectSocketDirectly(const CService &addrConnect, SOCKET& hSocketRe
if (ioctlsocket(hSocket, FIONBIO, &fNonblock) == SOCKET_ERROR)
#else
fFlags = fcntl(hSocket, F_GETFL, 0);
if (fcntl(hSocket, F_SETFL, fFlags & !O_NONBLOCK) == SOCKET_ERROR)
if (fcntl(hSocket, F_SETFL, fFlags & ~O_NONBLOCK) == SOCKET_ERROR)
#endif
{
closesocket(hSocket);

Loading…
Cancel
Save