aboutsummaryrefslogtreecommitdiffstats
path: root/src/socketengine_iocp.cpp
diff options
context:
space:
mode:
authorGravatar brain2007-10-21 19:32:45 +0000
committerGravatar brain2007-10-21 19:32:45 +0000
commited63300b85aff38b49ff7bbfbcff22891a389026 (patch)
treeb437ea83e6a3cfcbfbcbf71ca3b55201b6f4a1d8 /src/socketengine_iocp.cpp
parentChange how the socket engines work when you addfd on an fd that already exists. (diff)
Roll back to 1.1.12 socket engine as a test
git-svn-id: http://svn.inspircd.org/repository/branches/1_1_stable@8274 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/socketengine_iocp.cpp')
-rw-r--r--src/socketengine_iocp.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/socketengine_iocp.cpp b/src/socketengine_iocp.cpp
index 6a9490050..ab894299c 100644
--- a/src/socketengine_iocp.cpp
+++ b/src/socketengine_iocp.cpp
@@ -56,7 +56,7 @@ bool IOCPEngine::AddFd(EventHandler* eh)
/* Already an entry here */
if (ref[fake_fd])
- DelFd(ref[fake_fd]);
+ return false;
/* are we a listen socket? */
getsockopt(eh->GetFd(), SOL_SOCKET, SO_ACCEPTCONN, (char*)&is_accept, &opt_len);
@@ -71,6 +71,10 @@ bool IOCPEngine::AddFd(EventHandler* eh)
if (!CreateIoCompletionPort((HANDLE)eh->GetFd(), m_completionPort, completion_key, 0))
return false;
+ /* set up binding, increase set size */
+ ref[fake_fd] = eh;
+ ++CurrentSetSize;
+
/* setup initial events */
if(is_accept)
PostAcceptEvent(eh);
@@ -95,9 +99,6 @@ bool IOCPEngine::AddFd(EventHandler* eh)
return false;
}
- ++CurrentSetSize;
- ref[fake_fd] = eh;
-
return true;
}