From bdbdf64d3d780f28960cc2087da0435af32d6b6e Mon Sep 17 00:00:00 2001 From: sta Date: Thu, 27 Aug 2015 15:58:28 +0900 Subject: [PATCH] Fix for pull request #155, merged https://github.com/ndevenish/websocket-sharp/commit/ddab2067da26245b52c7393b6afb1dabd8908533 --- websocket-sharp/Net/EndPointListener.cs | 34 +++++-------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/websocket-sharp/Net/EndPointListener.cs b/websocket-sharp/Net/EndPointListener.cs index 3fbf80a5..59bfbde6 100644 --- a/websocket-sharp/Net/EndPointListener.cs +++ b/websocket-sharp/Net/EndPointListener.cs @@ -41,6 +41,7 @@ /* * Contributors: * - Liryna + * - Nicholas Devenish */ #endregion @@ -115,12 +116,7 @@ namespace WebSocketSharp.Net _endpoint = new IPEndPoint (address, port); _socket.Bind (_endpoint); _socket.Listen (500); - - var args = new SocketAsyncEventArgs (); - args.UserToken = this; - args.Completed += onAccept; - if (!_socket.AcceptAsync (args)) - onAccept (this, args); + _socket.BeginAccept (onAccept, this); } #endregion @@ -241,29 +237,14 @@ namespace WebSocketSharp.Net return bestMatch; } - private static void onAccept (object sender, EventArgs e) + private static void onAccept (IAsyncResult ar) { - var args = (SocketAsyncEventArgs) e; - var lsnr = (EndPointListener) args.UserToken; + var lsnr = (EndPointListener) ar.AsyncState; Socket sock = null; - if (args.SocketError == SocketError.Success) { - sock = args.AcceptSocket; - args.AcceptSocket = null; - } - try { - while (!lsnr._socket.AcceptAsync (args)) { - if (sock != null) { - processAccepted (sock, lsnr); - sock = null; - } - - if (args.SocketError == SocketError.Success) { - sock = args.AcceptSocket; - args.AcceptSocket = null; - } - } + sock = lsnr._socket.EndAccept (ar); + lsnr._socket.BeginAccept (onAccept, lsnr); } catch { if (sock != null) @@ -272,8 +253,7 @@ namespace WebSocketSharp.Net return; } - if (sock != null) - processAccepted (sock, lsnr); + processAccepted (sock, lsnr); } private static void processAccepted (Socket socket, EndPointListener listener)