]> jfr.im git - solanum.git/commitdiff
Add module which restricts unauthenticated users from doing anything as channel op.
authorWilliam Pitcock <redacted>
Thu, 1 Nov 2012 06:48:08 +0000 (06:48 +0000)
committerWilliam Pitcock <redacted>
Thu, 1 Nov 2012 06:48:40 +0000 (06:48 +0000)
extensions/Makefile.in
extensions/restrict-unauthenticated.c [new file with mode: 0644]

index dbc0ba4cfba1ed5a86eacf01785f30094d6b8214..7606d1f537263ecf0e6a77db28bda3d503f44a05 100644 (file)
@@ -59,6 +59,7 @@ SRCS =                          \
   ip_cloaking_3.0.c            \
   ip_cloaking_4.0.c            \
   override.c                   \
+  restrict-unauthenticated.c    \
   sno_farconnect.c             \
   sno_globalkline.c            \
   sno_globaloper.c             \
diff --git a/extensions/restrict-unauthenticated.c b/extensions/restrict-unauthenticated.c
new file mode 100644 (file)
index 0000000..14ffc36
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * restrict unauthenticated users from doing anything as channel op
+ */
+
+#include "stdinc.h"
+#include "modules.h"
+#include "hook.h"
+#include "client.h"
+#include "ircd.h"
+#include "send.h"
+#include "hash.h"
+#include "s_conf.h"
+#include "s_user.h"
+#include "s_serv.h"
+#include "numeric.h"
+#include "privilege.h"
+#include "s_newconf.h"
+
+static void hack_channel_access(void *data);
+
+mapi_hfn_list_av1 restrict_unauthenticated_hfnlist[] = {
+       { "get_channel_access", (hookfn) hack_channel_access },
+       { NULL, NULL }
+};
+
+static void
+hack_channel_access(void *vdata)
+{
+       hook_data_channel_approval *data = (hook_data_channel_approval *) vdata;
+
+       if (!MyClient(data->client))
+               return;
+
+       if (EmptyString(data->client->user->suser))
+               data->approved = 0;
+}
+
+DECLARE_MODULE_AV1(restrict_unauthenticated, NULL, NULL, NULL, NULL,
+                       restrict_unauthenticated_hfnlist, "$Revision: 3526 $");