<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-modules/</link>
    <language>en-us</language>

    <title>prosody-modules: mod_firewall/mod_firewall.lua history</title>
    <description>mod_firewall/mod_firewall.lua revision history</description>
    <item>
    <title>mod_firewall: Remove unnecessary logging</title>
    <link>http://hg.omfa.de/prosody-modules/log/15a7749c7acb/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Remove unnecessary logging]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 24 May 2026 20:07:30 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Apply pre-reload state before re-reading config</title>
    <link>http://hg.omfa.de/prosody-modules/log/7477e97a9045/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Apply pre-reload state before re-reading config<br/>
<br/>
This change makes load/reload a bit more robust. module.load() runs before<br/>
module.restore() and it reads from the config and updates the state (if<br/>
needed).<br/>
<br/>
However, after this, module.restore() could run and apply the old state again.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 24 May 2026 20:03:20 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Report success if script is already loaded and hasn't changed</title>
    <link>http://hg.omfa.de/prosody-modules/log/d81bb13c0e87/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Report success if script is already loaded and hasn't changed]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 24 May 2026 19:58:55 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: FROM COUNTRY: Fix incorrect variable use in generated code</title>
    <link>http://hg.omfa.de/prosody-modules/log/7f3ad8a5b2ab/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: FROM COUNTRY: Fix incorrect variable use in generated code]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 24 May 2026 19:30:31 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: marks: load marks from storage on login</title>
    <link>http://hg.omfa.de/prosody-modules/log/430584888704/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: marks: load marks from storage on login]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 24 May 2026 10:48:24 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Add support for tracing rule evaluation in real-time</title>
    <link>http://hg.omfa.de/prosody-modules/log/de1f17ed4dac/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add support for tracing rule evaluation in real-time]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 11 May 2026 13:37:19 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Include filename in metadata</title>
    <link>http://hg.omfa.de/prosody-modules/log/9bc83fba89ac/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Include filename in metadata]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 11 May 2026 13:18:45 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Preserve original source of actions/conditions for debug purposes</title>
    <link>http://hg.omfa.de/prosody-modules/log/24c34968dd45/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Preserve original source of actions/conditions for debug purposes]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 11 May 2026 13:18:25 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Remove obsolete and broken mark/unmark commands</title>
    <link>http://hg.omfa.de/prosody-modules/log/82b6a03b9dfa/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Remove obsolete and broken mark/unmark commands<br/>
<br/>
Replaced by flags]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 11 May 2026 13:16:18 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Load a script completely or not at all</title>
    <link>http://hg.omfa.de/prosody-modules/log/5aeefc2251d4/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Load a script completely or not at all<br/>
<br/>
Previously it was possible that some chains would load, but others would not.<br/>
This can be surprising (that a &quot;half-loaded&quot; state is possible) and hard to<br/>
debug.<br/>
<br/>
This change makes it so that if some chains don't compile, the whole script<br/>
will be treated as not loaded.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 06 May 2026 16:15:38 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Update module status when scripts succeed/fail to load</title>
    <link>http://hg.omfa.de/prosody-modules/log/0f61d13ebbde/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Update module status when scripts succeed/fail to load]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 06 May 2026 15:41:56 +0100</pubDate>
</item>
<item>
    <title>various: Adjust for loop variables becoming constants in Lua 5.5</title>
    <link>http://hg.omfa.de/prosody-modules/log/f61564e11d3b/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[various: Adjust for loop variables becoming constants in Lua 5.5]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 07 Apr 2026 14:30:31 +0200</pubDate>
