Refactored the onAccept method

This commit is contained in:
sta 2014-12-29 16:38:05 +09:00
parent 744334b79e
commit e43558c780

View File

@ -232,32 +232,30 @@ namespace WebSocketSharp.Net
private static void onAccept (object sender, EventArgs e) private static void onAccept (object sender, EventArgs e)
{ {
var args = (SocketAsyncEventArgs) e; var args = (SocketAsyncEventArgs) e;
var epl = (EndPointListener) args.UserToken; var listener = (EndPointListener) args.UserToken;
Socket accepted = null; Socket sock = null;
if (args.SocketError == SocketError.Success) { if (args.SocketError == SocketError.Success) {
accepted = args.AcceptSocket; sock = args.AcceptSocket;
args.AcceptSocket = null; args.AcceptSocket = null;
} }
var res = true;
try { try {
if (!epl._socket.AcceptAsync (args)) { res = listener._socket.AcceptAsync (args);
if (accepted != null)
processAccepted (accepted, epl);
onAccept (sender, args);
return;
}
} }
catch { catch {
if (accepted != null) if (sock != null)
accepted.Close (); sock.Close ();
return; return;
} }
if (accepted != null) if (sock != null)
processAccepted (accepted, epl); processAccepted (sock, listener);
if (!res)
onAccept (sender, args);
} }
private static void processAccepted (Socket socket, EndPointListener listener) private static void processAccepted (Socket socket, EndPointListener listener)