diff options
Diffstat (limited to 'mcs/class/Mono.Security/Mono.Security.Protocol.Tls')
4 files changed, 38 insertions, 12 deletions
diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog index e55f1f5ecd8..971879f8b9a 100644 --- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog +++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/ChangeLog @@ -1,3 +1,24 @@ +2004-10-05 Sebastien Pouliot <sebastien@ximian.com> + + * SslClientStream.cs: Changed InputBuffer to internal (was protected). + +2004-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * HttpsClientStream.cs: the .ctor receives a pre-read buffer now. + * SslClientStream.cs: added InputBuffer property. + +2004-07-14 Sebastien Pouliot <sebastien@ximian.com> + + * SslClientStream.cs: Changed lock to "new object()" and not + String.Empty (as the read/write locks points becomes the same). + * SslServerStream.cs: Changed lock to "new object()" and not + String.Empty (as the read/write locks points becomes the same). + +2004-07-14 Gonzalo Paniagua Javier <gonzalo@ximian.com> + + * HttpsClientStream.cs: get an HttpWebRequest so that we can use the + ServicePoint it has. No need to get the host now. + 2004-05-09 Carlos Guzman Alvarez <carlosga@telefonica.net>
* Mono.Security.Protocol.Tls/Alert.cs:
diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs index 1da66f06849..89562c9b416 100644 --- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs +++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/HttpsClientStream.cs @@ -40,17 +40,18 @@ namespace Mono.Security.Protocol.Tls { internal class HttpsClientStream : SslClientStream { - private string _host; - private WebRequest _request; + private HttpWebRequest _request; - public HttpsClientStream (Stream stream, string targetHost, X509CertificateCollection clientCertificates, WebRequest request) - : base (stream, targetHost, false, SecurityProtocolType.Default, clientCertificates) + public HttpsClientStream (Stream stream, X509CertificateCollection clientCertificates, + HttpWebRequest request, byte [] buffer) + : base (stream, request.RequestUri.Host, false, SecurityProtocolType.Default, clientCertificates) { - _host = targetHost; // this constructor permit access to the WebRequest to call // ICertificatePolicy.CheckValidationResult _request = request; + if (buffer != null) + InputBuffer.Write (buffer, 0, buffer.Length); #if !NET_1_0 // also saved from reflection base.CheckCertRevocationStatus = ServicePointManager.CheckCertificateRevocationList; @@ -61,8 +62,7 @@ namespace Mono.Security.Protocol.Tls { { bool failed = (certificateErrors.Length > 0); if (ServicePointManager.CertificatePolicy != null) { - Uri target = new Uri ("https://" + _host); - ServicePoint sp = ServicePointManager.FindServicePoint (target); + ServicePoint sp = _request.ServicePoint; // only one problem can be reported by this interface int problem = ((failed) ? certificateErrors [0] : 0); @@ -73,3 +73,4 @@ namespace Mono.Security.Protocol.Tls { } } } + diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs index 068a24f68c7..18cc041f4a4 100644 --- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs +++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslClientStream.cs @@ -125,6 +125,10 @@ namespace Mono.Security.Protocol.Tls set { throw new NotSupportedException(); } } + // required by HttpsClientStream for proxy support + internal Stream InputBuffer { + get { return inputBuffer; } + } #endregion #region Security Properties @@ -349,8 +353,8 @@ namespace Mono.Security.Protocol.Tls this.inputBuffer = new BufferedStream(new MemoryStream()); this.innerStream = stream; this.ownsStream = ownsStream; - this.read = String.Empty; - this.write = String.Empty; + this.read = new object (); + this.write = new object (); this.protocol = new ClientRecordProtocol(innerStream, context); } @@ -821,4 +825,4 @@ namespace Mono.Security.Protocol.Tls #endregion } -}
\ No newline at end of file +} diff --git a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs index 53b3d095def..f2786f7554b 100644 --- a/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs +++ b/mcs/class/Mono.Security/Mono.Security.Protocol.Tls/SslServerStream.cs @@ -306,8 +306,8 @@ namespace Mono.Security.Protocol.Tls this.inputBuffer = new BufferedStream(new MemoryStream()); this.innerStream = stream; this.ownsStream = ownsStream; - this.read = String.Empty; - this.write = String.Empty; + this.read = new object (); + this.write = new object (); this.protocol = new ServerRecordProtocol(innerStream, context); } |