2000-05-04 Kevin L. Mitchell <klmitch@mit.edu>
+ * ircd/gline.c: don't propagate local changes
+
+ * ircd/jupe.c: don't propagate local changes
+
+ * ircd/m_gline.c (mo_gline): force local flag when deactivating
+ glines with 0 lastmod
+
+ * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
+ are now removed instead of being deactivated
+
* ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
-<mask>" be accepted
#
# ChangeLog for ircu2.10.11
#
-# $Id: ChangeLog,v 1.133 2000-05-04 17:43:47 kev Exp $
+# $Id: ChangeLog,v 1.134 2000-05-04 18:09:46 kev Exp $
#
# Insert new changes at beginning of the change list.
#
gline->gl_expire + TSoffset, gline->gl_reason);
#endif /* GPATH */
- propagate_gline(cptr, sptr, gline);
+ if (!(flags & GLINE_LOCAL)) /* don't propagate local changes */
+ propagate_gline(cptr, sptr, gline);
return GlineIsBadChan(gline) ? 0 : do_gline(cptr, sptr, gline);
}
time_t lastmod, unsigned int flags)
{
unsigned int saveflags = 0;
+ char *msg;
assert(0 != gline);
saveflags = gline->gl_flags;
- if (!GlineIsLocal(gline)) {
+ if (GlineIsLocal(gline))
+ msg = "removing local";
+ else if (!gline->gl_lastmod && !(flags & GLINE_LOCAL))
+ msg = "removing global";
+ else {
+ msg = "deactivating global";
+
if (flags & GLINE_LOCAL)
gline->gl_flags |= GLINE_LDEACT;
else {
sendto_opmask_butone(0, SNO_GLINE, "%s %s %s for %s%s%s, expiring at %Tu: "
"%s",
IsServer(sptr) ? sptr->name : sptr->user->server->name,
- GlineIsLocal(gline) ? "removing local" :
- "deactivating global",
- GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
+ msg, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
gline->gl_user, GlineIsBadChan(gline) ? "" : "@",
GlineIsBadChan(gline) ? "" : gline->gl_host,
gline->gl_expire + TSoffset, gline->gl_reason);
#ifdef GPATH
write_log(GPATH, "# %Tu %C %s %s for %s%s%s, expiring at %Tu: %s\n",
- TStime(), sptr,
- GlineIsLocal(gline) ? "removing local" : "deactivating global",
- GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
+ TStime(), sptr, msg, GlineIsBadChan(gline) ? "BADCHAN" : "GLINE",
gline->gl_user, GlineIsBadChan(gline) ? "" : "@",
GlineIsBadChan(gline) ? "" : gline->gl_host,
gline->gl_expire + TSoffset, gline->gl_reason);
#endif /* GPATH */
- if (GlineIsLocal(gline))
+ if (GlineIsLocal(gline) || (!gline->gl_lastmod && !(flags & GLINE_LOCAL)))
gline_free(gline);
- else
+ else if (!(flags & GLINE_LOCAL)) /* don't propagate local changes */
propagate_gline(cptr, sptr, gline);
return 0;
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);
}
if (JupeIsLocal(jupe))
jupe_free(jupe);
- else
+ else if (!(flags & JUPE_LOCAL)) /* don't propagate local changes */
propagate_jupe(cptr, sptr, jupe);
return 0;