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

    <title>prosody-hg: plugins/mod_http.lua history</title>
    <description>plugins/mod_http.lua revision history</description>
    <item>
    <title>mod_http: &quot;Handle&quot; streaming requests to avoid invoking redirect handler</title>
    <link>http://hg.omfa.de/prosody-hg/log/d08f18c35d27/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: &quot;Handle&quot; streaming requests to avoid invoking redirect handler]]></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, 20 Feb 2026 15:45:54 +0100</pubDate>
</item>
<item>
    <title>mod_http: Log problems parsing IP addresses in X-Forwarded-For (Thanks Boris)</title>
    <link>http://hg.omfa.de/prosody-hg/log/a4b58ea5bf7b/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Log problems parsing IP addresses in X-Forwarded-For (Thanks Boris)]]></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, 09 Apr 2025 18:11:57 +0200</pubDate>
</item>
<item>
    <title>mod_http: Fix IP address normalization (Thanks Boris)</title>
    <link>http://hg.omfa.de/prosody-hg/log/61df1404dd7a/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Fix IP address normalization (Thanks Boris)<br/>
<br/>
This fixes the problem that an un-bracketed IPv6 address will not match<br/>
the first pattern (since it matches brackets) and instead the first<br/>
decimal digits will match the pattern meant to strip port numbers from<br/>
IPv4 addresses, e.g. 2001:db8::1 --&gt; 2000<br/>
<br/>
This pattern instead matches enough of a regular IPv4 address to make an<br/>
IPv6 address fall back to the last case.]]></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, 09 Apr 2025 15:54:54 +0200</pubDate>
</item>
<item>
    <title>mod_http: Generate URL from configuration in prosodyctl</title>
    <link>http://hg.omfa.de/prosody-hg/log/5884d58707fa/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Generate URL from configuration in prosodyctl<br/>
<br/>
This removes the need to configure e.g. http_external_url or similar<br/>
settings in order to get correct URLs out of prosodyctl, as the API<br/>
depends on portmanager to know the actual ports that are used.]]></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, 26 Jul 2023 14:39:36 +0200</pubDate>
</item>
<item>
    <title>mod_http: Fix passing minimum limits in wrong argument position</title>
    <link>http://hg.omfa.de/prosody-hg/log/5022525364f6/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Fix passing minimum limits in wrong argument position]]></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, 17 Jul 2023 02:26:16 +0200</pubDate>
</item>
<item>
    <title>plugins: Use integer config API with interval specification where sensible</title>
    <link>http://hg.omfa.de/prosody-hg/log/50324f66ca2a/plugins/mod_http.lua</link>
    <description><![CDATA[plugins: Use integer config API with interval specification where sensible<br/>
<br/>
Many of these fall into a few categories:<br/>
- util.cache size, must be &gt;= 1<br/>
- byte or item counts that logically can't be negative<br/>
- port numbers that should be in 1..0xffff]]></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, 17 Jul 2023 01:38:54 +0200</pubDate>
</item>
<item>
    <title>plugins: Switch to :get_option_period() for time range options</title>
    <link>http://hg.omfa.de/prosody-hg/log/c8d949cf6b09/plugins/mod_http.lua</link>
    <description><![CDATA[plugins: Switch to :get_option_period() for time range options<br/>
<br/>
Improves readability (&quot;1 day&quot; vs 86400) and centralizes validation.]]></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, 16 Jul 2023 20:49:33 +0200</pubDate>
</item>
<item>
    <title>renamening: Fix newly added imports to use the new namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/9c13c11b199d/plugins/mod_http.lua</link>
    <description><![CDATA[renamening: Fix newly added imports to use the new namespace]]></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, 18 Jun 2023 16:48:56 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/451cb119026e/plugins/mod_http.lua</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></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, 10 Jun 2023 13:06:05 +0200</pubDate>
</item>
<item>
    <title>mod_http: Fix error if 'access_control_allow_origins' is set</title>
    <link>http://hg.omfa.de/prosody-hg/log/5d5869f14c4d/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Fix error if 'access_control_allow_origins' is set<br/>
