Mercurial > prosody-hg
comparison plugins/mod_limits.lua @ 11734:c0fc4ca74046
mod_limits: Factor out function for disabling limits allowing use from shell
Also enables reuse for s2s, which we will add next.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 29 Jul 2021 20:11:48 +0200 |
| parents | 3bbb1af92514 |
| children | 7d29167bfcc3 |
comparison
equal
deleted
inserted
replaced
| 11733:27699cc148df | 11734:c0fc4ca74046 |
|---|---|
| 109 | 109 |
| 110 function module.unload() | 110 function module.unload() |
| 111 filters.remove_filter_hook(filter_hook); | 111 filters.remove_filter_hook(filter_hook); |
| 112 end | 112 end |
| 113 | 113 |
| 114 function unlimited(session) | |
| 115 local session_type = session.type:match("^[^_]+"); | |
| 116 if session.conn and session.conn.setlimit then | |
| 117 session.conn:setlimit(0); | |
| 118 -- Currently no burst support | |
| 119 else | |
| 120 local filter_set = type_filters[session_type]; | |
| 121 filters.remove_filter(session, "bytes/in", filter_set.bytes_in); | |
| 122 session.throttle = nil; | |
| 123 end | |
| 124 end | |
| 125 | |
| 114 function module.add_host(module) | 126 function module.add_host(module) |
| 115 local unlimited_jids = module:get_option_inherited_set("unlimited_jids", {}); | 127 local unlimited_jids = module:get_option_inherited_set("unlimited_jids", {}); |
| 116 | 128 |
| 117 if not unlimited_jids:empty() then | 129 if not unlimited_jids:empty() then |
| 118 module:hook("authentication-success", function (event) | 130 module:hook("authentication-success", function (event) |
| 119 local session = event.session; | 131 local session = event.session; |
| 120 local session_type = session.type:match("^[^_]+"); | |
| 121 local jid = session.username .. "@" .. session.host; | 132 local jid = session.username .. "@" .. session.host; |
| 122 if unlimited_jids:contains(jid) then | 133 if unlimited_jids:contains(jid) then |
| 123 if session.conn and session.conn.setlimit then | 134 unlimited(session); |
| 124 session.conn:setlimit(0); | |
| 125 -- Currently no burst support | |
| 126 else | |
| 127 local filter_set = type_filters[session_type]; | |
| 128 filters.remove_filter(session, "bytes/in", filter_set.bytes_in); | |
| 129 session.throttle = nil; | |
| 130 end | |
| 131 end | 135 end |
| 132 end); | 136 end); |
| 133 end | 137 end |
| 134 end | 138 end |
