]> jfr.im git - irc/quakenet/newserv.git/blobdiff - chanserv/chancmds/rejoin.c
CHANSERV: add -a flag to authhistory
[irc/quakenet/newserv.git] / chanserv / chancmds / rejoin.c
index d05c8332128a4b0ce8bc86bc7cb4ab987aee6682..f2e846d208c6fb72857875a36e895af0d6af1aed 100644 (file)
@@ -36,12 +36,19 @@ int csc_dorejoin(void *source, int cargc, char **cargv) {
     chanservstdmessage(sender, QM_UNKNOWNCHAN, cargv[0]);
     return CMD_ERROR;
   }
+  
+  if (!cip->channel) {
+    chanservstdmessage(sender, QM_EMPTYCHAN, cip->name->content);
+    return CMD_ERROR;
+  }
 
   if (CIsJoined(rcp) && !CIsSuspended(rcp)) {
     CSetSuspended(rcp);
     chanservjoinchan(cip->channel);
     CClearSuspended(rcp);
-    chanservjoinchan(cip->channel);
+    /* Parting the channel may have destroyed it.  In that case, don't bother rejoining. */
+    if (cip->channel)
+      chanservjoinchan(cip->channel);
   }
 
   chanservstdmessage(sender, QM_DONE);