From e471b5cc12c5c0eb40422df1e755123e534f0934 Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Thu, 7 Jan 2010 02:55:33 +0000 Subject: [PATCH] If a server sends us a new, expired G-line, create it deactivated (fixes SF #2840365). git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1936 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- ChangeLog | 5 +++++ ircd/gline.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/ChangeLog b/ChangeLog index ff7157f..092c2c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-01-06 Michael Poole + + * ircd/gline.c (gline_add): If a forced G-line has already + expired, create it in a deactivated state. + 2010-01-06 Michael Poole * ircd/m_burst.c (ms_burst): Gracefully handle the case where a diff --git a/ircd/gline.c b/ircd/gline.c index 5b5c5b1..dfbf77d 100644 --- a/ircd/gline.c +++ b/ircd/gline.c @@ -503,6 +503,9 @@ gline_add(struct Client *cptr, struct Client *sptr, char *userhost, if (!IsServer(sptr) && MyConnect(sptr)) send_reply(sptr, ERR_BADEXPIRE, expire); return 0; + } else if (expire <= CurrentTime) { + /* This expired G-line was forced to be added, so mark it inactive. */ + flags &= ~GLINE_ACTIVE; } if (!lifetime) /* no lifetime set, use expiration time */ -- 2.20.1