]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/commands.cpp
Fixed cosmetic bug in /who
[user/henk/code/inspircd.git] / src / commands.cpp
index 7eed1747851a4eff6a732e4c7a1284be97a2504e..4ff6edc31ea4bc291b4164af84b879c7457d203a 100644 (file)
@@ -51,6 +51,7 @@
 #include "mode.h"
 #include "xline.h"
 #include "inspstring.h"
+#include "dnsqueue.h"
 
 #ifdef GCC3
 #define nspace __gnu_cxx
@@ -884,11 +885,11 @@ void handle_who(char **parameters, int pcnt, userrec *user)
                        }
                        if (Ptr)
                        {
-                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, Ptr->name);
+                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick , parameters[0]);
                        }
                        else
                        {
-                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, user->nick);
+                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
                        }
                        return;
                }
@@ -913,7 +914,7 @@ void handle_who(char **parameters, int pcnt, userrec *user)
                                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr->name, i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
                                        }
                                }
-                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, Ptr->name);
+                               WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
                        }
                        else
                        {
@@ -961,7 +962,7 @@ void handle_who(char **parameters, int pcnt, userrec *user)
                                         }
                                 }
                         }
-                        WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, user->nick);
+                        WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
                         return;
                 }
        }
@@ -1638,7 +1639,14 @@ void handle_nick(char **parameters, int pcnt, userrec *user)
        log(DEBUG,"new nick set: %s",user->nick);
        
        if (user->registered < 3)
+       {
                user->registered = (user->registered | 2);
+               // dont attempt to look up the dns until they pick a nick... because otherwise their pointer WILL change
+               // and unless we're lucky we'll get a duff one later on.
+               user->dns_done = (!lookup_dns(user->nick));
+               if (user->dns_done)
+                       log(DEBUG,"Aborting dns lookup of %s because dns server experienced a failure.",user->nick);
+       }
        if (user->registered == 3)
        {
                /* user is registered now, bit 0 = USER command, bit 1 = sent a NICK command */