From: pk910 Date: Fri, 1 Jul 2011 22:52:50 +0000 (+0200) Subject: free all MemberFlood's on mode -f X-Git-Tag: WGN5~30 X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=3ac5cd4cb4a909e5965fb5a0f534559a8204f48e free all MemberFlood's on mode -f --- 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; + } } }