wasSharpNET
/Network/HTTP/HTTPServer.cs |
@@ -22,9 +22,6 @@ |
|
private int processedRequests; |
|
private AutoResetEvent StopServerEvent = new AutoResetEvent(false); |
private AutoResetEvent ServerStoppedEvent = new AutoResetEvent(false); |
|
public AuthenticationSchemes AuthenticationSchemes |
{ |
get |
@@ -46,6 +43,7 @@ |
return false; |
|
// Add all prefixes. |
HTTPListener.Prefixes.Clear(); |
foreach (var prefix in prefixes) |
{ |
HTTPListener.Prefixes.Add(prefix); |
@@ -60,9 +58,7 @@ |
|
public bool Stop() |
{ |
StopServerEvent.Set(); |
ServerStoppedEvent.WaitOne(); |
HTTPListener.Prefixes.Clear(); |
HTTPListener.Stop(); |
return true; |
} |
|
@@ -73,18 +69,10 @@ |
while (callbackState.Listener.IsListening) |
{ |
callbackState.Listener.BeginGetContext(ContextCallback, callbackState); |
var n = WaitHandle.WaitAny(new WaitHandle[] { callbackState.ContextRetrieved, StopServerEvent }); |
|
if (n.Equals(1)) |
{ |
callbackState.Listener.Stop(); |
break; |
callbackState.ContextRetrieved.WaitOne(); |
} |
} |
|
ServerStoppedEvent.Set(); |
} |
|
public abstract void ProcessHTTPContext(HttpListenerContext context); |
|
private void ContextCallback(IAsyncResult ar) |
@@ -125,13 +113,7 @@ |
public void Dispose() |
{ |
Stop(); |
|
HTTPListener = null; |
StopServerEvent?.Dispose(); |
ServerStoppedEvent?.Dispose(); |
|
StopServerEvent = null; |
ServerStoppedEvent = null; |
} |
|
private class HTTPServerCallbackState |