diff --git a/websocket-sharp/WebSocket.cs b/websocket-sharp/WebSocket.cs index 88057110..1c2084ae 100644 --- a/websocket-sharp/WebSocket.cs +++ b/websocket-sharp/WebSocket.cs @@ -1156,7 +1156,7 @@ namespace WebSocketSharp { Console.WriteLine("WS: Info@send: Request handshake to server:\n"); Console.WriteLine(request.ToString()); #endif - _wsStream.Write(request); + _wsStream.WriteHandshake(request); } // As server @@ -1166,7 +1166,7 @@ namespace WebSocketSharp { Console.WriteLine("WS: Info@send: Response handshake to client:\n"); Console.WriteLine(response.ToString()); #endif - _wsStream.Write(response); + _wsStream.WriteHandshake(response); } private bool send(WsFrame frame) @@ -1187,7 +1187,7 @@ namespace WebSocketSharp { return false; } - return _wsStream.Write(frame); + return _wsStream.WriteFrame(frame); } } diff --git a/websocket-sharp/WsStream.cs b/websocket-sharp/WsStream.cs index a1f1720f..585ea176 100644 --- a/websocket-sharp/WsStream.cs +++ b/websocket-sharp/WsStream.cs @@ -30,10 +30,10 @@ using System; using System.Collections.Generic; using System.Configuration; using System.IO; -using System.Net; using System.Net.Sockets; using System.Security.Cryptography.X509Certificates; using System.Text; +using WebSocketSharp.Net; using WebSocketSharp.Net.Security; namespace WebSocketSharp { @@ -48,43 +48,35 @@ namespace WebSocketSharp { #region Private Fields - private Stream _innerStream; - private bool _isSecure; private Object _forRead; private Object _forWrite; + private Stream _innerStream; + private bool _secure; #endregion #region Private Constructors - private WsStream() + private WsStream(Stream innerStream, bool secure) { + _innerStream = innerStream; + _secure = secure; _forRead = new object(); _forWrite = new object(); } #endregion - #region Public Constructors + #region Internal Constructors - public WsStream(NetworkStream innerStream) - : this() + internal WsStream(NetworkStream innerStream) + : this(innerStream, false) { - if (innerStream == null) - throw new ArgumentNullException("innerStream"); - - _innerStream = innerStream; - _isSecure = false; } - public WsStream(SslStream innerStream) - : this() + internal WsStream(SslStream innerStream) + : this(innerStream, true) { - if (innerStream == null) - throw new ArgumentNullException("innerStream"); - - _innerStream = innerStream; - _isSecure = true; } #endregion @@ -93,7 +85,7 @@ namespace WebSocketSharp { public bool DataAvailable { get { - return _isSecure + return _secure ? ((SslStream)_innerStream).DataAvailable : ((NetworkStream)_innerStream).DataAvailable; } @@ -101,7 +93,7 @@ namespace WebSocketSharp { public bool IsSecure { get { - return _isSecure; + return _secure; } } @@ -127,18 +119,18 @@ namespace WebSocketSharp { #region Internal Methods - internal static WsStream CreateClientStream(TcpClient client, string host, bool secure) + internal static WsStream CreateClientStream(TcpClient tcpClient, string host, bool secure) { - var netStream = client.GetStream(); + var netStream = tcpClient.GetStream(); if (secure) { - System.Net.Security.RemoteCertificateValidationCallback validationCb = (sender, certificate, chain, sslPolicyErrors) => + System.Net.Security.RemoteCertificateValidationCallback callback = (sender, certificate, chain, sslPolicyErrors) => { // FIXME: Always returns true return true; }; - var sslStream = new SslStream(netStream, false, validationCb); + var sslStream = new SslStream(netStream, false, callback); sslStream.AuthenticateAsClient(host); return new WsStream(sslStream); @@ -147,9 +139,9 @@ namespace WebSocketSharp { return new WsStream(netStream); } - internal static WsStream CreateServerStream(TcpClient client, bool secure) + internal static WsStream CreateServerStream(TcpClient tcpClient, bool secure) { - var netStream = client.GetStream(); + var netStream = tcpClient.GetStream(); if (secure) { var sslStream = new SslStream(netStream, false); @@ -162,14 +154,10 @@ namespace WebSocketSharp { return new WsStream(netStream); } - internal static WsStream CreateServerStream(WebSocketSharp.Net.HttpListenerContext context) + internal static WsStream CreateServerStream(HttpListenerContext context) { var conn = context.Connection; - var stream = conn.Stream; - - return conn.IsSecure - ? new WsStream((SslStream)stream) - : new WsStream((NetworkStream)stream); + return new WsStream(conn.Stream, conn.IsSecure); } #endregion @@ -230,16 +218,16 @@ namespace WebSocketSharp { .Replace("\r\n", "\n") .Replace("\n ", " ") .Replace("\n\t", " ") - .Replace("\n\n", "") + .TrimEnd('\n') .Split('\n'); } - public bool Write(WsFrame frame) + public bool WriteFrame(WsFrame frame) { return write(frame.ToByteArray()); } - public bool Write(Handshake handshake) + public bool WriteHandshake(Handshake handshake) { return write(handshake.ToByteArray()); }