CConn_SocketStream::CConn_SocketStream(CSocket& socket, const STimeout* timeout, size_t buf_size) : CConn_IOStream(TConn_Pair(SOCK_CreateConnectorOnTop(s_GrabSOCK(socket), 1/*own*/), eIO_Unknown), timeout, buf_size) { return; }
CConn_SocketStream::CConn_SocketStream(SOCK sock, EOwnership if_to_own, const STimeout* timeout, size_t buf_size) : CConn_IOStream(TConn_Pair(SOCK_CreateConnectorOnTop(sock, if_to_own != eNoOwnership), eIO_Unknown), timeout, buf_size) { return; }
static CONNECTOR s_CreateSocketConnector(const SConnNetInfo* net_info, const void* init_data, size_t init_size) { if (*net_info->http_proxy_host) { SOCK sock = 0; EIO_Status status = HTTP_CreateTunnelEx(net_info, fHCC_NoAutoRetry, init_data, init_size, &sock); if (status == eIO_Success) { assert(sock); return SOCK_CreateConnectorOnTop(sock, 1/*pass ownership*/); } assert(!sock); } return SOCK_CreateConnectorEx(net_info->firewall && *net_info->proxy_host ? net_info->proxy_host : net_info->host, net_info->port, 1/*max.try*/, init_data, init_size, net_info->debug_printout == eDebugPrintout_Data ? fSOCK_LogOn : fSOCK_LogDefault); }