<br/>
Because it changes the type of the 'opt_origins' variable from util.set<br/>
to the internal _items table so next time an http app is added an error<br/>
&quot;attempt to call a nil value (method 'empty')&quot; is triggered.  The value<br/>
is not used anywhere else.<br/>
<br/>
Noticed when reviewing uses of the '_items' set property.<br/>
<br/>
Not reported by any users, implying this setting is rarely used.]]></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, 10 Jun 2023 12:33:58 +0200</pubDate>
</item>
<item>
    <title>mod_http: Simplify conversion of Set to Array</title>
    <link>http://hg.omfa.de/prosody-hg/log/7a6874f9fd40/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Simplify conversion of Set to Array<br/>
<br/>
Avoids the _items semi-private value, that is used everywhere for some<br/>
reason.]]></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, 10 Jun 2023 12:18:09 +0200</pubDate>
</item>
<item>
    <title>mod_http: Make RFC 7239 Forwarded opt-in for now to be safe</title>
    <link>http://hg.omfa.de/prosody-hg/log/f45a29b32f7a/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Make RFC 7239 Forwarded opt-in for now to be safe<br/>
<br/>
Supporting both methods at the same time may open to spoofing attacks,<br/>
whereby a client sends a Forwarded header that is not stripped by a<br/>
reverse proxy, leading Prosody to use that instead of the X-Forwarded-*<br/>
headers actually sent by the proxy.<br/>
<br/>
By only supporting one at a time, it can be configured to match what the<br/>
proxy uses.<br/>
<br/>
Disabled by default since implementations are sparse and X-Forwarded-*<br/>
are everywhere.]]></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, 03 Jun 2023 21:53:20 +0200</pubDate>
</item>
<item>
    <title>mod_http: Use RFC 7239 Forwarded header to find original client IP</title>
    <link>http://hg.omfa.de/prosody-hg/log/d043834f15d2/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Use RFC 7239 Forwarded header to find original client IP<br/>
<br/>
Prefer over X-Forwarded-* since it has an actual specification.<br/>
<br/>
Main practical difference is that Forwarded may carry more properties<br/>
than only the IP address since it is a structured header.<br/>
<br/>
Since we parse it into an array, it is easier to do the logical thing<br/>
and iterate backwards trough proxies until an untrusted one is<br/>
encountered. Compare the handling of X-Forwarded-For.<br/>
<br/>
The 'secure' field now accounts for the full chain of proxies, which<br/>
must be secure all the way to be considered secure.]]></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, 03 Jun 2023 17:10:04 +0200</pubDate>
</item>
<item>
    <title>mod_http: Handle bracketed IP address format from RFC 7239</title>
    <link>http://hg.omfa.de/prosody-hg/log/90394be5e6a5/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Handle bracketed IP address format from RFC 7239<br/>
<br/>
There are hints that this format might be used in X-Forwarded-For as<br/>
well, so best handle it everywhere. Strips both brackets and optional<br/>
port number.]]></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, 03 Jun 2023 17:10:12 +0200</pubDate>
</item>
<item>
    <title>mod_http: Add way to retrieve internal URL instead of external</title>
    <link>http://hg.omfa.de/prosody-hg/log/9c4dc1e6d2c9/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Add way to retrieve internal URL instead of external<br/>
<br/>
This could be of help when configuring reverse proxies, as it is the<br/>
internal URL the proxy must point at.<br/>
<br/>
Argument treated as an enum &quot;internal&quot; &quot;external&quot;(default) to allow for<br/>
future extensibility.]]></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, 24 May 2023 14:43:45 +0200</pubDate>
</item>
<item>
    <title>mod_http: Fix reliance on previous tostring() format of util.set</title>
    <link>http://hg.omfa.de/prosody-hg/log/45caa4e43775/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Fix reliance on previous tostring() format of util.set<br/>
<br/>
a863e4237b91 unintentionally changed the format of HTTP CORS headers,<br/>
which were apparently relying on the output of tostring(), which it<br/>
shouldn't have.<br/>
<br/>
Explicitly serializing it this time.]]></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, 10 Apr 2023 11:50:27 +0200</pubDate>
</item>
<item>
    <title>plugins: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/74b9e05af71e/plugins/mod_http.lua</link>
    <description><![CDATA[plugins: Prefix module imports with prosody namespace]]></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, 24 Mar 2023 13:15:28 +0100</pubDate>
