From 8eb405767d509b3625ccbdf2474722c0dd566f6e Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 15 Aug 2007 21:25:58 +0000 Subject: This is now correct. No win32 #ifdefs in the base class, being as IOCPEngine is only built on windows we can put the code here without the need for ifdef. The original check in socketengine_iocp was broken, copied burlex's fixed version into the child class git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7724 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/socketengine_iocp.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/socketengine_iocp.cpp') diff --git a/src/socketengine_iocp.cpp b/src/socketengine_iocp.cpp index 3581904ed..4eb9f83cd 100644 --- a/src/socketengine_iocp.cpp +++ b/src/socketengine_iocp.cpp @@ -456,15 +456,16 @@ bool IOCPEngine::HasFd(int fd) bool IOCPEngine::BoundsCheckFd(EventHandler* eh) { - int* fake_fd = NULL; - if (!eh) - return false; - if (!eh->GetExt("internal_fd", fake_fd)) + int * internal_fd; + if (!eh || eh->GetFd() < 0) return false; - if ((*fake_fd < 0) || (*fake_fd > MAX_DESCRIPTORS)) + + if(!eh->GetExt("internal_fd", internal_fd)) return false; - if ((eh->GetFd() < 0) || (eh->GetFd() > MAX_DESCRIPTORS)) + + if(*internal_fd > MAX_DESCRIPTORS) return false; + return true; } -- cgit v1.2.3