]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/socketengine_kqueue.cpp
Some AddMode fixes
[user/henk/code/inspircd.git] / src / socketengine_kqueue.cpp
index 0f6f805ca06757e15d3df0821a80bcf641667a93..50f6242e2914de027b92d613e5c2fd2ec970e54e 100644 (file)
@@ -59,7 +59,7 @@ bool KQueueEngine::AddFd(EventHandler* eh)
                return false;
 
        if (ref[fd])
-               DelFd(ref[fd]);
+               return false;
 
        struct kevent ke;
        EV_SET(&ke, fd, eh->Readable() ? EVFILT_READ : EVFILT_WRITE, EV_ADD, 0, 0, NULL);
@@ -93,12 +93,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;
 }