</item>
<item>
    <title>mod_firewall: Fix chain name check - custom chains should begin with 'user/'</title>
    <link>http://hg.omfa.de/prosody-modules/log/ce716e5e0fee/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix chain name check - custom chains should begin with 'user/']]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 26 Mar 2026 13:42:10 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Support 'FROM IP' and 'FROM SUBNET' conditions</title>
    <link>http://hg.omfa.de/prosody-modules/log/b15601203d0d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Support 'FROM IP' and 'FROM SUBNET' conditions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 26 Mar 2026 13:33:44 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Use util.time instead of prosody.util.time, for 0.12 compatibility</title>
    <link>http://hg.omfa.de/prosody-modules/log/547feb8181eb/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Use util.time instead of prosody.util.time, for 0.12 compatibility]]></description>
    <author>&#76;&#105;&#110;&#107;&#32;&#77;&#97;&#117;&#118;&#101;&#32;&#60;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#64;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#46;&#102;&#114;&#62;</author>
    <pubDate>Sun, 01 Feb 2026 14:09:14 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Switch to prosody.util.time.now() to get the current time</title>
    <link>http://hg.omfa.de/prosody-modules/log/81f06628fea4/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Switch to prosody.util.time.now() to get the current time]]></description>
    <author>&#76;&#105;&#110;&#107;&#32;&#77;&#97;&#117;&#118;&#101;&#32;&#60;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#64;&#108;&#105;&#110;&#107;&#109;&#97;&#117;&#118;&#101;&#46;&#102;&#114;&#62;</author>
    <pubDate>Fri, 30 Jan 2026 15:03:21 +0100</pubDate>
</item>
<item>
    <title>mod_server_contact_info: Backport from prosody trunk</title>
    <link>http://hg.omfa.de/prosody-modules/log/254a21a104aa/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_server_contact_info: Backport from prosody trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Jun 2024 16:14:58 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Support util.id.* as dependencies</title>
    <link>http://hg.omfa.de/prosody-modules/log/1d1eadff331d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Support util.id.* as dependencies]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 12 Mar 2024 14:31:21 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix to find scripts when installed with plugin installer</title>
    <link>http://hg.omfa.de/prosody-modules/log/866a49f5aa61/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix to find scripts when installed with plugin installer<br/>
<br/>
Extra resources are stored in a different path by luarocks, not<br/>
alongside the code as this code assumed.<br/>
<br/>
Thanks eTaurus]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 11 Feb 2024 12:50:53 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: TO/FROM ROLE: Handle JIDs with no role (thanks Zash)</title>
    <link>http://hg.omfa.de/prosody-modules/log/e304e19536f2/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: TO/FROM ROLE: Handle JIDs with no role (thanks Zash)]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 12 Dec 2023 19:06:37 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add FROM COUNTRY condition based on GeoIP DB</title>
    <link>http://hg.omfa.de/prosody-modules/log/ad5c77793750/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add FROM COUNTRY condition based on GeoIP DB]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 12 Nov 2023 16:37:47 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Add console commands to mark/unmark users</title>
    <link>http://hg.omfa.de/prosody-modules/log/048284447643/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add console commands to mark/unmark users]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 08 Jun 2023 19:47:35 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: enable marks by default</title>
    <link>http://hg.omfa.de/prosody-modules/log/fa8435a27f7e/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: enable marks by default]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 08 Jun 2023 17:00:04 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Initialize compiled chunk just once for all handlers</title>
    <link>http://hg.omfa.de/prosody-modules/log/32a9817c7516/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Initialize compiled chunk just once for all handlers<br/>
<br/>
This should fix a case where some stateful dependencies (such as throttles)<br/>
produce separate instances for every call to new_handler(), leading to<br/>
surprising behaviour (e.g. rules executed via JUMP CHAIN vs ::deliver would<br/>
have separate rate limits).<br/>
<br/>
This also adds better error handling in case the compiled code fails to run<br/>
for some reason.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 28 Apr 2023 13:27:06 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Fix 'is_admin' internal dependency rule #1797 (thanks diane)</title>
    <link>http://hg.omfa.de/prosody-modules/log/8474a3b80200/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix 'is_admin' internal dependency rule #1797 (thanks diane)<br/>
<br/>
Looks like the boolean logic was inverted here.  Instead, for now,<br/>
simply check if is_admin is there. It is deprecated in trunk and was<br/>
briefly removed before being brought back with a 'deprecated' warning as<br/>
part of the new roles and permissions work. Making this dependency<br/>
conditioned on the existence of the underlying function should make it<br/>
work until it actually goes away for real.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 27 Jan 2023 23:06:25 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Update for role-auth (backwards compatible)</title>
    <link>http://hg.omfa.de/prosody-modules/log/84997bc3f92e/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Update for role-auth (backwards compatible)<br/>
