|
|
|
@ -854,11 +854,19 @@ namespace WebSocketSharp.Server
|
|
|
|
/// </param>
|
|
|
|
/// </param>
|
|
|
|
public void Stop (ushort code, string reason)
|
|
|
|
public void Stop (ushort code, string reason)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
lock (_sync) {
|
|
|
|
string msg;
|
|
|
|
var msg = _state.CheckIfAvailable (false, true, false) ??
|
|
|
|
if (!checkIfAvailable (false, true, false, false, out msg)) {
|
|
|
|
WebSocket.CheckCloseParameters (code, reason, false);
|
|
|
|
_logger.Error (msg);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (msg != null) {
|
|
|
|
if (!WebSocket.CheckParametersForClose (code, reason, false, out msg)) {
|
|
|
|
|
|
|
|
_logger.Error (msg);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lock (_sync) {
|
|
|
|
|
|
|
|
if (!checkIfAvailable (false, true, false, false, out msg)) {
|
|
|
|
_logger.Error (msg);
|
|
|
|
_logger.Error (msg);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -867,6 +875,7 @@ namespace WebSocketSharp.Server
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
stopReceiving (5000);
|
|
|
|
stopReceiving (5000);
|
|
|
|
|
|
|
|
|
|
|
|
if (code == (ushort) CloseStatusCode.NoStatus) {
|
|
|
|
if (code == (ushort) CloseStatusCode.NoStatus) {
|
|
|
|
_services.Stop (new CloseEventArgs (), true, true);
|
|
|
|
_services.Stop (new CloseEventArgs (), true, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|