From 196f5d92a1fe277044badeeab1dae760c24933c7 Mon Sep 17 00:00:00 2001 From: sta Date: Fri, 24 Jul 2015 14:04:21 +0900 Subject: [PATCH] Fix for issue #145 --- websocket-sharp/Net/EndPointListener.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/websocket-sharp/Net/EndPointListener.cs b/websocket-sharp/Net/EndPointListener.cs index 4e1e92cc..3fbf80a5 100644 --- a/websocket-sharp/Net/EndPointListener.cs +++ b/websocket-sharp/Net/EndPointListener.cs @@ -252,9 +252,18 @@ namespace WebSocketSharp.Net args.AcceptSocket = null; } - var ret = true; try { - ret = lsnr._socket.AcceptAsync (args); + while (!lsnr._socket.AcceptAsync (args)) { + if (sock != null) { + processAccepted (sock, lsnr); + sock = null; + } + + if (args.SocketError == SocketError.Success) { + sock = args.AcceptSocket; + args.AcceptSocket = null; + } + } } catch { if (sock != null) @@ -265,9 +274,6 @@ namespace WebSocketSharp.Net if (sock != null) processAccepted (sock, lsnr); - - if (!ret) - onAccept (sender, e); } private static void processAccepted (Socket socket, EndPointListener listener)