X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/cb9668b64faf2bb9c82787cf8907e9993f8a8dd3..40814391c7b017da05d4daa2895093e5099801c7:/trusts/trusts_master.c diff --git a/trusts/trusts_master.c b/trusts/trusts_master.c index e992e3bc..521d2151 100644 --- a/trusts/trusts_master.c +++ b/trusts/trusts_master.c @@ -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); }