|
|
|
@ -603,14 +603,22 @@ namespace WebSocketSharp.Server
|
|
|
|
private void abort ()
|
|
|
|
private void abort ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
lock (_sync) {
|
|
|
|
lock (_sync) {
|
|
|
|
if (!IsListening)
|
|
|
|
if (_state != ServerState.Start)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
_state = ServerState.ShuttingDown;
|
|
|
|
_state = ServerState.ShuttingDown;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
_services.Stop (new CloseEventArgs (CloseStatusCode.ServerError), true, false);
|
|
|
|
try {
|
|
|
|
_listener.Abort ();
|
|
|
|
try {
|
|
|
|
|
|
|
|
_services.Stop (1006, String.Empty);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
finally {
|
|
|
|
|
|
|
|
_listener.Abort ();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
_state = ServerState.Stop;
|
|
|
|
_state = ServerState.Stop;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|