</item>
<item>
    <title>mod_http: Unhook CORS handlers only if active (fixes #1801)</title>
    <link>http://hg.omfa.de/prosody-hg/log/419e55abd285/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Unhook CORS handlers only if active (fixes #1801)]]></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, 05 Mar 2023 15:45:01 +0100</pubDate>
</item>
<item>
    <title>mod_http: Allow disabling CORS in the http_cors_override option and by default</title>
    <link>http://hg.omfa.de/prosody-hg/log/24b55f0e2db9/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Allow disabling CORS in the http_cors_override option and by default<br/>
<br/>
Fixes #1779.<br/>
<br/>
Due to an oversight in the logic, if the user set 'enabled' to false in an<br/>
override, it would disable the item's requested CORS settings, but still apply<br/>
Prosody's default CORS policy.<br/>
<br/>
This change ensures that 'enabled = false' will now disable CORS entirely for<br/>
the requested item.<br/>
<br/>
Due to the new structure of the code, it was necessary to have a flag to say<br/>
whether CORS is to be applied at all. Rather than hard-coding 'true' here, I<br/>
chose to add a new option: 'http_default_cors_enabled'. This is a boolean that<br/>
allows the operator to disable Prosody's default CORS policy entirely (the one<br/>
that is used when a module or config does not override it). This makes it<br/>
easier to disable CORS and then selectively enable it only on services you<br/>
want it on.]]></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, 31 Oct 2022 14:32:02 +0000</pubDate>
</item>
<item>
    <title>mod_http (and dependent modules): Make CORS opt-in by default (fixes #1731)</title>
    <link>http://hg.omfa.de/prosody-hg/log/b33558969b3e/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http (and dependent modules): Make CORS opt-in by default (fixes #1731)<br/>
<br/>
The same-origin policy enforced by browsers is a security measure that should<br/>
only be turned off when it is safe to do so. It is safe to do so in Prosody's<br/>
default modules, but people may load third-party modules that are unsafe.<br/>
<br/>
Therefore we have flipped the default, so that modules must explicitly opt in<br/>
to having CORS headers added on their requests.]]></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, 28 Mar 2022 14:53:24 +0100</pubDate>
</item>
<item>
    <title>mod_http: Reintroduce support for disabling or limiting CORS (fixes #1730)</title>
    <link>http://hg.omfa.de/prosody-hg/log/17d87fb2312a/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Reintroduce support for disabling or limiting CORS (fixes #1730)<br/>
<br/>
This is far better than pre-0.12, because we now have a universal way to<br/>
configure and enable/disable CORS on a per-module basis.]]></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, 28 Mar 2022 14:40:21 +0100</pubDate>
</item>
<item>
    <title>mod_http: Use interface name as default default global hostname</title>
    <link>http://hg.omfa.de/prosody-hg/log/a19d435dee90/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Use interface name as default default global hostname<br/>
<br/>
http://[::]:5280/ is as sensible as http://*:5280/ so why not<br/>
<br/>
This might be a bit weird when listening no multiple interfaces but not<br/>
sure we can really do anything sensible then anyway.]]></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, 04 Feb 2022 20:11:18 +0100</pubDate>
</item>
<item>
    <title>mod_http: Use http_default_host for URLs generated in global context</title>
    <link>http://hg.omfa.de/prosody-hg/log/d41e8c7890b0/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Use http_default_host for URLs generated in global context<br/>
<br/>
This might make the global routes less confusing sometimes, or at least<br/>
valid URLs instead of http://*:5280/ which doesn't make much sense.]]></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, 04 Feb 2022 19:58:43 +0100</pubDate>
</item>
<item>
    <title>mod_http: Increase severity of loading unreachable http modules</title>
    <link>http://hg.omfa.de/prosody-hg/log/6a772a0c0dfd/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Increase severity of loading unreachable http modules<br/>
