[System]: SslStream.Flush() now flushes the underlying stream. Bug #57528. (#5569)
[mono.git] / mcs / class / System / System.Net.Security / SslStream.cs
index 6d61e08dfb1bf659161ca1869175ffa3e70cdb16..a536f3bb8224edc5cd599737bca41c05631efc3e 100644 (file)
@@ -223,6 +223,11 @@ namespace System.Net.Security
                        return Impl.AuthenticateAsServerAsync (serverCertificate, clientCertificateRequired, enabledSslProtocols, checkCertificateRevocation);
                }
 
+               public virtual Task ShutdownAsync ()
+               {
+                       return Impl.ShutdownAsync ();
+               }
+
                public override bool IsAuthenticated {
                        get { return Impl.IsAuthenticated; }
                }
@@ -288,15 +293,15 @@ namespace System.Net.Security
                }
 
                public override bool CanRead {
-                       get { return Impl.CanRead; }
+                       get { return impl != null && impl.CanRead; }
                }
 
                public override bool CanTimeout {
-                       get { return Impl.CanTimeout; }
+                       get { return InnerStream.CanTimeout; }
                }
 
                public override bool CanWrite {
-                       get { return Impl.CanWrite; }
+                       get { return impl != null && impl.CanWrite; }
                }
 
                public override int ReadTimeout {
@@ -332,7 +337,7 @@ namespace System.Net.Security
 
                public override void Flush ()
                {
-                       Impl.Flush ();
+                       InnerStream.Flush ();
                }
 
                void CheckDisposed ()