diff --git a/extensions/Makefile.in b/extensions/Makefile.in index 9005d95..5b54fbb 100644 --- a/extensions/Makefile.in +++ b/extensions/Makefile.in @@ -35,6 +35,7 @@ SRCS = \ extb_channel.c \ extb_oper.c \ extb_server.c \ + extb_ssl.c \ extb_realname.c \ extb_extgecos.c \ force_user_invis.c \ diff --git a/extensions/extb_ssl.c b/extensions/extb_ssl.c new file mode 100644 index 0000000..b3a8d81 --- /dev/null +++ b/extensions/extb_ssl.c @@ -0,0 +1,39 @@ +/* Oper extban type: matches ssl users */ + +#include "stdinc.h" +#include "modules.h" +#include "client.h" +#include "ircd.h" + +static int _modinit(void); +static void _moddeinit(void); +static int eb_ssl(const char *data, struct Client *client_p, struct Channel *chptr, long mode_type); + +DECLARE_MODULE_AV1(extb_ssl, _modinit, _moddeinit, NULL, NULL, NULL, "$Revision$"); + +static int +_modinit(void) +{ + extban_table['z'] = eb_ssl; + + return 0; +} + +static void +_moddeinit(void) +{ + extban_table['z'] = NULL; +} + +static int eb_ssl(const char *data, struct Client *client_p, + struct Channel *chptr, long mode_type) +{ + + (void)chptr; + (void)mode_type; + /* perhaps use data somehow? (opernick/flags?) */ + /* so deny any bans with data for now */ + if (data != NULL) + return EXTBAN_INVALID; + return IsSSLClient(client_p) ? EXTBAN_MATCH : EXTBAN_NOMATCH; +}