This shows you the differences between two versions of the page.
— |
flood_control [2007/03/02 02:32] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | $EPIC: flood_control.txt,v 1.1 2007/03/02 02:32:04 jnelson Exp $ | ||
+ | ======Flood Control====== | ||
+ | The client has an anti-flood facility whose purpose is to prevent | ||
+ | crapflooding to your display. Since flood control is a client-side | ||
+ | facility, it can't stop someone from consuming all your cpu or bandwidth. | ||
+ | |||
+ | =====How people are tracked===== | ||
+ | The [[set flood_maskuser]] value controls what the client considers to | ||
+ | be one //flooder//. | ||
+ | |||
+ | ^ set flood_maskuser value ^ Description ^ | ||
+ | | 0 | Treat each unique user@host as distinct flooder | | ||
+ | | 1 | Treat identd users uniquely, treat all non-identd users on a host together as one flooder | | ||
+ | | 2 | Treat all users on a host as one flooder | | ||
+ | |||
+ | =====Floods===== | ||
+ | Floods are specific to a target (channel or msgs), server, and [[level]]. | ||
+ | If someone floods you on multiple channels or using multiple types of | ||
+ | messages, these are all considered different floods. Servers are always | ||
+ | exempt from flood control. | ||
+ | |||
+ | =====The Flood List===== | ||
+ | The client maintains a list of potential floods. The number of floods | ||
+ | to track is controlled by [[set flood_users]]. Setting this value too | ||
+ | high takes up lots of resources, setting it too low makes the facility | ||
+ | less effective. | ||
+ | |||
+ | =====Getting on and Getting off the flood list==== | ||
+ | When someone new sends you a message, they are added to the flood list, | ||
+ | taking the place of the oldest entry on the flood list that doesn't have | ||
+ | any penalty points (see below). Therefore, entries are constantly being | ||
+ | added and removed from the flood list, as long as they don't flood you. | ||
+ | If an entry would have been removed, but it has penalty points, then it | ||
+ | loses one penalty point. Eventually (if it doesn't flood you), all of | ||
+ | the penalty points will run out and then it will be removed. | ||
+ | |||
+ | =====What is a flood?===== | ||
+ | If a potential flooder sends you [[set flood_after]] messages before they are | ||
+ | removed from the list, the messages-per-second rate is compared against | ||
+ | [[set flood_rate]] / [[set flood_rate_per]]. If the flooder has sent too | ||
+ | many messages, each time they send you a message they will receive a | ||
+ | "penalty point", until the rate of messages falls below your threshhold. | ||
+ | These penalty points prevent the flooder from being removed from the | ||
+ | tracking list for a long time. This allows the client to focus its efforts | ||
+ | on people who are causing you trouble. | ||
+ | |||
+ | =====When you are flooded...===== | ||
+ | When you are flooded, if [[set flood_warning]] is on, a message is sent to | ||
+ | your display telling you that you have been flooded. If [[set flood_ignore]] | ||
+ | is ON, then the normal processing of the message is suppressed by the client. | ||
+ | If [[set ignore]] is OFF, then the client continues to process the message | ||
+ | normally. | ||
+ | |||
+ | =====Checking out the flood list===== | ||
+ | The [[floodinfo]] function will tell you about the flood list. | ||
+ | |||
+ | =====History:===== | ||
+ | Flood control has always been a part of ircII. | ||
+ | |||