mod_register_ibr, mod_register_limits: Add support for custom error type and defined-condition.
--- a/plugins/mod_register_ibr.lua Sun Sep 29 15:51:21 2019 +0200
+++ b/plugins/mod_register_ibr.lua Sun Sep 29 15:26:18 2019 +0200
@@ -168,7 +168,7 @@
module:fire_event("user-registering", user);
if not user.allowed then
log("debug", "Registration disallowed by module: %s", user.reason or "no reason given");
- session.send(st.error_reply(stanza, "modify", "not-acceptable", user.reason));
+ session.send(st.error_reply(stanza, user.error_type or "modify", user.error_condition or "not-acceptable", user.reason));
return true;
end
--- a/plugins/mod_register_limits.lua Sun Sep 29 15:51:21 2019 +0200
+++ b/plugins/mod_register_limits.lua Sun Sep 29 15:26:18 2019 +0200
@@ -64,15 +64,21 @@
log("debug", "Registration disallowed by blacklist");
event.allowed = false;
event.reason = "Your IP address is blacklisted";
+ event.error_type = "auth";
+ event.error_condition = "forbidden";
elseif (whitelist_only and not ip_in_set(whitelisted_ips, ip)) then
log("debug", "Registration disallowed by whitelist");
event.allowed = false;
event.reason = "Your IP address is not whitelisted";
+ event.error_type = "auth";
+ event.error_condition = "forbidden";
elseif throttle_max and not ip_in_set(whitelisted_ips, ip) then
if not check_throttle(ip) then
log("debug", "Registrations over limit for ip %s", ip or "?");
event.allowed = false;
event.reason = "Too many registrations from this IP address recently";
+ event.error_type = "wait";
+ event.error_condition = "policy-violation";
end
end
end);