MCPcopy Create free account
hub / github.com/LUX-Core/lux / ConnectSocket

Function ConnectSocket

src/netbase.cpp:542–565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

540}
541
542bool ConnectSocket(const CService& addrDest, SOCKET& hSocketRet, int nTimeout, bool* outProxyConnectionFailed)
543{
544 proxyType proxy;
545 if (outProxyConnectionFailed)
546 *outProxyConnectionFailed = false;
547 // no proxy needed (none set for target network)
548 if (!GetProxy(addrDest.GetNetwork(), proxy))
549 return ConnectSocketDirectly(addrDest, hSocketRet, nTimeout);
550
551 SOCKET hSocket = INVALID_SOCKET;
552
553 // first connect to proxy server
554 if (!ConnectSocketDirectly(proxy, hSocket, nTimeout)) {
555 if (outProxyConnectionFailed)
556 *outProxyConnectionFailed = true;
557 return false;
558 }
559 // do socks negotiation
560 if (!Socks5(addrDest.ToStringIP(), addrDest.GetPort(), hSocket))
561 return false;
562
563 hSocketRet = hSocket;
564 return true;
565}
566
567bool ConnectSocketByName(CService& addr, SOCKET& hSocketRet, const char* pszDest, int portDefault, int nTimeout, bool* outProxyConnectionFailed)
568{

Callers 2

ConnectSocketByNameFunction · 0.85
ConnectNodeFunction · 0.85

Calls 6

GetProxyFunction · 0.85
ConnectSocketDirectlyFunction · 0.85
Socks5Function · 0.85
GetNetworkMethod · 0.80
ToStringIPMethod · 0.80
GetPortMethod · 0.80

Tested by

no test coverage detected