#include "helperfuncs.h"
#include "hashcomp.h"
#include "socketengine.h"
-#include "cmd_quit.h"
+#include "commands/cmd_quit.h"
extern ServerConfig* Config;
extern InspIRCd* ServerInstance;
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 (*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.
}
if (user->fd > -1)
fd_ref_table[user->fd] = NULL;
- delete user;
+ DELETE(user);
}