internal HttpConnection(Socket socket, EndPointListener listener) { _socket = socket; _listener = listener; Stream netStream = new NetworkStream(socket, false); #if BUFFERED netStream = new BufferedNetworkStream((NetworkStream)netStream); #endif #if !NETCF || BCC || SSL if (listener.IsSecure) { var sslConf = listener.SslConfiguration; var sslStream = new SslStream(netStream, false, sslConf.ClientCertificateValidationCallback); sslStream.AuthenticateAsServer(sslConf.ServerCertificate, sslConf.ClientCertificateRequired, sslConf.EnabledSslProtocols, sslConf.CheckCertificateRevocation); _secure = true; _stream = sslStream; } else #endif _stream = netStream; _localEndPoint = socket.LocalEndPoint; _remoteEndPoint = socket.RemoteEndPoint; _sync = new object(); _timeout = 90000; // 90k ms for first request, 15k ms from then on. _timeoutCanceled = new Dictionary <int, bool> (); _timer = new Timer(onTimeout, this, Timeout.Infinite, Timeout.Infinite); init(); }
internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, #if !NETCF || BCC || SSL ServerSslConfiguration sslConfig, #endif Logger log) { _tcpClient = tcpClient; _secure = secure; _log = log; Stream netStream = tcpClient.GetStream(); #if BUFFERED netStream = new BufferedNetworkStream((NetworkStream)netStream); #endif #if !NETCF || BCC || SSL if (secure) { var sslStream = new SslStream(netStream, false, sslConfig.ClientCertificateValidationCallback); sslStream.AuthenticateAsServer( sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation); _stream = sslStream; } else #endif { _stream = netStream; } #if SSHARP var sock = tcpClient; #else var sock = tcpClient.Client; #endif _serverEndPoint = sock.LocalEndPoint; _userEndPoint = sock.RemoteEndPoint; _request = HttpRequest.Read(_stream, 90000); _websocket = new WebSocket(this, protocol); }
internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, #if !NETCF || BCC || SSL ServerSslConfiguration sslConfig, #endif Logger logger) { _tcpClient = tcpClient; _secure = secure; _logger = logger; Stream netStream = tcpClient.GetStream(); #if BUFFERED netStream = new BufferedNetworkStream((NetworkStream)netStream); #endif #if !NETCF || BCC || SSL if (secure) { var sslStream = new SslStream(netStream, false, sslConfig.ClientCertificateValidationCallback); sslStream.AuthenticateAsServer( sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation); _stream = sslStream; } else #endif { _stream = netStream; } _request = HttpRequest.Read(_stream, 90000); _uri = HttpUtility.CreateRequestUrl(_request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure); _websocket = new WebSocket(this, protocol); }