示例#1
0
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;
}
示例#2
0
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);
}