comparison mod_limits/mod_limits.lua @ 3542:1bb2a90398d3

mod_limits: log throttled JID
author Georg Lukas <georg@op-co.de>
date Tue, 02 Apr 2019 16:27:14 +0200
parents 88b16084eda7
children
comparison
equal deleted inserted replaced
3541:4d8a68557941 3542:1bb2a90398d3
57 function default_filter_set.bytes_in(bytes, session) 57 function default_filter_set.bytes_in(bytes, session)
58 local throttle = session.throttle; 58 local throttle = session.throttle;
59 if throttle then 59 if throttle then
60 local ok, balance, outstanding = throttle:poll(#bytes, true); 60 local ok, balance, outstanding = throttle:poll(#bytes, true);
61 if not ok then 61 if not ok then
62 session.log("debug", "Session over rate limit (%d) with %d (by %d), pausing", throttle.max, #bytes, outstanding); 62 session.log("debug", "Session %q over rate limit (%d) with %d (by %d), pausing", session.full_jid or session.from_host or session.to_host, throttle.max, #bytes, outstanding);
63 outstanding = ceil(outstanding); 63 outstanding = ceil(outstanding);
64 session.conn:pause(); -- Read no more data from the connection until there is no outstanding data 64 session.conn:pause(); -- Read no more data from the connection until there is no outstanding data
65 local outstanding_data = bytes:sub(-outstanding); 65 local outstanding_data = bytes:sub(-outstanding);
66 bytes = bytes:sub(1, #bytes-outstanding); 66 bytes = bytes:sub(1, #bytes-outstanding);
67 timer.add_task(limits_resolution, function () 67 timer.add_task(limits_resolution, function ()