X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/94e4d2f4c124c03a86a1c85e65442e83a615e9c3..a49f12294c9c86f604d60eb67c775b9bb8697eb6:/chanserv/chancmds/rejoin.c diff --git a/chanserv/chancmds/rejoin.c b/chanserv/chancmds/rejoin.c index d05c8332..f2e846d2 100644 --- a/chanserv/chancmds/rejoin.c +++ b/chanserv/chancmds/rejoin.c @@ -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);