Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ircd / m_nick.c
index 76b29ff89b9ad2eb475411e8473caaa22118dad6..bc15ee951ce780f54717ab8eb8904e33cead4257 100644 (file)
@@ -88,6 +88,7 @@
 #include "ircd_chattr.h"
 #include "ircd_reply.h"
 #include "ircd_string.h"
+#include "ircd_policy.h"
 #include "msg.h"
 #include "numeric.h"
 #include "numnicks.h"
@@ -318,7 +319,7 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   }
   assert(0 != acptr);
 
-  if (IsServer(acptr)) {
+  if (IsServer(acptr)) { /* shouldn't even happen, actually */
     /*
      * We have a nickname trying to use the same name as
      * a server. Send out a nick collision KILL to remove
@@ -337,7 +338,9 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
     /*
      * if sptr is a server it is exited here, nothing else to do
      */
-    return exit_client(cptr, sptr, &me, "Nick/Server collision");
+    return exit_client_msg(cptr, sptr, &me,
+                          "Killed (" HEAD_IN_SAND_SERVERNAME " (%s <- %s))",
+                          cli_name(cli_from(acptr)), cli_name(cptr));
   }
 
   /*
@@ -443,7 +446,8 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
         assert(!MyConnect(sptr));
 
         cli_flags(sptr) |= FLAGS_KILLED;
-        exit_client(cptr, sptr, &me, "Nick collision (you're a ghost)");
+        exit_client(cptr, sptr, &me,
+                   "Killed (" HEAD_IN_SAND_SERVERNAME " (Nick collision))");
         /*
          * we have killed sptr off, zero out it's pointer so if it's used
          * again we'll know about it --Bleep
@@ -464,18 +468,26 @@ int ms_nick(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
   if (differ) {
     sendcmdto_serv_butone(&me, CMD_KILL, acptr, "%C :%s (older nick "
                          "overruled)", acptr, cli_name(&me));
-    if (MyConnect(acptr))
-      sendcmdto_one(acptr, CMD_QUIT, cptr, ":Local kill by %s (Ghost)",
-                   cli_name(&me));
-    exit_client(cptr, acptr, &me, "Nick collision (older nick overruled)");
+    if (MyConnect(acptr)) {
+      sendcmdto_one(acptr, CMD_QUIT, cptr, ":Killed (" HEAD_IN_SAND_SERVERNAME " (older "
+                   "nick overruled))");
+      sendcmdto_one(&me, CMD_KILL, acptr, "%C :" HEAD_IN_SAND_SERVERNAME " (older nick "
+                   "overruled)", acptr);
+    }
+    exit_client(cptr, acptr, &me, "Killed (" HEAD_IN_SAND_SERVERNAME " (older nick "
+               "overruled))");
   }
   else {
     sendcmdto_serv_butone(&me, CMD_KILL, acptr, "%C :%s (nick collision from "
                          "same user@host)", acptr, cli_name(&me));
-    if (MyConnect(acptr))
-      sendcmdto_one(acptr, CMD_QUIT, cptr, ":Local kill by %s (Ghost: ",
-                   "switched servers too fast)", cli_name(&me));
-    exit_client(cptr, acptr, &me, "Nick collision (You collided yourself)");
+    if (MyConnect(acptr)) {
+      sendcmdto_one(acptr, CMD_QUIT, cptr, ":Killed (" HEAD_IN_SAND_SERVERNAME " (nick "
+                   "collision from same user@host))");
+      sendcmdto_one(&me, CMD_KILL, acptr, "%C :" HEAD_IN_SAND_SERVERNAME " (older nick "
+                   "overruled)", acptr);
+    }
+    exit_client(cptr, acptr, &me, "Killed (" HEAD_IN_SAND_SERVERNAME " (nick collision "
+               "from same user@host))");
   }
   if (lastnick == cli_lastnick(acptr))
     return 0;