Table of Contents

# $EPIC: floodinfo.txt,v 1.2 2007/03/03 18:29:38 jnelson Exp $

Synopsis

$floodinfo(*) $floodinfo(“user@host channel level server min-hits min-duration min-rate” …)

Description:

This function returns information about the flooders who are currently being tracked by the flood control system.

The floodinfo system takes a list of dword patterns, where each dword pattern is expected to match a string of 7 words, which are:

Word Number Description
0 The user@host of the flooder; if set flood_maskuser is 1 or 2, then this word is something you can ban or kline.
1 The channel the flood is occurring on.
2 The level of the messages being flooded.
3 The server the flood is occurring through
4 The minimum number of messages in the flood
5 The minimum duration (in seconds) of the flood
6 The minimum messages-per-second rate of the flood

Wildcards are permitted. The function will return all flood entries that match the wildcard pattern.

This function returns dwords containing 7 words, as described above. This intentionally allows you to feed the return value of $floodinfo() back in as the argument to $floodinfo() later.

Original description:

$floodinfo() will now accept as input the same list of lists it outputs. The lists themselves don't have to be complete. Any unspecified arguments will match all records. For example:

$floodinfo(“% #chan joins”) # Return all join records for #chan. $floodinfo(*) # This still works. $floodinfo($floodinfo(*)) # Same output as above.

Feeding $floodinfo() output back into its input is useful for tuning the flood /sets by seeing which non-flooders are being caught long term in the system.

The fields are these:

0 u@h mask that matches the flooder. Defaults to “*”.
1 channel mask. Defaults to “*”.
2 flood type mask. Defaults to “*”.
3 Server number. Defaults to -1, which matches all.
4 Numeric minimum number of flood hits.
5 Numeric minimum duration of flood.
6 Numeric minimum flood rate.

The last three numeric arguments may be negative, in which case, they specify the _maximum_ values. These fields make it possible to deal with different kinds of floods in different ways _after_ they occur. For example, a join flood may be falsely triggered by a net join, but it is reasonable to expect that if you have join and part flood records for the same u@h, then it is participating in a join/part flood.

/on “% parts % 5” {

if (floodinfo("$userhost() $2 joins $servernum() 5")) {
	mode $2 +b *!*@$after(@ $userhost()) 
}

}

Or alternately:

/on “% joins % 5” {

if (floodinfo("$userhost() $2 parts $servernum() 5")) {
	mode $2 +b *!*@$after(@ $userhost())
}

}

Returns:

A sequence of 7 word qwords describing the floods being monitored.

History:

This function first appeared in EPIC4-1.1.8.