]> jfr.im git - irc/quakenet/newserv.git/blobdiff - trusts/trusts_master.c
TRUSTS: require sqlite
[irc/quakenet/newserv.git] / trusts / trusts_master.c
index e992e3bca25eece5c8443890dafd10646f4cd9fe..521d215166aa08d48b47d3d5a030031ce76431b4 100644 (file)
@@ -5,12 +5,15 @@
 #include "../core/hooks.h"
 #include "../core/config.h"
 #include "../core/error.h"
+#include "../lib/version.h"
 #include "../lib/sha1.h"
 #include "../lib/hmac.h"
 #include "../xsb/xsb.h"
 #include "../control/control.h"
 #include "trusts.h"
 
+MODULE_VERSION("");
+
 static void broadcast(SHA1_CTX *c, unsigned int replicationid, unsigned int lineno, char *command, char *format, ...) {
   char buf[512], buf2[600];
   va_list va;
@@ -103,6 +106,18 @@ static void hostremoved(int hooknum, void *arg) {
   xsb_broadcast("trdelhost", NULL, "%u", th->id);
 }
 
+static void groupmodified(int hooknum, void *arg) {
+  trustgroup *tg = arg;
+
+  xsb_broadcast("trmodifygroup", NULL, "%s", dumptg(tg, 0));
+}
+
+static void hostmodified(int hooknum, void *arg) {
+  trusthost *th = arg;
+
+  xsb_broadcast("trmodifyhost", NULL, "%s", dumpth(th, 0));
+}
+
 static int trusts_cmdtrustforceresync(void *source, int argc, char **argv) {
   nick *np = source;
 
@@ -125,7 +140,9 @@ static void __dbloaded(int hooknum, void *arg) {
   registerhook(HOOK_TRUSTS_ADDGROUP, groupadded);
   registerhook(HOOK_TRUSTS_DELGROUP, groupremoved);
   registerhook(HOOK_TRUSTS_ADDHOST, hostadded);
-  registerhook(HOOK_TRUSTS_DELGROUP, hostremoved);
+  registerhook(HOOK_TRUSTS_DELHOST, hostremoved);
+  registerhook(HOOK_TRUSTS_MODIFYGROUP, groupmodified);
+  registerhook(HOOK_TRUSTS_MODIFYHOST, hostmodified);
 
   /* we've just reloaded */
   /* if we're not online, no problem, other nodes will ask us individually */
@@ -146,6 +163,8 @@ static void __dbclosed(int hooknum, void *arg) {
   registerhook(HOOK_TRUSTS_DELGROUP, groupremoved);
   registerhook(HOOK_TRUSTS_ADDHOST, hostadded);
   registerhook(HOOK_TRUSTS_DELGROUP, hostremoved);
+  registerhook(HOOK_TRUSTS_MODIFYGROUP, groupmodified);
+  registerhook(HOOK_TRUSTS_MODIFYHOST, hostmodified);
 
   deregistercontrolcmd("trustforceresync", trusts_cmdtrustforceresync);
 }