Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ircd / jupe.c
index 9c0f3446bb6b2703a438d9faf73c56606e3d83ce..c49b4faee2f87cfc1ecb543eb86fb97a6fe6c99d 100644 (file)
@@ -39,6 +39,7 @@
 #include "sys.h"    /* FALSE bleah */
 
 #include <assert.h>
+#include <string.h>
 
 static struct Jupe *GlobalJupeList = 0;
 
@@ -175,7 +176,8 @@ jupe_activate(struct Client *cptr, struct Client *sptr, struct Jupe *jupe,
            jupe->ju_reason);
 #endif /* JPATH */
 
-  propagate_jupe(cptr, sptr, jupe);
+  if (!(flags & JUPE_LOCAL)) /* don't propagate local changes */
+    propagate_jupe(cptr, sptr, jupe);
 
   return do_jupe(cptr, sptr, jupe);
 }
@@ -222,7 +224,7 @@ jupe_deactivate(struct Client *cptr, struct Client *sptr, struct Jupe *jupe,
 
   if (JupeIsLocal(jupe))
     jupe_free(jupe);
-  else
+  else if (!(flags & JUPE_LOCAL)) /* don't propagate local changes */
     propagate_jupe(cptr, sptr, jupe);
 
   return 0;