]> jfr.im git - irc/quakenet/newserv.git/commitdiff
CHANSERV: add QSUSPENDED usersearch command.
authorChris Porter <redacted>
Fri, 15 Jul 2011 15:55:11 +0000 (16:55 +0100)
committerChris Porter <redacted>
Fri, 15 Jul 2011 15:55:11 +0000 (16:55 +0100)
--HG--
branch : achievements

chanserv/newsearch/Makefile.in
chanserv/newsearch/chanserv_newsearch.c
chanserv/newsearch/chanserv_newsearch.h
chanserv/newsearch/csns-qsuspended.c [new file with mode: 0644]

index 0ec5fdd81117f0366912f86970cf35e9c0a56900..5c1467be7f54cf54b20376d2c9f32858d27eb929 100644 (file)
@@ -5,4 +5,4 @@ INCPATH=../../
 .PHONY: all
 all: chanserv_newsearch.so
 
-chanserv_newsearch.so: chanserv_newsearch.o formats.o csns-qusers.o interface.o csns-qlasthost.o csns-qemail.o csns-qsuspendreason.o csns-qusername.o csns-qchanflags.o
+chanserv_newsearch.so: chanserv_newsearch.o formats.o csns-qusers.o interface.o csns-qlasthost.o csns-qemail.o csns-qsuspendreason.o csns-qusername.o csns-qchanflags.o csns-qsuspended.o
index 5143d5c17f616f04a1a8e79d4ebf2f4cda5fb486..d791bbd5398e62ebe4c9818fad4a555793604ab0 100644 (file)
@@ -21,6 +21,7 @@ void _init() {
   registersearchterm(reg_usersearch, "qsuspendreason", qsuspendreason_parse, 0, "");
   registersearchterm(reg_usersearch, "qusername", qusername_parse, 0, "");
   registersearchterm(reg_chansearch, "qchanflags", qchanflags_parse, 0, "");
+  registersearchterm(reg_usersearch, "qsuspended", qsuspended_parse, 0, "");
 
   chanservaddcommand("nicksearch", QCMD_OPER, 5, cs_donicksearch, "Wrapper for standard newserv nicksearch command.", "");
   chanservaddcommand("chansearch", QCMD_OPER, 5, cs_dochansearch, "Wrapper for standard newserv chansearch command.", "");
index 27ffc04fbcdad2a279639de7029233d68f818a86..ae8701d32d19ff0d0ec1d2a827755c4d7a328800 100644 (file)
@@ -14,5 +14,6 @@ struct searchNode *qemail_parse(searchCtx *, int argc, char **argv);
 struct searchNode *qsuspendreason_parse(searchCtx *, int argc, char **argv);
 struct searchNode *qusername_parse(searchCtx *, int argc, char **argv);
 struct searchNode *qchanflags_parse(searchCtx *, int argc, char **argv);
+struct searchNode *qsuspended_parse(searchCtx *, int argc, char **argv);
 
 #endif
diff --git a/chanserv/newsearch/csns-qsuspended.c b/chanserv/newsearch/csns-qsuspended.c
new file mode 100644 (file)
index 0000000..b52679b
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * qsuspended functionality 
+ */
+
+#include "../../newsearch/newsearch.h"
+#include "../chanserv.h"
+
+#include <stdlib.h>
+
+void *qsuspended_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput);
+void qsuspended_free(searchCtx *ctx, struct searchNode *thenode);
+
+struct searchNode *qsuspended_parse(searchCtx *ctx, int argc, char **argv) {
+  struct searchNode *thenode;
+
+  if (!(thenode=(struct searchNode *)malloc(sizeof (struct searchNode)))) {
+    parseError = "malloc: could not allocate memory for this search.";
+    return NULL;
+  }
+
+  thenode->returntype = RETURNTYPE_BOOL;
+  thenode->exe = qsuspended_exe;
+  thenode->free = qsuspended_free;
+
+  return thenode;
+}
+
+void *qsuspended_exe(searchCtx *ctx, struct searchNode *thenode, void *theinput) {
+  authname *ap = (authname *)theinput;
+  reguser *rup = ap->exts[chanservext];
+  if(!rup || !UHasSuspension(rup))
+    return NULL;
+
+  return (void *)1;
+}
+
+void qsuspended_free(searchCtx *ctx, struct searchNode *thenode) {
+  free(thenode);
+}
+