]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_nick.cpp
More cleanup
[user/henk/code/inspircd.git] / src / cmd_nick.cpp
index 7b4ea1e98a5ee50d031befa0d815da4eb8514681..26a60386773f8102bda78f95ab03f99738163698 100644 (file)
@@ -2,10 +2,10 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
- *                <brain.net>
- *                <Craig.net>
+ *                <brain@chatspike.net>
+ *                <Craig@chatspike.net>
  *
  * Written by Craig Edwards, Craig McLure, and others.
  * This program is free but copyrighted software; see
@@ -58,10 +58,9 @@ extern std::vector<ircd_module*> factory;
 extern time_t TIME;
 extern user_hash clientlist;
 extern chan_hash chanlist;
-extern whowas_hash whowas;
 extern std::vector<userrec*> all_opers;
 extern std::vector<userrec*> local_users;
-extern userrec* fd_ref_table[65536];
+extern userrec* fd_ref_table[MAX_DESCRIPTORS];
 
 void cmd_nick::Handle (char **parameters, int pcnt, userrec *user)
 {
@@ -102,25 +101,22 @@ void cmd_nick::Handle (char **parameters, int pcnt, userrec *user)
                 * the nick AAA is the same as the nick aaa.
                 */
                log(DEBUG,"old nick is new nick, not updating hash (case change only)");
-               strlcpy(oldnick,user->nick,NICKMAX);
+               strlcpy(oldnick, user->nick, NICKMAX - 1);
                int MOD_RESULT = 0;
                FOREACH_RESULT(I_OnUserPreNick,OnUserPreNick(user,parameters[0]));
                if (MOD_RESULT)
                        return;
-               strlcpy(user->nick,parameters[0],NICKMAX);
                if (user->registered == 7)
                        WriteCommon(user,"NICK %s",parameters[0]);
+               strlcpy(user->nick, parameters[0], NICKMAX - 1);
                FOREACH_MOD(I_OnUserPostNick,OnUserPostNick(user,oldnick));
                return;
        }
        else
        {
-               if (strlen(parameters[0]) > 1)
+               if ((*parameters[0] == ':') && (*(parameters[0]+1) != 0))
                {
-                       if (parameters[0][0] == ':')
-                       {
-                               *parameters[0]++;
-                       }
+                       parameters[0]++;
                }
                if (matches_qline(parameters[0]))
                {
@@ -153,7 +149,7 @@ void cmd_nick::Handle (char **parameters, int pcnt, userrec *user)
                
        }
 
-       strlcpy(oldnick,user->nick,NICKMAX);
+       strlcpy(oldnick, user->nick, NICKMAX - 1);
 
        /* change the nick of the user in the users_hash */
        user = ReHashNick(user->nick, parameters[0]);
@@ -161,7 +157,7 @@ void cmd_nick::Handle (char **parameters, int pcnt, userrec *user)
        if (!user) return;
        if (!user->nick) return;
 
-       strlcpy(user->nick, parameters[0],NICKMAX);
+       strlcpy(user->nick, parameters[0], NICKMAX - 1);
 
        log(DEBUG,"new nick set: %s",user->nick);