<br/>
Probably worth investigating mod_compat_roles in the future.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 11 Aug 2022 17:04:53 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Remove reliance on full_sessions being a global</title>
    <link>http://hg.omfa.de/prosody-modules/log/4e8fa75cc678/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Remove reliance on full_sessions being a global<br/>
<br/>
While it exists as a global now, we want to move away from these globals<br/>
eventually.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 30 Jun 2021 14:48:59 +0200</pubDate>
</item>
<item>
    <title>mod_firewall: Allow underscores in definition names</title>
    <link>http://hg.omfa.de/prosody-modules/log/cc20493018f6/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Allow underscores in definition names]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 05 Jun 2021 16:22:22 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Use util.envload instead of deprecated loadstring (thanks Martin)</title>
    <link>http://hg.omfa.de/prosody-modules/log/7e8f2e36419d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Use util.envload instead of deprecated loadstring (thanks Martin)<br/>
<br/>
loadstring was deprecated in Lua 5.2 and removed from in 5.3]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 19 Apr 2020 23:37:13 +0200</pubDate>
</item>
<item>
    <title>mod_firewall: Add special case for $local zone (fixes #1090)</title>
    <link>http://hg.omfa.de/prosody-modules/log/b0d92332b87f/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add special case for $local zone (fixes #1090)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 12 Mar 2018 12:26:15 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Add experimental user-centric persistent marks behind a feature flag</title>
    <link>http://hg.omfa.de/prosody-modules/log/165d2877eeac/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add experimental user-centric persistent marks behind a feature flag]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 24 Feb 2018 21:40:56 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Trim trailing whitespace [luacheck]</title>
    <link>http://hg.omfa.de/prosody-modules/log/22e11645a895/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Trim trailing whitespace [luacheck]]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 03 Jan 2018 07:49:22 +0100</pubDate>
</item>
<item>
    <title>mod_firewall: Add 'test' subcommand to read stanzas from stdin and test them against rules</title>
    <link>http://hg.omfa.de/prosody-modules/log/02c6ae745c4f/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add 'test' subcommand to read stanzas from stdin and test them against rules]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 26 Feb 2017 09:58:07 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Remove ambiguity from tokens dep parameter</title>
    <link>http://hg.omfa.de/prosody-modules/log/d64fc9c3cffd/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Remove ambiguity from tokens dep parameter]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 26 Feb 2017 09:50:16 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix for including the same dependency with different parameters</title>
    <link>http://hg.omfa.de/prosody-modules/log/b6b10f57aa56/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix for including the same dependency with different parameters]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 26 Feb 2017 09:49:42 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Compatibility fix for 0.9 (no module:unhook())</title>
    <link>http://hg.omfa.de/prosody-modules/log/aaff2716f022/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Compatibility fix for 0.9 (no module:unhook())]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 25 Feb 2017 17:05:40 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add some comments</title>
    <link>http://hg.omfa.de/prosody-modules/log/5e948d1392a5/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add some comments]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 25 Feb 2017 16:55:02 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Various improvements allowing dynamic load/reload/unload of scripts</title>
    <link>http://hg.omfa.de/prosody-modules/log/6dbd07f9a868/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Various improvements allowing dynamic load/reload/unload of scripts]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 25 Feb 2017 16:54:52 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Factor out script loading</title>
    <link>http://hg.omfa.de/prosody-modules/log/f65c5927ee8e/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Factor out script loading]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 25 Feb 2017 15:46:27 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix meta functions with to/from that weren't JID-based</title>
    <link>http://hg.omfa.de/prosody-modules/log/24dbad147aef/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix meta functions with to/from that weren't JID-based]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sat, 25 Feb 2017 15:46:01 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Rename variables to avoid shadowing #luacheck</title>
    <link>http://hg.omfa.de/prosody-modules/log/78efd064aef3/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Rename variables to avoid shadowing #luacheck]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 24 Feb 2017 09:49:30 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Accept backslash escapes in definitions</title>
    <link>http://hg.omfa.de/prosody-modules/log/3da0e3c917cc/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Accept backslash escapes in definitions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 24 Feb 2017 09:49:09 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Make PASS bubble up through all chains, and add DEFAULT and RETURN</title>
    <link>http://hg.omfa.de/prosody-modules/log/2b533a7b5236/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Make PASS bubble up through all chains, and add DEFAULT and RETURN]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 24 Feb 2017 09:38:20 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Allow backslash escapes in definitions</title>
    <link>http://hg.omfa.de/prosody-modules/log/19a182651a9b/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Allow backslash escapes in definitions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Feb 2017 14:00:43 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Pass 'module' object to chain handlers</title>
    <link>http://hg.omfa.de/prosody-modules/log/2ff588094938/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Pass 'module' object to chain handlers]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Feb 2017 14:00:26 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add 'current_host' variable/dependency</title>
    <link>http://hg.omfa.de/prosody-modules/log/ce08a57e516b/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add 'current_host' variable/dependency]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Feb 2017 13:58:30 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add metaq(), like meta() but takes an unquoted string</title>
    <link>http://hg.omfa.de/prosody-modules/log/eb4f45bd7fef/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add metaq(), like meta() but takes an unquoted string]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Feb 2017 13:58:13 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add stripslashes() function</title>
    <link>http://hg.omfa.de/prosody-modules/log/6e4494772328/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add stripslashes() function]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 Feb 2017 13:57:48 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add it(erators) and it_count dependencies</title>
    <link>http://hg.omfa.de/prosody-modules/log/223eea31588d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add it(erators) and it_count dependencies]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 21 Feb 2017 22:41:40 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Do patterns properly, instead of cheating</title>
    <link>http://hg.omfa.de/prosody-modules/log/3c16f0a8d66c/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Do patterns properly, instead of cheating]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 21 Feb 2017 22:41:08 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Allow using spaces instead of underscores in actions, as well as conditions</title>
    <link>http://hg.omfa.de/prosody-modules/log/1510b66a43fc/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Allow using spaces instead of underscores in actions, as well as conditions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 21 Feb 2017 10:38:14 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Reinstate the ability to set a default for stanza expressions</title>
    <link>http://hg.omfa.de/prosody-modules/log/a1b6a6b0aabb/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Reinstate the ability to set a default for stanza expressions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 21 Feb 2017 10:37:53 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix scan_list() syntax error in generated code</title>
    <link>http://hg.omfa.de/prosody-modules/log/9aed7f4e9f07/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix scan_list() syntax error in generated code]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 13:12:30 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Add SEARCH, PATTERN definitions and SCAN condition to check tokenized stanza:find() against a list</title>
    <link>http://hg.omfa.de/prosody-modules/log/44a71584521d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Add SEARCH, PATTERN definitions and SCAN condition to check tokenized stanza:find() against a list]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 09:31:30 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Code formatting</title>
    <link>http://hg.omfa.de/prosody-modules/log/5ff7eb601d60/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Code formatting]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 09:29:38 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix pattern</title>
    <link>http://hg.omfa.de/prosody-modules/log/b2fc41001c8e/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix pattern]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 09:29:25 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Fix for deps dynamically including deps</title>
    <link>http://hg.omfa.de/prosody-modules/log/a35d85cfda92/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Fix for deps dynamically including deps]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 09:29:09 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: More meta() enhancements</title>
    <link>http://hg.omfa.de/prosody-modules/log/0404476ecfe3/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: More meta() enhancements]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 20 Feb 2017 09:28:35 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: Initial support for lists, in-memory and HTTP</title>
    <link>http://hg.omfa.de/prosody-modules/log/c6fd8975704b/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: Initial support for lists, in-memory and HTTP]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 19 Feb 2017 21:10:26 +0000</pubDate>
</item>
<item>
    <title>mod_firewall: More meta! Allow simple functions to be applied to $&lt;&gt; expressions</title>
    <link>http://hg.omfa.de/prosody-modules/log/0e1054c19f9d/mod_firewall/mod_firewall.lua</link>
    <description><![CDATA[mod_firewall: More meta! Allow simple functions to be applied to $&lt;&gt; expressions]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 19 Feb 2017 21:06:57 +0000</pubDate>
</item>

  </channel>
</rss>
