]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/socketengine_epoll.cpp
Bad w00tie bad, /who isnt checking +s for channel /who!
[user/henk/code/inspircd.git] / src / socketengine_epoll.cpp
index c1aab07d888664c886d3bcb8b41fa6e1ed4657b9..06124a48c8c3f7b12db1e994a88fbbb4c8126b76 100644 (file)
@@ -43,17 +43,17 @@ bool EPollEngine::AddFd(EventHandler* eh)
        int fd = eh->GetFd();
        if ((fd < 0) || (fd > MAX_DESCRIPTORS))
        {
-               ServerInstance->Log(DEFAULT,"ERROR: FD of %d added above max of %d",fd,MAX_DESCRIPTORS);
+               ServerInstance->Log(DEBUG,"ERROR: FD of %d added above max of %d",fd,MAX_DESCRIPTORS);
                return false;
        }
        if (GetRemainingFds() <= 1)
        {
-               ServerInstance->Log(DEFAULT,"ERROR: System out of file descriptors!");
+               ServerInstance->Log(DEBUG,"ERROR: System out of file descriptors!");
                return false;
        }
        if (ref[fd])
        {
-               ServerInstance->Log(DEFAULT,"Slot %d already occupied",fd);
+               ServerInstance->Log(DEBUG,"Slot %d already occupied",fd);
                return false;
        }
 
@@ -83,7 +83,8 @@ void EPollEngine::WantWrite(EventHandler* eh)
         * status for us and saves us a call.
         */
        struct epoll_event ev;
-       ev.events = EPOLLOUT | EPOLLONESHOT;
+       memset(&ev,0,sizeof(struct epoll_event));
+       ev.events = EPOLLOUT;
        ev.data.fd = eh->GetFd();
        int i = epoll_ctl(EngineHandle, EPOLL_CTL_MOD, eh->GetFd(), &ev);
        if (i < 0)
@@ -154,6 +155,7 @@ int EPollEngine::DispatchEvents()
                if (events[j].events & EPOLLOUT)
                {
                        struct epoll_event ev;
+                       memset(&ev,0,sizeof(struct epoll_event));
                        ev.events = EPOLLIN;
                        ev.data.fd = events[j].data.fd;
                        int i = epoll_ctl(EngineHandle, EPOLL_CTL_MOD, events[j].data.fd, &ev);