MCPcopy Create free account
hub / github.com/PurpleI2P/i2pd / SocksUpstreamSuccess

Method SocksUpstreamSuccess

libi2pd_client/SOCKS.cpp:786–809  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

784
785 template<typename Socket>
786 void SOCKSHandler::SocksUpstreamSuccess(std::shared_ptr<Socket>& upstreamSock)
787 {
788 LogPrint(eLogInfo, "SOCKS: Upstream success");
789 boost::asio::const_buffer response(nullptr, 0);
790 switch (m_socksv)
791 {
792 case SOCKS4:
793 LogPrint(eLogInfo, "SOCKS: v4 connection success");
794 response = GenerateSOCKS4Response(SOCKS4_OK, m_4aip, m_port);
795 break;
796 case SOCKS5:
797 LogPrint(eLogInfo, "SOCKS: v5 connection success");
798 //HACK only 16 bits passed in port as SOCKS5 doesn't allow for more
799 response = GenerateSOCKS5Response(SOCKS5_OK, ADDR_DNS, m_address, m_port);
800 break;
801 }
802 m_sock->send(response);
803 auto forwarder = CreateSocketsPipe (GetOwner(), m_sock, upstreamSock);
804 upstreamSock = nullptr;
805 m_sock = nullptr;
806 GetOwner()->AddHandler(forwarder);
807 forwarder->Start();
808 Terminate();
809 }
810
811 template<typename Socket>
812 void SOCKSHandler::SendUpstreamRequest(std::shared_ptr<Socket>& upstreamSock)

Callers 1

SendUpstreamRequestMethod · 0.80

Calls 4

LogPrintFunction · 0.85
CreateSocketsPipeFunction · 0.85
AddHandlerMethod · 0.80
StartMethod · 0.45

Tested by

no test coverage detected