mod_limits_exception/mod_limits_exception.lua
author Matthew Wild <mwild1@gmail.com>
Sat, 24 Sep 2022 09:26:26 +0100
changeset 5063 5f1120c284c5
parent 4566 28c16c93d79a
permissions -rw-r--r--
mod_cloud_notify_extensions: Add note about dependency Noting here because people might not click through to see it on the mod_cloud_notify_encrypted page.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4566
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);