]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_quit.cpp
Remove trailing spaces from input in irc::ircsepstream
[user/henk/code/inspircd.git] / src / cmd_quit.cpp
index ff559ee7e7a5d0d8d5ed5a6bf3d6d0d5fdabaa6e..0fff0ee52492cde1b384c05c59f80776a226ca2b 100644 (file)
@@ -30,7 +30,6 @@
 #include "mode.h"
 #include "xline.h"
 #include "inspstring.h"
-#include "dnsqueue.h"
 #include "helperfuncs.h"
 #include "hashcomp.h"
 #include "socketengine.h"
@@ -47,12 +46,12 @@ extern chan_hash chanlist;
 extern std::vector<userrec*> local_users;
 extern userrec* fd_ref_table[MAX_DESCRIPTORS];
 
-void cmd_quit::Handle (char **parameters, int pcnt, userrec *user)
+void cmd_quit::Handle (const char** parameters, int pcnt, userrec *user)
 {
        user_hash::iterator iter = clientlist.find(user->nick);
-       char* reason;
+       char reason[MAXBUF];
 
-       if (user->registered == 7)
+       if (user->registered == REG_ALL)
        {
                /* theres more to do here, but for now just close the socket */
                if (pcnt == 1)
@@ -60,10 +59,7 @@ void cmd_quit::Handle (char **parameters, int pcnt, userrec *user)
                        if (*parameters[0] == ':')
                                parameters[0]++;
 
-                       reason = parameters[0];
-
-                       if (strlen(reason) > MAXQUIT)
-                               reason[MAXQUIT-1] = 0;
+                       strlcpy(reason, parameters[0],MAXQUIT-1);
 
                        /* We should only prefix the quit for a local user. Remote users have
                         * already been prefixed, where neccessary, by the upstream server.
@@ -112,10 +108,10 @@ void cmd_quit::Handle (char **parameters, int pcnt, userrec *user)
                clientlist.erase(iter);
        }
 
-       if (user->registered == 7) {
+       if (user->registered == REG_ALL) {
                purge_empty_chans(user);
        }
        if (user->fd > -1)
                fd_ref_table[user->fd] = NULL;
-       delete user;
+       DELETE(user);
 }