Handle the value returned from the Socket.AcceptAsync method
This commit is contained in:
parent
f285e7af12
commit
744334b79e
@ -233,6 +233,7 @@ namespace WebSocketSharp.Net
|
|||||||
{
|
{
|
||||||
var args = (SocketAsyncEventArgs) e;
|
var args = (SocketAsyncEventArgs) e;
|
||||||
var epl = (EndPointListener) args.UserToken;
|
var epl = (EndPointListener) args.UserToken;
|
||||||
|
|
||||||
Socket accepted = null;
|
Socket accepted = null;
|
||||||
if (args.SocketError == SocketError.Success) {
|
if (args.SocketError == SocketError.Success) {
|
||||||
accepted = args.AcceptSocket;
|
accepted = args.AcceptSocket;
|
||||||
@ -240,7 +241,13 @@ namespace WebSocketSharp.Net
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
epl._socket.AcceptAsync (args);
|
if (!epl._socket.AcceptAsync (args)) {
|
||||||
|
if (accepted != null)
|
||||||
|
processAccepted (accepted, epl);
|
||||||
|
|
||||||
|
onAccept (sender, args);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
if (accepted != null)
|
if (accepted != null)
|
||||||
@ -249,25 +256,8 @@ namespace WebSocketSharp.Net
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (accepted == null)
|
if (accepted != null)
|
||||||
return;
|
processAccepted (accepted, epl);
|
||||||
|
|
||||||
HttpConnection conn = null;
|
|
||||||
try {
|
|
||||||
conn = new HttpConnection (accepted, epl);
|
|
||||||
lock (epl._unregisteredSync)
|
|
||||||
epl._unregistered[conn] = conn;
|
|
||||||
|
|
||||||
conn.BeginReadRequest ();
|
|
||||||
}
|
|
||||||
catch {
|
|
||||||
if (conn != null) {
|
|
||||||
conn.Close (true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
accepted.Close ();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void processAccepted (Socket socket, EndPointListener listener)
|
private static void processAccepted (Socket socket, EndPointListener listener)
|
||||||
|
Loading…
Reference in New Issue
Block a user