Annotate

mod_limits_exception/mod_limits_exception.lua @ 5571:ca3c2d11823c

mod_pubsub_feeds: Track latest timestamp seen in feeds instead of last poll This should ensure that an entry that has a publish timestmap after the previously oldest post, but before the time of the last poll check, is published to the node. Previously if an entry would be skipped if it was published at 13:00 with a timestamp of 12:30, where the last poll was at 12:45. For feeds that lack a timestamp, it now looks for the first post that is not published, assuming that the feed is in reverse chronological order, then iterates back up from there.
author Kim Alvefur <zash@zash.se>
date Sun, 25 Jun 2023 16:27:55 +0200
parent 4562:28c16c93d79a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4562
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local unlimited_jids = module:get_option_inherited_set("unlimited_jids", {});
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 if unlimited_jids:empty() then
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 return;
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 end
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 module:hook("authentication-success", function (event)
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 local session = event.session;
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local jid = session.username .. "@" .. session.host;
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 if unlimited_jids:contains(jid) then
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 if session.conn and session.conn.setlimit then
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 session.conn:setlimit(0);
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 elseif session.throttle then
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 session.throttle = nil;
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 end
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 end
28c16c93d79a mod_limits_exception: New module to except some JIDs from rate limiting
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 end);