+2009-02-08 Michael Poole <mdpoole@troilus.org>
+
+ * include/gline.h (gline_forward_deactivation): Undeclare.
+
+ * ircd/m_gline.c (mo_gline): Remove the special case to call
+ gline_forward_deactivation().
+
+ * ircd/gline.c (gline_add): Mention if the new G-line is already
+ deactivated.
+ (gline_forward_deactivation): Delete implementation.
+
+ * tests/glines.cmd: Update the expected output to match.
+
2009-01-12 Michael Poole <mdpoole@troilus.org>
* ircd/m_topic.c (do_settopic): Just before sending the topic out,
extern int gline_deactivate(struct Client *cptr, struct Client *sptr,
struct Gline *gline, time_t lastmod,
unsigned int flags);
-extern int gline_forward_deactivation(struct Client *cptr, struct Client *sptr,
- char *userhost, time_t expire, time_t lastmod,
- time_t lifetime, unsigned int flags);
extern int gline_modify(struct Client *cptr, struct Client *sptr,
struct Gline *gline, enum GlineAction action,
char *reason, time_t expire, time_t lastmod,
/* Inform ops... */
sendto_opmask_butone(0, ircd_strncmp(reason, "AUTO", 4) ? SNO_GLINE :
- SNO_AUTO, "%s adding %s %s for %s%s%s, expiring at "
+ SNO_AUTO, "%s adding %s%s %s for %s%s%s, expiring at "
"%Tu: %s",
(feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
cli_name(sptr) :
cli_name((cli_user(sptr))->server),
+ (flags & GLINE_ACTIVE) ? "" : "deactivated ",
(flags & GLINE_LOCAL) ? "local" : "global",
(flags & GLINE_BADCHAN) ? "BADCHAN" : "GLINE", user,
(flags & (GLINE_BADCHAN|GLINE_REALNAME)) ? "" : "@",
return 0;
}
-/** Send a deactivation request for a locally unknown G-line.
- * @param[in] cptr Client that sent us the G-line modification.
- * @param[in] sptr Client that originated the G-line modification.
- * @param[in] userhost Text representation of G-line target.
- * @param[in] expire Expiration time of G-line.
- * @param[in] lastmod Last modification time of G-line.
- * @param[in] lifetime Lifetime of G-line.
- * @param[in] flags Bitwise combination of GLINE_* flags.
- * @return Zero.
- */
-int
-gline_forward_deactivation(struct Client *cptr, struct Client *sptr,
- char *userhost, time_t expire, time_t lastmod,
- time_t lifetime, unsigned int flags)
-{
- char *msg = "deactivating unknown global";
-
- if (!lifetime)
- lifetime = expire;
-
- /* Inform ops and log it */
- sendto_opmask_butone(0, SNO_GLINE, "%s %s GLINE for %s, expiring at %Tu",
- (feature_bool(FEAT_HIS_SNOTICES) || IsServer(sptr)) ?
- cli_name(sptr) : cli_name((cli_user(sptr))->server),
- msg, userhost, expire + TSoffset);
-
- log_write(LS_GLINE, L_INFO, LOG_NOSNOTICE,
- "%#C %s GLINE for %s, expiring at %Tu", sptr, msg, userhost,
- expire);
-
- sendcmdto_serv_butone(sptr, CMD_GLINE, cptr, "* -%s %Tu %Tu %Tu",
- userhost, expire, lastmod, lifetime);
-
- return 0;
-}
-
/** Modify a global G-line.
* @param[in] cptr Client that sent us the G-line modification.
* @param[in] sptr Client that originated the G-line modification.
return send_reply(sptr, ERR_NOPRIVILEGES);
}
- /* If globally disabling a G-line that we do not already have, avoid
- * creating a temporary one. */
- if (!agline && action == GLINE_DEACTIVATE) {
- return gline_forward_deactivation(cptr, sptr, mask, expire, CurrentTime, 0, flags);
- }
-
Debug((DEBUG_DEBUG, "I have a global G-line I am acting upon now; "
"target %s, mask %s, operforce %s, action %s, expire %Tu, "
"reason: %s; gline %s! (fields present: %s %s)", target,