diff --git a/Example2/Program.cs b/Example2/Program.cs index f6ef0111..0795cb3b 100644 --- a/Example2/Program.cs +++ b/Example2/Program.cs @@ -30,9 +30,9 @@ namespace Example2 wssv.AuthenticationSchemes = AuthenticationSchemes.Basic; wssv.Realm = "WebSocket Test"; wssv.UserCredentialsFinder = identity => { - var name = identity.Name; - return name == "nobita" - ? new NetworkCredential (name, "password") + var expected = "nobita"; + return identity.Name == expected + ? new NetworkCredential (expected, "password", "gunfighter") : null; }; */ diff --git a/Example3/Program.cs b/Example3/Program.cs index 960a8e7b..a54dcb83 100644 --- a/Example3/Program.cs +++ b/Example3/Program.cs @@ -30,9 +30,9 @@ namespace Example3 _httpsv.AuthenticationSchemes = AuthenticationSchemes.Basic; _httpsv.Realm = "WebSocket Test"; _httpsv.UserCredentialsFinder = identity => { - var name = identity.Name; - return name == "nobita" - ? new NetworkCredential (name, "password") + var expected = "nobita"; + return identity.Name == expected + ? new NetworkCredential (expected, "password", "gunfighter") : null; }; */ diff --git a/websocket-sharp/Net/WebSockets/TcpListenerWebSocketContext.cs b/websocket-sharp/Net/WebSockets/TcpListenerWebSocketContext.cs index d0201d29..428f1c40 100644 --- a/websocket-sharp/Net/WebSockets/TcpListenerWebSocketContext.cs +++ b/websocket-sharp/Net/WebSockets/TcpListenerWebSocketContext.cs @@ -64,7 +64,8 @@ namespace WebSocketSharp.Net.WebSockets _client = client; _secure = secure; _stream = WsStream.CreateServerStream (client, cert, secure); - _request = _stream.ReadHandshakeRequest (); + _request = _stream.ReadHandshake ( + HandshakeRequest.Parse, 90000); _websocket = new WebSocket (this, logger); } @@ -365,7 +366,8 @@ namespace WebSocketSharp.Net.WebSockets var res = new HandshakeResponse (HttpStatusCode.Unauthorized); res.Headers ["WWW-Authenticate"] = challenge; _stream.WriteHandshake (res); - _request = _stream.ReadHandshakeRequest (); + _request = _stream.ReadHandshake ( + HandshakeRequest.Parse, 15000); } internal void SetUser ( diff --git a/websocket-sharp/WsStream.cs b/websocket-sharp/WsStream.cs index 981233a0..c04e9e48 100644 --- a/websocket-sharp/WsStream.cs +++ b/websocket-sharp/WsStream.cs @@ -43,7 +43,6 @@ namespace WebSocketSharp #region Private Const Fields private const int _handshakeHeadersLimitLen = 8192; - private const int _handshakeTimeout = 90000; #endregion @@ -183,7 +182,8 @@ namespace WebSocketSharp return new WsStream (conn.Stream, conn.IsSecure); } - internal T ReadHandshake (Func parser) + internal T ReadHandshake ( + Func parser, int millisecondsTimeout) where T : HandshakeBase { var timeout = false; @@ -193,7 +193,7 @@ namespace WebSocketSharp _innerStream.Close (); }, null, - _handshakeTimeout, + millisecondsTimeout, -1); T handshake = null; @@ -265,12 +265,12 @@ namespace WebSocketSharp public HandshakeRequest ReadHandshakeRequest () { - return ReadHandshake (HandshakeRequest.Parse); + return ReadHandshake (HandshakeRequest.Parse, 90000); } public HandshakeResponse ReadHandshakeResponse () { - return ReadHandshake (HandshakeResponse.Parse); + return ReadHandshake (HandshakeResponse.Parse, 90000); } public bool WriteFrame (WsFrame frame)