internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, X509Certificate certificate, Logger logger) { _tcpClient = tcpClient; _secure = secure; var netStream = tcpClient.GetStream(); if (secure) { var sslStream = new SslStream(netStream, false); sslStream.AuthenticateAsServer(certificate); _stream = sslStream; } else { _stream = netStream; } _request = HttpRequest.Read(_stream, 90000); _uri = HttpUtility.CreateRequestUrl( _request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure); _websocket = new WebSocket(this, protocol, logger); }
internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, ServerSslAuthConfiguration certificateConfig, Logger logger) { _tcpClient = tcpClient; _secure = secure; var netStream = tcpClient.GetStream(); if (secure) { var sslStream = new SslStream(netStream, false); sslStream.AuthenticateAsServer(certificateConfig.ServerCertificate, certificateConfig.ClientCertificateRequired, certificateConfig.EnabledSslProtocols, certificateConfig.CheckCertificateRevocation); _stream = sslStream; } else { _stream = netStream; } _request = HttpRequest.Read(_stream, 90000); _uri = HttpUtility.CreateRequestUrl( _request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure); _websocket = new WebSocket(this, protocol, logger); }
private async Task <Uri> CreateRequestUri(bool secure) { var req = await _request.ConfigureAwait(false); return(HttpUtility.CreateRequestUrl( req.RequestUri, req.Headers["Host"], req.IsWebSocketRequest, secure)); }
internal TcpListenerWebSocketContext( TcpClient client, string protocol, bool secure, X509Certificate cert, Logger logger) { _client = client; _secure = secure; _stream = WebSocketStream.CreateServerStream(client, secure, cert); _request = _stream.ReadHandshake <HandshakeRequest> (HandshakeRequest.Parse, 90000); _uri = HttpUtility.CreateRequestUrl( _request.RequestUri, _request.Headers ["Host"], _request.IsWebSocketRequest, secure); _websocket = new WebSocket(this, protocol, logger); }
internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, ServerSslConfiguration sslConfig, Logger logger, bool alreadySentHeaders = false // (Extension for SelfHostedRemoteDesktop) ) { _tcpClient = tcpClient; _secure = secure; _logger = logger; var netStream = tcpClient.GetStream(); if (secure) { var sslStream = new SslStream(netStream, false, sslConfig.ClientCertificateValidationCallback); sslStream.AuthenticateAsServer( sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation ); _stream = sslStream; } else { _stream = netStream; } if (alreadySentHeaders) // (Extension for SelfHostedRemoteDesktop) { _request = new HttpRequest("GET", "/nstws"); _request.Headers.Add("Host", "TEST"); } else { _request = HttpRequest.Read(_stream, 90000); } _uri = HttpUtility.CreateRequestUrl( _request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure ); _websocket = new WebSocket(this, protocol); }
internal TcpListenerWebSocketContext( TcpClient tcpClient, string protocol, bool secure, ServerSslConfiguration sslConfig, Logger logger ) { _tcpClient = tcpClient; _secure = secure; _logger = logger; var netStream = tcpClient.GetStream(); if (secure) { var sslStream = new SslStream(netStream, false, sslConfig.ClientCertificateValidationCallback); // TODO Rever este ponto se o Async não faz diferença sslStream.AuthenticateAsServerAsync( sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation ); _stream = sslStream; } else { _stream = netStream; } _request = HttpRequest.Read(_stream, 90000); _uri = HttpUtility.CreateRequestUrl( _request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure ); _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); }
internal TcpListenerWebSocketContext(TcpClient tcpClient, string protocol, bool secure, ServerSslConfiguration sslConfig, Logger logger) { _tcpClient = tcpClient; _secure = secure; _logger = logger; NetworkStream stream = tcpClient.GetStream(); if (secure) { SslStream sslStream = new SslStream(stream, leaveStreamOpen: false, sslConfig.ClientCertificateValidationCallback); sslStream.AuthenticateAsServer(sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation); _stream = sslStream; } else { _stream = stream; } _request = HttpRequest.Read(_stream, 90000); _uri = HttpUtility.CreateRequestUrl(_request.RequestUri, _request.Headers["Host"], _request.IsWebSocketRequest, secure); _websocket = new WebSocket(this, protocol); }
internal TcpListenerWebSocketContext(TcpClient tcpClient, string protocol, bool secure, ServerSslConfiguration sslConfig, Logger logger) { this._tcpClient = tcpClient; this._secure = secure; this._logger = logger; NetworkStream innerStream = tcpClient.GetStream(); if (!secure) { this._stream = innerStream; } else { SslStream stream2 = new SslStream(innerStream, false, sslConfig.ClientCertificateValidationCallback); stream2.AuthenticateAsServer(sslConfig.ServerCertificate, sslConfig.ClientCertificateRequired, sslConfig.EnabledSslProtocols, sslConfig.CheckCertificateRevocation); this._stream = stream2; } this._request = HttpRequest.Read(this._stream, 0x15f90); this._uri = HttpUtility.CreateRequestUrl(this._request.RequestUri, this._request.Headers["Host"], this._request.IsWebSocketRequest, secure); this._websocket = new WebSocketSharp.WebSocket(this, protocol); }