]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fix to reinsert sockets into the list as read event
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 8 Apr 2007 19:48:57 +0000 (19:48 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 8 Apr 2007 19:48:57 +0000 (19:48 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6764 e03df62e-2008-0410-955e-edbf42e46eb7

src/socketengine_ports.cpp

index f036a8e10ef1c03c4196ce6088148ca05c881e2e..18c9317485abe774f28c3e3a74fd32d46e591719 100644 (file)
@@ -106,7 +106,12 @@ int PortsEngine::DispatchEvents()
                {
                case PORT_SOURCE_FD:
                        int fd = this->events[i].portev_object;
-                       ref[fd]->HandleEvent((this->events[i].portev_events & POLLRDNORM) ? EVENT_READ : EVENT_WRITE);
+                       if (ref[fd])
+                       {
+                               // reinsert port for next time around
+                               port_associate(EngineHandle, PORT_SOURCE_FD, fd, POLLRDNORM, ref[fd]);
+                               ref[fd]->HandleEvent((this->events[i].portev_events & POLLRDNORM) ? EVENT_READ : EVENT_WRITE);
+                       }
                default:
                        break;
                }