summaryrefslogtreecommitdiff
path: root/src/socketengine_kqueue.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_kqueue.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_kqueue.cpp')
-rw-r--r--src/socketengine_kqueue.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/socketengine_kqueue.cpp b/src/socketengine_kqueue.cpp
index 63e0610a7..7fcdae2b6 100644
--- a/src/socketengine_kqueue.cpp
+++ b/src/socketengine_kqueue.cpp
@@ -49,18 +49,17 @@ bool KQueueEngine::AddFd(EventHandler* eh)
return false;
if (ref[fd])
- DelFd(ref[fd]);
+ return false;
+
+ ref[fd] = eh;
struct kevent ke;
EV_SET(&ke, fd, eh->Readable() ? EVFILT_READ : EVFILT_WRITE, EV_ADD, 0, 0, NULL);
int i = kevent(EngineHandle, &ke, 1, 0, 0, NULL);
if (i == -1)
- {
return false;
- }
- ref[fd] = eh;
CurrentSetSize++;
ServerInstance->Log(DEBUG,"New file descriptor: %d", fd);
@@ -83,12 +82,12 @@ bool KQueueEngine::DelFd(EventHandler* eh, bool force)
int j = kevent(EngineHandle, &ke, 1, 0, 0, NULL);
- CurrentSetSize--;
- ref[fd] = NULL;
-
if ((j < 0) && (i < 0) && !force)
return false;
+ CurrentSetSize--;
+ ref[fd] = NULL;
+
ServerInstance->Log(DEBUG,"Remove file descriptor: %d", fd);
return true;
}