diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/inspircd.cpp | 66 | ||||
-rw-r--r-- | src/users.cpp | 64 |
2 files changed, 64 insertions, 66 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index b8e15396a..568b285c4 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -378,35 +378,6 @@ InspIRCd::InspIRCd(int argc, char** argv) return; } -/* re-allocates a nick in the user_hash after they change nicknames, - * returns a pointer to the new user as it may have moved */ - -userrec* ReHashNick(char* Old, char* New) -{ - //user_hash::iterator newnick; - user_hash::iterator oldnick = clientlist.find(Old); - - log(DEBUG,"ReHashNick: %s %s",Old,New); - - if (!strcasecmp(Old,New)) - { - log(DEBUG,"old nick is new nick, skipping"); - return oldnick->second; - } - - if (oldnick == clientlist.end()) return NULL; /* doesnt exist */ - - log(DEBUG,"ReHashNick: Found hashed nick %s",Old); - - userrec* olduser = oldnick->second; - clientlist[New] = olduser; - clientlist.erase(oldnick); - - log(DEBUG,"ReHashNick: Nick rehashed as %s",New); - - return clientlist[New]; -} - #ifdef THREADED_DNS void* dns_task(void* arg) { @@ -530,43 +501,6 @@ void call_handler(std::string &commandname,char **parameters, int pcnt, userrec } } - -void force_nickchange(userrec* user,const char* newnick) -{ - char nick[MAXBUF]; - int MOD_RESULT = 0; - - strcpy(nick,""); - - FOREACH_RESULT(OnUserPreNick(user,newnick)); - if (MOD_RESULT) { - stats->statsCollisions++; - kill_link(user,"Nickname collision"); - return; - } - if (matches_qline(newnick)) - { - stats->statsCollisions++; - kill_link(user,"Nickname collision"); - return; - } - - if (user) - { - if (newnick) - { - strncpy(nick,newnick,MAXBUF); - } - if (user->registered == 7) - { - char* pars[1]; - pars[0] = nick; - handle_nick(pars,1,user); - } - } -} - - int process_parameters(char **command_p,char *parameters) { int j = 0; diff --git a/src/users.cpp b/src/users.cpp index 8e5d996da..57091aea1 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -714,3 +714,67 @@ void ConnectUser(userrec *user) } } +/* re-allocates a nick in the user_hash after they change nicknames, + * returns a pointer to the new user as it may have moved */ + +userrec* ReHashNick(char* Old, char* New) +{ + //user_hash::iterator newnick; + user_hash::iterator oldnick = clientlist.find(Old); + + log(DEBUG,"ReHashNick: %s %s",Old,New); + + if (!strcasecmp(Old,New)) + { + log(DEBUG,"old nick is new nick, skipping"); + return oldnick->second; + } + + if (oldnick == clientlist.end()) return NULL; /* doesnt exist */ + + log(DEBUG,"ReHashNick: Found hashed nick %s",Old); + + userrec* olduser = oldnick->second; + clientlist[New] = olduser; + clientlist.erase(oldnick); + + log(DEBUG,"ReHashNick: Nick rehashed as %s",New); + + return clientlist[New]; +} + +void force_nickchange(userrec* user,const char* newnick) +{ + char nick[MAXBUF]; + int MOD_RESULT = 0; + + strcpy(nick,""); + + FOREACH_RESULT(OnUserPreNick(user,newnick)); + if (MOD_RESULT) { + stats->statsCollisions++; + kill_link(user,"Nickname collision"); + return; + } + if (matches_qline(newnick)) + { + stats->statsCollisions++; + kill_link(user,"Nickname collision"); + return; + } + + if (user) + { + if (newnick) + { + strncpy(nick,newnick,MAXBUF); + } + if (user->registered == 7) + { + char* pars[1]; + pars[0] = nick; + handle_nick(pars,1,user); + } + } +} + |