Mercurial > prosody-modules
comparison mod_muc_limits/README.wiki @ 1782:29f3d6b7ad16
Import wiki pages
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 24 Aug 2015 16:43:56 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1781:12ac88940fe3 | 1782:29f3d6b7ad16 |
---|---|
1 #summary Impose rate-limits on a MUC | |
2 #labels Stage-Beta | |
3 | |
4 = Introduction = | |
5 | |
6 This module allows you to control the maximum rate of 'events' in a MUC room. This makes it useful to prevent room floods (whether malicious or accidental). | |
7 | |
8 = Details = | |
9 | |
10 This module limits the following events: | |
11 | |
12 * Room joins | |
13 * Nick changes | |
14 * Status changes | |
15 * Messages (including private messages) | |
16 | |
17 The limit is for the room as a whole, not individual occupants in the room. Users with an affiliation (members, admins and owners) are not limited. | |
18 | |
19 = Configuration = | |
20 | |
21 Add the module to the MUC host (not the global modules_enabled): | |
22 | |
23 {{{ | |
24 Component "conference.example.com" "muc" | |
25 modules_enabled = { "muc_limits" } | |
26 }}} | |
27 | |
28 You can define (globally or per-MUC component) the following options: | |
29 | |
30 || *Name* || *Default value* || *Description* || | |
31 || muc_event_rate || 0.5 || The maximum number of events per second. || | |
32 || muc_burst_factor || 6 || Allow temporary bursts of this multiple. || | |
33 | |
34 For more understanding of how these values are used, see the algorithm section below. | |
35 | |
36 = Algorithm = | |
37 | |
38 A certain number of events are allowed per second, given by muc_event_rate. An event rate of 1 allows one event per second, and event rate of 3 allows three events per second, and 0.5 allows one event every two seconds, and so on. | |
39 | |
40 Obviously MUC conversations are not exactly steady streams of events. Sometimes multiple people will talk at once. This is handled by the muc_burst_factor option. | |
41 | |
42 A burst factor of 2 will allow 2 times as many events at once, for 2 seconds, before throttling will be triggered. A factor of 5, 5 times as many events for 5 seconds. | |
43 | |
44 When the limit is reached, an error response will be generated telling the user the MUC is overactive, and asking them to try again. | |
45 | |
46 = Compatibility = | |
47 || Trunk || Works || | |
48 || 0.8 || Doesn't work`*` || | |
49 | |
50 `*` This module can be made to work in 0.8 (and _maybe_ previous versions) of Prosody by copying the new [http://hg.prosody.im/trunk/raw-file/fc8a22936b3c/util/throttle.lua util.throttle] into your Prosody source directory (into the util/ subdirectory). |