]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands.cpp
EXPERIMENTAL new socket engine code
[user/henk/code/inspircd.git] / src / commands.cpp
index bc144dd516c35b9c8551f7c419728a5117d72cf8..0797c3f19d08edac492e5fbec7b0c525daa93cb8 100644 (file)
@@ -71,14 +71,9 @@ using namespace std;
 #include "dnsqueue.h"
 #include "helperfuncs.h"
 #include "hashcomp.h"
+#include "socketengine.h"
 
-#ifdef USE_KQUEUE
-extern int kq;
-#endif
-
-#ifdef USE_EPOLL
-int ep;
-#endif
+extern SocketEngine* SE;
 
 extern int MODCOUNT;
 extern std::vector<Module*> modules;
@@ -881,7 +876,8 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
                }
                else
                {
-                       WriteServ(user->fd,"317 %s %s %d %d :seconds idle, signon time",user->nick, dest->nick, idle, signon);
+                       if ((idle) || (signon))
+                               WriteServ(user->fd,"317 %s %s %d %d :seconds idle, signon time",user->nick, dest->nick, idle, signon);
                }
                WriteServ(user->fd,"318 %s %s :End of /WHOIS list.",user->nick, dest->nick);
        }
@@ -946,25 +942,7 @@ void handle_quit(char **parameters, int pcnt, userrec *user)
        /* push the socket on a stack of sockets due to be closed at the next opportunity */
        if (user->fd > -1)
        {
-#ifdef USE_KQUEUE
-                struct kevent ke;
-                EV_SET(&ke, user->fd, EVFILT_READ, EV_DELETE, 0, 0, NULL);
-                int i = kevent(kq, &ke, 1, 0, 0, NULL);
-                if (i == -1)
-                {
-                        log(DEBUG,"kqueue: Failed to remove user from queue!");
-                }
-#endif
-#ifdef USE_EPOLL
-                struct epoll_event ev;
-                ev.events = EPOLLIN | EPOLLET;
-                ev.data.fd = user->fd;
-                int i = epoll_ctl(ep, EPOLL_CTL_DEL, user->fd, &ev);
-                if (i < 0)
-                {
-                        log(DEBUG,"epoll: List deletion failure!");
-                }
-#endif
+               SE->DelFd(user->fd);
                user->CloseSocket();
        }