@ -294,7 +294,11 @@ namespace WebSocketSharp.Net
var lsnr = conn._context.Listener;
if (conn._lastListener != lsnr) {
conn.removeConnection ();
lsnr.AddConnection (conn);
if (!lsnr.AddConnection (conn)) {
conn.close ();
return;
}
conn._lastListener = lsnr;
@ -503,12 +503,21 @@ namespace WebSocketSharp.Net
#region Internal Methods
internal void AddConnection (HttpConnection connection)
internal bool AddConnection (HttpConnection connection)
{
lock (_connectionsSync)
if (!_listening)
return false;
lock (_connectionsSync) {
_connections[connection] = connection;
return true;
internal bool Authenticate (HttpListenerContext context)
var schm = SelectAuthenticationScheme (context);