]> jfr.im git - solanum.git/blobdiff - extensions/extb_canjoin.c
Remove Windows support
[solanum.git] / extensions / extb_canjoin.c
index de7c8dc43b8ccf36b5c076334a961c7b7487a723..2702c683bedd39fd41bbe9815d6b68e548f963db 100644 (file)
 #include "hash.h"
 #include "ircd.h"
 
+static const char extb_desc[] = "Can join ($j) extban type - matches users who are or are not banned from a specified channel";
+
 static int _modinit(void);
 static void _moddeinit(void);
 static int eb_canjoin(const char *data, struct Client *client_p, struct Channel *chptr, long mode_type);
 
-DECLARE_MODULE_AV2(extb_canjoin, _modinit, _moddeinit, NULL, NULL, NULL, NULL, NULL, NULL);
+DECLARE_MODULE_AV2(extb_canjoin, _modinit, _moddeinit, NULL, NULL, NULL, NULL, NULL, extb_desc);
 
 static int
 _modinit(void)
@@ -44,6 +46,8 @@ static int eb_canjoin(const char *data, struct Client *client_p,
                return EXTBAN_INVALID;
        if (data == NULL)
                return EXTBAN_INVALID;
+       if (mode_type == CHFL_EXCEPTION)
+               return EXTBAN_INVALID;
        chptr2 = find_channel(data);
        /* must exist, and no point doing this with the same channel */
        if (chptr2 == NULL || chptr2 == chptr)
@@ -59,7 +63,7 @@ static int eb_canjoin(const char *data, struct Client *client_p,
                return EXTBAN_INVALID;
 #endif
        recurse = 1;
-       ret = is_banned(chptr2, client_p, NULL, NULL, NULL, NULL) == CHFL_BAN ? EXTBAN_MATCH : EXTBAN_NOMATCH;
+       ret = is_banned(chptr2, client_p, NULL, NULL, NULL) == CHFL_BAN ? EXTBAN_MATCH : EXTBAN_NOMATCH;
        recurse = 0;
        return ret;
 }