Kaynağa Gözat

* When in release_time window and the wanted nick is taken, reset keepnick to start regaining it again

Bryan Drewery 16 yıl önce
ebeveyn
işleme
362b978ad6
2 değiştirilmiş dosya ile 10 ekleme ve 2 silme
  1. 1 0
      doc/UPDATES
  2. 9 2
      src/mod/server.mod/servmsg.c

+ 1 - 0
doc/UPDATES

@@ -2,6 +2,7 @@
 * Fixed parsing errors in .chanset
 * Only global +n can use .chanset * now
 * Add an extra 2 second delay before releasing nick to aide in syncing and time to type /nick
+* When a nick is released, start regaining as soon as it is witnessed to have been taken again
 
 1.3 - http://wraith.botpack.net/milestone/1.3
 * Binary / shell / startup changes

+ 9 - 2
src/mod/server.mod/servmsg.c

@@ -1237,8 +1237,15 @@ static int gotnick(char *from, char *msg)
       }
     } else
       putlog(LOG_SERV | LOG_MISC, "*", "Nickname changed to '%s'???", msg);
-  } else if ((keepnick) && (rfc_casecmp(nick, msg))) { //Ignore case changes
-    nicks_available(nick);
+  } else if ((rfc_casecmp(nick, msg))) { //Ignore case changes
+    if (keepnick)
+      nicks_available(nick);
+    else if (keepnick && release_time) {
+      // Someone else has regained the nickname, revert to keeping the nick in case they lose it
+      // within the release_time window.
+      keepnick = 0;
+      release_time = 0;
+    }
   }
   free(buf_ptr);
   return 0;