<br/>
This is either caused by an earlier failure to bind http/s ports, in<br/>
which case that should be corrected, or explicitly disbling the http/s<br/>
ports, in which case ... why enable http modules?<br/>
<br/>
Suggested by jonas’]]></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, 15 Jan 2022 17:37:07 +0100</pubDate>
</item>
<item>
    <title>mod_http: Skip querying portmanager when http_external_url when is set</title>
    <link>http://hg.omfa.de/prosody-hg/log/8b57362f1176/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Skip querying portmanager when http_external_url when is set<br/>
<br/>
When http_external_url is set then the portmanager usage only really<br/>
serves as a check of whether any http service is enabled at all.<br/>
<br/>
Should allow generating an URL from prosodyctl when http_external_url is<br/>
set.]]></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, 27 Nov 2021 12:26:15 +0100</pubDate>
</item>
<item>
    <title>mod_http: Limit unencrypted http port (5280) to loopback by default</title>
    <link>http://hg.omfa.de/prosody-hg/log/94253e02d47d/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Limit unencrypted http port (5280) to loopback by default<br/>
<br/>
Since accessing this port directly over the wider Internet is unlikely<br/>
to intentional anymore.  Most uses will likely be by reverse proxies, by<br/>
mistake or because of trouble configuring HTTPS.<br/>
<br/>
Blocking mistaken uses is just a good thing, letting users send<br/>
potentially private things unencrypted tends to be Strongly Discouraged<br/>
these days.<br/>
<br/>
Many reverse proxy setups operate over loopback, so listening there<br/>
instead of all interfaces is a net improvement.<br/>
<br/>
Improved automatic certificate location and SNI support has mostly<br/>
eliminated the need for manual certificate configuration so HTTPS should<br/>
Just Work once certificates have been provided.<br/>
<br/>
For local testing during development, connecting over loopback is likely<br/>
fine as well. When really needed, `http_interfaces` can still be set.<br/>
<br/>
Suggested by Link Mauve]]></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, 15 Jan 2022 15:13:41 +0100</pubDate>
</item>
<item>
    <title>mod_http: Clean up redirects handlers for wildcard on http module unload</title>
    <link>http://hg.omfa.de/prosody-hg/log/86e6f0810956/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Clean up redirects handlers for wildcard on http module unload<br/>
<br/>
These would previously be left behind. Probably mostly harmless except<br/>
for clogging up the `debug:events()` listing in the console.]]></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, 22 Dec 2021 19:27:03 +0100</pubDate>
</item>
<item>
    <title>Fix various spelling errors (thanks codespell)</title>
    <link>http://hg.omfa.de/prosody-hg/log/f3aee8a825cc/plugins/mod_http.lua</link>
    <description><![CDATA[Fix various spelling errors (thanks codespell)<br/>
<br/>
Also special thanks to timeless, for wordlessly reminding me to check<br/>
for typos.]]></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, 27 Jul 2021 00:13:18 +0200</pubDate>
</item>
<item>
    <title>mod_http: Consolidate handling of proxied connection details</title>
    <link>http://hg.omfa.de/prosody-hg/log/2ea70d291429/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Consolidate handling of proxied connection details<br/>
<br/>
Trying to move everything relating to proxies and X-Forwarded-Foo into a<br/>
single place.]]></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, 27 Feb 2021 21:37:56 +0100</pubDate>
</item>
<item>
    <title>net.http.server: Set request.ip so mod_http doesn't have to</title>
    <link>http://hg.omfa.de/prosody-hg/log/d30c44a829c1/plugins/mod_http.lua</link>
    <description><![CDATA[net.http.server: Set request.ip so mod_http doesn't have to<br/>
<br/>
Because it already sets request.secure, which depends on the connection,<br/>
just like the IP, so it makes sense to do both in the same place.<br/>
<br/>
Dealing with proxies can be left to mod_http for now, but maybe it could<br/>
move into some util some day?]]></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, 27 Feb 2021 21:37:16 +0100</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/1b6298e7b550/plugins/mod_http.lua</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></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, 27 Feb 2021 21:07:36 +0100</pubDate>
</item>
<item>
    <title>mod_http: Restore ip field for requests without proxies</title>
    <link>http://hg.omfa.de/prosody-hg/log/8d6e013377fa/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Restore ip field for requests without proxies<br/>
