public IHttpClientContext CreateSecureContext(Socket socket, X509Certificate certificate, SslProtocols protocol)
{
var networkStream = new ReusableSocketNetworkStream(socket, true);
var remoteEndPoint = (IPEndPoint) socket.RemoteEndPoint;
var sslStream = new SslStream(networkStream, false);
try
{
//TODO: this may fail
sslStream.AuthenticateAsServer(certificate, false, protocol, false);
return CreateContext(true, remoteEndPoint, sslStream, socket);
}
catch (IOException err)
{
if (UseTraceLogs)
_logWriter.Write(this, LogPrio.Trace, err.Message);
}
catch (ObjectDisposedException err)
{
if (UseTraceLogs)
_logWriter.Write(this, LogPrio.Trace, err.Message);
}
return null;
}