From 3ac5cd4cb4a909e5965fb5a0f534559a8204f48e Mon Sep 17 00:00:00 2001 From: pk910 Date: Sat, 2 Jul 2011 00:52:50 +0200 Subject: [PATCH] free all MemberFlood's on mode -f --- ircd/channel.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ircd/channel.c b/ircd/channel.c index fd48bde..1ca8519 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -2727,6 +2727,16 @@ mode_parse_noflood(struct ParseState *state, ulong64 *flag_p) noflood_value <<= 3; noflood_value |= flags; state->chptr->mode.noflood_value = noflood_value; + } else { + //removed the mode so free all flood objects + struct Membership *member; + for(member = state->chptr->members; member; member = member->next_member) { + struct MemberFlood *floodnode; + for(floodnode = member->flood; floodnode; floodnode = floodnode->next_memberflood) {} //simply walk to the end + floodnode->next_memberflood = free_MemberFlood; + free_MemberFlood = floodnode; + member->flood = NULL; + } } } -- 2.20.1