<br/>
8603011e51fe optimized out more than just the loop, leaving the .ip<br/>
field blank when the request wasn't from a proxy.]]></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, 27 Feb 2021 20:45:45 +0100</pubDate>
</item>
<item>
    <title>mod_http: Improve message for missing 'route'</title>
    <link>http://hg.omfa.de/prosody-hg/log/19a59cb7311e/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Improve message for missing 'route'<br/>
<br/>
This was the late night early draft text, thought I had amended this but<br/>
apparently I forgot.]]></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, 23 Feb 2021 16:07:41 +0100</pubDate>
</item>
<item>
    <title>mod_http: Warn if app is missing 'route'</title>
    <link>http://hg.omfa.de/prosody-hg/log/d5d895313be2/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Warn if app is missing 'route'<br/>
<br/>
Makes no sense to have a http module with no handlers<br/>
<br/>
Would have helped me when I accidentally<br/>
<br/>
module:provides(&quot;http&quot;, {<br/>
  GET = handler;<br/>
})]]></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, 21 Feb 2021 01:00:00 +0100</pubDate>
</item>
<item>
    <title>mod_http: Allow modifying CORS header list via :provides API</title>
    <link>http://hg.omfa.de/prosody-hg/log/27a22a1f141c/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Allow modifying CORS header list via :provides API<br/>
<br/>
E.g.<br/>
<br/>
module:provides(&quot;http&quot;, {<br/>
		cors = {<br/>
			headers = {<br/>
				Accept = true;<br/>
				Expect = false;<br/>
			};<br/>
		};<br/>
		route = { ... };<br/>
	});<br/>
<br/>
Case might be weird.]]></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, 30 Dec 2019 09:50:59 +0100</pubDate>
</item>
<item>
    <title>mod_http: Allow setting the CORS credentials flag via :provides API</title>
    <link>http://hg.omfa.de/prosody-hg/log/f6bb3b193277/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Allow setting the CORS credentials flag via :provides API<br/>
<br/>
E.g.<br/>
<br/>
module:provides(&quot;http&quot;, {<br/>
		cors = {<br/>
			credentials = true;<br/>
		};<br/>
		route = { ... };<br/>
	});]]></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, 30 Dec 2019 09:49:28 +0100</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/4f97b33e2596/plugins/mod_http.lua</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></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>Thu, 18 Feb 2021 14:43:45 +0100</pubDate>
</item>
<item>
    <title>mod_http: Fix trusted proxies check (thanks buildbot)</title>
    <link>http://hg.omfa.de/prosody-hg/log/e40ba204c612/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Fix trusted proxies check (thanks buildbot)<br/>
<br/>
is_trusted_proxy() is only in trunk, I dun goofed when I rebased<br/>
8603011e51fe from trunk.]]></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>Thu, 18 Feb 2021 14:34:38 +0100</pubDate>
</item>
<item>
    <title>mod_http: Optimize proxy IP check</title>
    <link>http://hg.omfa.de/prosody-hg/log/c81b6b8c6b19/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Optimize proxy IP check<br/>
<br/>
No need to do a subnet match comparison to see if two IP addresses match<br/>
exactly.]]></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>Thu, 18 Feb 2021 10:41:04 +0100</pubDate>
</item>
<item>
    <title>mod_http: Consider x-forwarded-proto from trusted proxies</title>
    <link>http://hg.omfa.de/prosody-hg/log/98b7ae7064b2/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Consider x-forwarded-proto from trusted proxies<br/>
<br/>
Should be better than setting consider_{bosh,websocket}_secure as that<br/>
may end up causing actually insecure requests to be considered secure.<br/>
<br/>
Doing it here, as with IP, should make this apply to all HTTP modules.]]></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>Thu, 18 Feb 2021 10:00:56 +0100</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/a0477656258c/plugins/mod_http.lua</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></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>Thu, 18 Feb 2021 12:02:11 +0100</pubDate>
</item>
<item>
    <title>mod_http: Skip IP resolution in non-proxied case</title>
    <link>http://hg.omfa.de/prosody-hg/log/8603011e51fe/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Skip IP resolution in non-proxied case<br/>
