X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fngircd%2Firc-server.c;h=317a3e1a1bf99c8379cb20e83419684024c262af;hb=543f44bff8d56785dc13a74a14d4eaa96465bf05;hp=6ca3c33288ebfd595084cf77a28863974957abbc;hpb=98e9467c85b1a81fbbcebf2be21b3a0d83fb60c4;p=ngircd-alex.git diff --git a/src/ngircd/irc-server.c b/src/ngircd/irc-server.c index 6ca3c332..317a3e1a 100644 --- a/src/ngircd/irc-server.c +++ b/src/ngircd/irc-server.c @@ -31,6 +31,7 @@ #include "parse.h" #include "numeric.h" #include "ngircd.h" +#include "irc.h" #include "irc-info.h" #include "irc-write.h" #include "op.h" @@ -282,7 +283,16 @@ IRC_NJOIN( CLIENT *Client, REQUEST *Req ) goto skip_njoin; } - Channel_Join(c, channame); + if (!Channel_Join(c, channame)) { + /* Failed to join channel. Ooops!? */ + Log(LOG_ALERT, + "Failed to join client \"%s\" to channel \"%s\" (NJOIN): killing it!", + ptr, channame); + IRC_KillClient(NULL, NULL, ptr, "Internal NJOIN error!"); + Log(LOG_DEBUG, "... done."); + goto skip_njoin; + } + chan = Channel_Search(channame); assert(chan != NULL);