[System]: Correctly implement close and shutdown in SslStream. (#4969)
[mono.git] / mcs / class / System / Mono.Net.Security / LegacySslStream.cs
index 1ca30e6c96daf0e2b1a8c457dab8464d83a2141e..e4032496da167517db3ff54076a60e184a6ba167 100644 (file)
@@ -81,16 +81,16 @@ namespace Mono.Net.Security.Private
 
                SslStreamBase ssl_stream;
                ICertificateValidator certificateValidator;
-               MonoTlsProvider provider;
 
                #endregion // Fields
 
                #region Constructors
 
-               public LegacySslStream (Stream innerStream, bool leaveInnerStreamOpen, MonoTlsProvider provider, MonoTlsSettings settings)
+               public LegacySslStream (Stream innerStream, bool leaveInnerStreamOpen, SslStream owner, MonoTlsProvider provider, MonoTlsSettings settings)
                        : base (innerStream, leaveInnerStreamOpen)
                {
-                       this.provider = provider;
+                       SslStream = owner;
+                       Provider = provider;
                        certificateValidator = ChainValidationHelper.GetInternalValidator (provider, settings);
                }
                #endregion // Constructors
@@ -575,6 +575,11 @@ namespace Mono.Net.Security.Private
 
                #region IMonoSslStream
 
+               Task IMonoSslStream.ShutdownAsync ()
+               {
+                       return Task.CompletedTask;
+               }
+
                AuthenticatedStream IMonoSslStream.AuthenticatedStream {
                        get { return this; }
                }
@@ -583,11 +588,15 @@ namespace Mono.Net.Security.Private
                        get { throw new NotSupportedException (); }
                }
 
-               MonoTlsProvider IMonoSslStream.Provider {
-                       get { return provider; }
+               public SslStream SslStream {
+                       get;
+               }
+
+               public MonoTlsProvider Provider {
+                       get;
                }
 
-               MonoTlsConnectionInfo IMonoSslStream.GetConnectionInfo ()
+               public MonoTlsConnectionInfo GetConnectionInfo ()
                {
                        return null;
                }