<br/>
Skips doing the whole get_ip_from_request() dance if the request isn't<br/>
from a proxy at all, even if the client sent the header for some reason.]]></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>Thu, 18 Feb 2021 12:00:00 +0100</pubDate>
</item>
<item>
    <title>mod_http: Silence warnings when running under prosodyctl</title>
    <link>http://hg.omfa.de/prosody-hg/log/dc41c8dfd2b1/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Silence warnings when running under prosodyctl]]></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, 11 Sep 2020 12:37:07 +0100</pubDate>
</item>
<item>
    <title>mod_http: Add way to signal that a module supports streaming uploads</title>
    <link>http://hg.omfa.de/prosody-hg/log/3e5bc34be734/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Add way to signal that a module supports streaming uploads<br/>
<br/>
Fixes #726<br/>
<br/>
API:<br/>
<br/>
module:provides(&quot;http&quot;, {<br/>
	streaming_uploads = true;<br/>
	route = {<br/>
		PUT = function (event)<br/>
			event.request.body_sink = io.tmpfile();<br/>
			return true;<br/>
		end<br/>
	}<br/>
})]]></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, 01 Aug 2020 18:41:30 +0200</pubDate>
</item>
<item>
    <title>net.http.parser: Allow specifying sink for large request bodies</title>
    <link>http://hg.omfa.de/prosody-hg/log/9673c95895fb/plugins/mod_http.lua</link>
    <description><![CDATA[net.http.parser: Allow specifying sink for large request bodies<br/>
<br/>
This enables uses such as saving uploaded files directly to a file on<br/>
disk or streaming parsing of payloads.<br/>
<br/>
See #726]]></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, 01 Aug 2020 18:41:23 +0200</pubDate>
</item>
<item>
    <title>mod_http: Support CIDR for trusted proxies.</title>
    <link>http://hg.omfa.de/prosody-hg/log/dff1aebd0f2b/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Support CIDR for trusted proxies.]]></description>
    <author>&#66;&#111;&#114;&#105;&#115;&#32;&#71;&#114;&#111;&#122;&#101;&#118;&#32;&#60;&#98;&#111;&#114;&#105;&#115;&#64;&#106;&#105;&#116;&#115;&#105;&#46;&#111;&#114;&#103;&#62;</author>
    <pubDate>Wed, 10 Jun 2020 13:15:57 -0500</pubDate>
</item>
<item>
    <title>mod_http: Tell luacheck to ignore the long comment lines</title>
    <link>http://hg.omfa.de/prosody-hg/log/22f783d80eec/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Tell luacheck to ignore the long comment lines]]></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>Thu, 14 May 2020 16:55:01 +0200</pubDate>
</item>
<item>
    <title>mod_http: Add documentation to the non-obvious logic of get_ip_from_request</title>
    <link>http://hg.omfa.de/prosody-hg/log/a83bfb266b15/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Add documentation to the non-obvious logic of get_ip_from_request<br/>
<br/>
Because docs are good.]]></description>
    <author>&#74;&#111;&#110;&#97;&#115;&#32;&#83;&#99;&#104;&#228;&#102;&#101;&#114;&#32;&#60;&#106;&#111;&#110;&#97;&#115;&#64;&#119;&#105;&#101;&#108;&#105;&#99;&#107;&#105;&#46;&#110;&#97;&#109;&#101;&#62;</author>
    <pubDate>Thu, 14 May 2020 14:59:59 +0200</pubDate>
</item>
<item>
    <title>mod_net_multiplex: Add support for using ALPN</title>
    <link>http://hg.omfa.de/prosody-hg/log/09697a673015/plugins/mod_http.lua</link>
    <description><![CDATA[mod_net_multiplex: Add support for using ALPN<br/>
<br/>
Potentially a bit more efficient since it can jump to the selected<br/>
protocol on connect instead of waiting for some data to look at.<br/>
<br/>
Adds a 'protocol' field to net providers for this purpose.]]></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, 29 Nov 2019 23:27:51 +0100</pubDate>
</item>
<item>
    <title>mod_http: Log served URLs at 'info' level</title>
    <link>http://hg.omfa.de/prosody-hg/log/5ce6cbb5ce6a/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Log served URLs at 'info' level<br/>
