title: SslStream.Read returns 0 on connected socket
body: <p>there is an interface IStream to abstract NetworkStream and SslStream. With NetworkStream everything is fine while with SslStream having problems on Read method. This is how I establish Ssl stream:</p>
  
  <pre><code>class SecureStream : SslStream, IStream
  {
      TcpClient _tcpClient;
      public SecureStream(TcpClient tcpClient) : base(tcpClient.GetStream()) {
          _tcpClient = tcpClient;
          var serverCertificate = new X509Certificate(@"C:\Cert.cer");
          AuthenticateAsServer(serverCertificate);
          ReadTimeout = -1;
          this.InnerStream.ReadTimeout = -1;
          _tcpClient.Client.ReceiveTimeout = -1;
      }
      ...
  }
  </code></pre>
  
  <p>After successful reading some portion of data (http header) have to wait several seconds on Read method, but Read method instantly returns 0. Ssl connection stays active and I can Write response back on other thread. What reasons could be that Read method not waiting for data to appear in stream?</p>