diff --git a/websocket-sharp/Net/HttpListener.cs b/websocket-sharp/Net/HttpListener.cs index f7b3256c..3a36026e 100644 --- a/websocket-sharp/Net/HttpListener.cs +++ b/websocket-sharp/Net/HttpListener.cs @@ -78,7 +78,7 @@ namespace WebSocketSharp.Net private string _realm; private bool _reuseAddress; private ServerSslConfiguration _sslConfig; - private List _waitQueue; + private List _waitQueue; private object _waitQueueSync; #endregion @@ -103,7 +103,7 @@ namespace WebSocketSharp.Net _prefixes = new HttpListenerPrefixCollection (this); - _waitQueue = new List (); + _waitQueue = new List (); _waitQueueSync = ((ICollection) _waitQueue).SyncRoot; } @@ -485,7 +485,7 @@ namespace WebSocketSharp.Net _connections[connection] = connection; } - internal ListenerAsyncResult BeginGetContext (ListenerAsyncResult asyncResult) + internal HttpListenerAsyncResult BeginGetContext (HttpListenerAsyncResult asyncResult) { CheckDisposed (); if (_prefixes.Count == 0) @@ -521,7 +521,7 @@ namespace WebSocketSharp.Net lock (_ctxRegistrySync) _ctxRegistry[context] = context; - ListenerAsyncResult ares = null; + HttpListenerAsyncResult ares = null; lock (_waitQueueSync) { if (_waitQueue.Count == 0) { lock (_ctxQueueSync) @@ -612,7 +612,7 @@ namespace WebSocketSharp.Net /// public IAsyncResult BeginGetContext (AsyncCallback callback, Object state) { - return BeginGetContext (new ListenerAsyncResult (callback, state)); + return BeginGetContext (new HttpListenerAsyncResult (callback, state)); } /// @@ -658,7 +658,7 @@ namespace WebSocketSharp.Net if (asyncResult == null) throw new ArgumentNullException ("asyncResult"); - var ares = asyncResult as ListenerAsyncResult; + var ares = asyncResult as HttpListenerAsyncResult; if (ares == null) throw new ArgumentException ("A wrong IAsyncResult.", "asyncResult"); @@ -697,7 +697,7 @@ namespace WebSocketSharp.Net /// public HttpListenerContext GetContext () { - var ares = BeginGetContext (new ListenerAsyncResult (null, null)); + var ares = BeginGetContext (new HttpListenerAsyncResult (null, null)); ares.InGet = true; return EndGetContext (ares); diff --git a/websocket-sharp/Net/ListenerAsyncResult.cs b/websocket-sharp/Net/HttpListenerAsyncResult.cs similarity index 93% rename from websocket-sharp/Net/ListenerAsyncResult.cs rename to websocket-sharp/Net/HttpListenerAsyncResult.cs index ac53fdf3..77707667 100644 --- a/websocket-sharp/Net/ListenerAsyncResult.cs +++ b/websocket-sharp/Net/HttpListenerAsyncResult.cs @@ -1,6 +1,6 @@ #region License /* - * ListenerAsyncResult.cs + * HttpListenerAsyncResult.cs * * This code is derived from System.Net.ListenerAsyncResult.cs of Mono * (http://www.mono-project.com). @@ -42,7 +42,7 @@ using System.Threading; namespace WebSocketSharp.Net { - internal class ListenerAsyncResult : IAsyncResult + internal class HttpListenerAsyncResult : IAsyncResult { #region Private Fields @@ -66,7 +66,7 @@ namespace WebSocketSharp.Net #region Public Constructors - public ListenerAsyncResult (AsyncCallback callback, object state) + public HttpListenerAsyncResult (AsyncCallback callback, object state) { _callback = callback; _state = state; @@ -114,14 +114,9 @@ namespace WebSocketSharp.Net if (schm == AuthenticationSchemes.Anonymous) return true; - if (schm == AuthenticationSchemes.None) { - context.Response.Close (HttpStatusCode.Forbidden); - return false; - } - var req = context.Request; - var authRes = req.Headers["Authorization"]; if (schm == AuthenticationSchemes.Basic) { + var authRes = req.Headers["Authorization"]; if (authRes == null || !authRes.StartsWith ("basic", StringComparison.OrdinalIgnoreCase)) { context.Response.CloseWithAuthChallenge ( AuthenticationChallenge.CreateBasicChallenge (listener.Realm).ToBasicString ()); @@ -130,6 +125,7 @@ namespace WebSocketSharp.Net } } else if (schm == AuthenticationSchemes.Digest) { + var authRes = req.Headers["Authorization"]; if (authRes == null || !authRes.StartsWith ("digest", StringComparison.OrdinalIgnoreCase)) { context.Response.CloseWithAuthChallenge ( AuthenticationChallenge.CreateDigestChallenge (listener.Realm).ToDigestString ()); @@ -158,7 +154,7 @@ namespace WebSocketSharp.Net return false; } - private static void complete (ListenerAsyncResult asyncResult) + private static void complete (HttpListenerAsyncResult asyncResult) { asyncResult._completed = true; diff --git a/websocket-sharp/websocket-sharp.csproj b/websocket-sharp/websocket-sharp.csproj index e581fbff..f9ba6d4c 100644 --- a/websocket-sharp/websocket-sharp.csproj +++ b/websocket-sharp/websocket-sharp.csproj @@ -85,7 +85,6 @@ - @@ -137,6 +136,7 @@ +