<br/>
These are similar to the &quot;activated service&quot; messages from portmanager<br/>
and similarily useful for the service admin to know even if they're not<br/>
debugging anything.]]></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, 29 Nov 2019 21:30:08 +0100</pubDate>
</item>
<item>
    <title>mod_http: Soften dependency on mod_http_errors</title>
    <link>http://hg.omfa.de/prosody-hg/log/abfc05495d8b/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Soften dependency on mod_http_errors<br/>
<br/>
This allows disabling mod_http_errors by adding it to<br/>
moduless_disabled and ensures mod_http loads even if the error pages<br/>
aren't as pretty.]]></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, 16 Nov 2019 16:39:45 +0100</pubDate>
</item>
<item>
    <title>mod_http: Unhook CORS related event handlers</title>
    <link>http://hg.omfa.de/prosody-hg/log/d4c538a7d655/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Unhook CORS related event handlers<br/>
<br/>
Prevents CORS related handlers from being left over on reload.<br/>
<br/>
BC: `mod_http.apps[app_name][event_name]` is now a table instead of the<br/>
main handler function.]]></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>Thu, 10 Oct 2019 20:46:27 +0200</pubDate>
</item>
<item>
    <title>mod_http: Add support for configuring CORS Access-Control-Allow-Credentials</title>
    <link>http://hg.omfa.de/prosody-hg/log/4ff2f14f9ac7/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Add support for configuring CORS Access-Control-Allow-Credentials]]></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, 11 Sep 2019 15:10:31 +0100</pubDate>
</item>
<item>
    <title>core.certmanager: Do not ask for client certificates by default</title>
    <link>http://hg.omfa.de/prosody-hg/log/6ea3cafb6ac3/plugins/mod_http.lua</link>
    <description><![CDATA[core.certmanager: Do not ask for client certificates by default<br/>
<br/>
Since it's mostly only mod_s2s that needs to request client<br/>
certificates it makes some sense to have mod_s2s ask for this, instead<br/>
of having eg mod_http ask to disable it.]]></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, 10 Mar 2019 19:58:28 +0100</pubDate>
</item>
<item>
    <title>mod_http: Determine CORS methods to whitelist from actual methods used</title>
    <link>http://hg.omfa.de/prosody-hg/log/071538a567d5/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Determine CORS methods to whitelist from actual methods used]]></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>Thu, 17 Jan 2019 20:42:38 +0100</pubDate>
</item>
<item>
    <title>mod_http: Set up to handle OPTIONS</title>
    <link>http://hg.omfa.de/prosody-hg/log/adfb29f44412/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Set up to handle OPTIONS<br/>
<br/>
Lower priority to allow http modules to handle it themselves, should<br/>
they wish to]]></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, 18 Jan 2019 02:03:40 +0100</pubDate>
</item>
<item>
    <title>mod_http: Solve CORS problems once and for all</title>
    <link>http://hg.omfa.de/prosody-hg/log/9993fd021d19/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Solve CORS problems once and for all<br/>
<br/>
This blindly allows any cross-site requests.<br/>
<br/>
Future work should add an API to allow each HTTP app some influence over<br/>
this for each HTTP path]]></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>Thu, 04 Oct 2018 12:22:12 +0200</pubDate>
</item>
<item>
    <title>mod_http: Move normalize_path to util.http</title>
    <link>http://hg.omfa.de/prosody-hg/log/cfbea3064aa9/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Move normalize_path to util.http]]></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, 14 Oct 2018 14:31:59 +0200</pubDate>
</item>
<item>
    <title>Merge 0.10-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/3456496d5218/plugins/mod_http.lua</link>
    <description><![CDATA[Merge 0.10-&gt;trunk]]></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, 14 Oct 2018 14:19:21 +0200</pubDate>
</item>
<item>
    <title>mod_http: Make sure path from http_external_url always ends with a slash (fixes #1183)</title>
    <link>http://hg.omfa.de/prosody-hg/log/09e7b0048ebe/plugins/mod_http.lua</link>
    <description><![CDATA[mod_http: Make sure path from http_external_url always ends with a slash (fixes #1183)]]></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, 14 Oct 2018 14:01:57 +0200</pubDate>
</item>

  </channel>
</rss>
