@@ -1,3 +1,5 @@
+* Fix restart causing bot to change nick (this was a regression in jupenick)
+
1.2.17 - http://wraith.botpack.net/milestone/1.2.17
* Binary pass prompt has been changed to be more clear.
* Fix uname checking on NetBSD and OpenBSD
@@ -669,6 +669,7 @@ readsocks(const char *fname)
simple_snprintf(nserv, sizeof(nserv), "%s:%d", dcc[servidx].host, dcc[servidx].port);
add_server(nserv);
curserv = 0;
+ keepnick = 0; /* Wait to change nicks until relinking, fixes nick/jupenick switching issues during restart */
rehash_server(dcc[servidx].host, nick);
if (cached_005)
replay_cache(servidx, NULL);
@@ -81,7 +81,6 @@ bool use_354 = 0; /* Use ircu's short 354 /who
* responses. */
static bool kick_fun = 0;
static bool ban_fun = 1;
-static bool keepnick = 1; /* Keep nick */
static bool prevent_mixing = 1; /* To prevent mixing old/new modes */
static bool include_lk = 1; /* For correct calculation
* in real_add_mode. */
@@ -67,7 +67,7 @@ char botuserhost[UHOSTLEN] = ""; /* bot's user@host (refreshed whenever the bot
/* may not be correct user@host BUT it's how the server sees it */
char botuserip[UHOSTLEN] = ""; /* bot's user@host with the ip. */
-static bool keepnick = 1; /* keep trying to regain my intended
+bool keepnick = 1; /* keep trying to regain my intended
nickname? */
static bool nick_juped = 0; /* True if origbotname is juped(RPL437) (dw) */
static bool jnick_juped = 0; /* True if jupenick is juped */
@@ -45,7 +45,7 @@ enum {
extern bind_table_t *BT_ctcp, *BT_ctcr, *BT_msgc;
extern size_t nick_len;
-extern bool trigger_on_ignore, floodless, tried_jupenick;
+extern bool trigger_on_ignore, floodless, tried_jupenick, keepnick;
extern int servidx, ctcp_mode, answer_ctcp, serv, curserv, default_alines;
extern unsigned int rolls;
extern port_t default_port, newserverport, curservport;
@@ -1417,6 +1417,9 @@ finish_share(int idx)
updatebot(-1, dcc[j].nick, '+', 0, 0, 0, NULL);
send_sysinfo();
+ if (restarting && !keepnick)
+ keepnick = 1;
/* Prevents the server connect from dumping JOIN #chan */
restarting = 0;