<?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: util/startup.lua history</title>
    <description>util/startup.lua revision history</description>
    <item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/2b13c24ba2d6/util/startup.lua</link>
    <description><![CDATA[Merge 13.0-&gt;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>Thu, 28 May 2026 17:26:08 +0100</pubDate>
</item>
<item>
    <title>util.startup: Always apply umask (thanks Max Hearnden)</title>
    <link>http://hg.omfa.de/prosody-hg/log/a874c3f4570a/util/startup.lua</link>
    <description><![CDATA[util.startup: Always apply umask (thanks Max Hearnden)<br/>
<br/>
Commit c673ff1075bd removed mod_posix, and moved functionality into<br/>
util.startup, including applying a secure umask at runtime. However, the<br/>
new function was not called from the startup sequence, leading Prosody to run<br/>
with whatever umask it inherited from the environment.<br/>
<br/>
Prosody Debian packages ship with a secure umask 027 in the systemd unit file<br/>
for the prosody service, so Debian systems using systemd are not affected.<br/>
<br/>
prosodyctl calls the switch_user() function during startup, which would set<br/>
the umask, so prosodyctl commands which created files were unaffected.<br/>
<br/>
This change makes both prosody and prosodyctl unconditionally set a secure<br/>
umask during the startup process.]]></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, 28 May 2026 17:25:46 +0100</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/c1469296190d/util/startup.lua</link>
    <description><![CDATA[Merge 13.0-&gt;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, 17 Apr 2026 14:35:32 +0100</pubDate>
</item>
<item>
    <title>util.startup: Improve error message when failing to load config file</title>
    <link>http://hg.omfa.de/prosody-hg/log/a957cd3ea4eb/util/startup.lua</link>
    <description><![CDATA[util.startup: Improve error message when failing to load config file<br/>
<br/>
The current error text always implied that the file is missing, but it could<br/>
also be a permissions issue, or something else.<br/>
<br/>
Now it will handle those two cases, and show the error from the system<br/>
otherwise.]]></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, 16 Apr 2026 18:50:23 +0100</pubDate>
</item>
<item>
    <title>util.startup: Add another bucket for DNS lookup timings</title>
    <link>http://hg.omfa.de/prosody-hg/log/a8aa17293d22/util/startup.lua</link>
    <description><![CDATA[util.startup: Add another bucket for DNS lookup timings<br/>
<br/>
Observed larger numbers than expected in the 4..Inf range, want more<br/>
details.]]></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, 28 Oct 2025 19:15:51 +0100</pubDate>
</item>
<item>
    <title>util.startup: Add metric bucket for zero DNS records</title>
    <link>http://hg.omfa.de/prosody-hg/log/260a6feebe5f/util/startup.lua</link>
    <description><![CDATA[util.startup: Add metric bucket for zero DNS records<br/>
<br/>
Otherwise hard to tell the difference between 0 and 1 :)]]></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, 18 Oct 2025 00:53:43 +0200</pubDate>
</item>
<item>
    <title>util.startup: Fix error in DNS instrumentation</title>
    <link>http://hg.omfa.de/prosody-hg/log/ccbc4a46f42d/util/startup.lua</link>
    <description><![CDATA[util.startup: Fix error in DNS instrumentation<br/>
<br/>
&gt; attempt to call a nil value (method 'add')]]></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, 09 Oct 2025 13:45:52 +0200</pubDate>
</item>
<item>
    <title>net.unbound: Count number of DNS response records</title>
    <link>http://hg.omfa.de/prosody-hg/log/350e16e5f9aa/util/startup.lua</link>
    <description><![CDATA[net.unbound: Count number of DNS response records<br/>
<br/>
In order to gather stats on how wide-spread various record types are,<br/>
and how many records per rrset are common.]]></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 Oct 2025 23:50:12 +0200</pubDate>
</item>
<item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/d8c001271669/util/startup.lua</link>
    <description><![CDATA[Merge 13.0-&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>Tue, 07 Oct 2025 19:09:25 +0200</pubDate>
</item>
<item>
    <title>util.startup: Inform process manager about failure to reload config</title>
    <link>http://hg.omfa.de/prosody-hg/log/2041c347c178/util/startup.lua</link>
    <description><![CDATA[util.startup: Inform process manager about failure to reload config<br/>
<br/>
Ref https://www.freedesktop.org/software/systemd/man/249/sd_notify.html<br/>
&gt; Note that a service that sends this notification must also send a<br/>
&gt; &quot;READY=1&quot; notification when it completed reloading its configuration.<br/>
<br/>
However no word on how to handle errors while doing that, such as<br/>
configuration syntax errors, but communicating this via STATUS= makes<br/>
some sense.<br/>
<br/>
Fixes #1970]]></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, 06 Oct 2025 01:22:40 +0200</pubDate>
</item>
<item>
    <title>util.startup: Add Lua 5.5 GC defaults</title>
    <link>http://hg.omfa.de/prosody-hg/log/203a0b5ade55/util/startup.lua</link>
    <description><![CDATA[util.startup: Add Lua 5.5 GC defaults<br/>
<br/>
~$ lua5.5<br/>
Lua 5.5.0  Copyright (C) 1994-2025 Lua.org, PUC-Rio<br/>
&gt; collectgarbage(&quot;param&quot;, &quot;minormul&quot;)<br/>
20<br/>
&gt; collectgarbage(&quot;param&quot;, &quot;majorminor&quot;)<br/>
50<br/>
&gt; collectgarbage(&quot;param&quot;, &quot;minormajor&quot;)<br/>
68]]></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, 06 Aug 2025 16:48:35 +0200</pubDate>
</item>
<item>
    <title>core.configmanager: Remove dependency on 'prosody' global for Credential</title>
    <link>http://hg.omfa.de/prosody-hg/log/0c7e11c11968/util/startup.lua</link>
    <description><![CDATA[core.configmanager: Remove dependency on 'prosody' global for Credential<br/>
<br/>
Minimizing dependencies on global state is nice, as it makes using<br/>
configmanager outside of Prosody easier.]]></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, 22 Feb 2025 00:00:41 +0100</pubDate>
</item>
<item>
    <title>net.adns: Collect DNS lookup timing metrics</title>
    <link>http://hg.omfa.de/prosody-hg/log/5abdcad8c2e0/util/startup.lua</link>
    <description><![CDATA[net.adns: Collect DNS lookup timing metrics<br/>
<br/>
Nice to have this in OpenMetricts instead of debug logs]]></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, 07 Feb 2025 09:22:52 +0100</pubDate>
</item>
<item>
    <title>util.startup: Drop mention of systemd from notification socket handling</title>
    <link>http://hg.omfa.de/prosody-hg/log/94f77a1994dc/util/startup.lua</link>
    <description><![CDATA[util.startup: Drop mention of systemd from notification socket handling<br/>
<br/>
This does not have to be specific to systemd]]></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 Feb 2025 20:42:59 +0100</pubDate>
</item>
<item>
    <title>util.startup: Rename credentials path variable too</title>
    <link>http://hg.omfa.de/prosody-hg/log/8228f5094f7a/util/startup.lua</link>
    <description><![CDATA[util.startup: Rename credentials path variable too]]></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, 18 Jan 2025 13:29:59 +0100</pubDate>
</item>
<item>
    <title>core.configmanager: Add function for getting secrets from separate files</title>
    <link>http://hg.omfa.de/prosody-hg/log/2db7b3b65363/util/startup.lua</link>
    <description><![CDATA[core.configmanager: Add function for getting secrets from separate files<br/>
<br/>
Idea is to enable easily retrieving of secret values from files outside<br/>
of the config, e.g. via the method used by systemd credentials.<br/>
<br/>
CREDENTIALS_DIRECTORY is expected to be set by the process manager<br/>
invoking Prosody, so being unset and unavailable from prosodyctl is<br/>
going to be normal and a warning is reported in that case. Care will<br/>
have to be taken to make it clear that prosodyctl check will not work<br/>
with such values. An error is thrown if the directory is unavailable<br/>
when running under Prosody.]]></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, 16 Jan 2025 15:21:34 +0100</pubDate>
</item>
<item>
    <title>util.startup: Bump expected util.pposix version</title>
    <link>http://hg.omfa.de/prosody-hg/log/a350f6332bd8/util/startup.lua</link>
    <description><![CDATA[util.startup: Bump expected util.pposix version<br/>
<br/>
Otherwise Prosody refuses to start.]]></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 2024 14:35:11 +0100</pubDate>
</item>
<item>
    <title>util.startup: Fix notifying config-reload to systemd</title>
    <link>http://hg.omfa.de/prosody-hg/log/e8ac3ce3238e/util/startup.lua</link>
    <description><![CDATA[util.startup: Fix notifying config-reload to systemd<br/>
<br/>
Does this event name seem backwards to anyone else?]]></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, 08 Apr 2024 09:29:58 +0200</pubDate>
</item>
<item>
    <title>util.startup: Support systemd Type=notify service type</title>
    <link>http://hg.omfa.de/prosody-hg/log/afad3b2725bf/util/startup.lua</link>
    <description><![CDATA[util.startup: Support systemd Type=notify service type<br/>
<br/>
This lets Prosody report its lifecycle status to systemd, so it knows<br/>
when Prosody has completed its startup, when it's reloading and shutting<br/>
down.<br/>
<br/>
Both Type=notify and Type=notify-reload is supported<br/>
<br/>
Example systemd .service configuration snippet:<br/>
<br/>
[Service]<br/>
Type=notify]]></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 Apr 2024 19:00:27 +0200</pubDate>
</item>
<item>
    <title>util.startup: Fix exiting on pidfile trouble</title>
    <link>http://hg.omfa.de/prosody-hg/log/c2a476f4712a/util/startup.lua</link>
    <description><![CDATA[util.startup: Fix exiting on pidfile trouble<br/>
<br/>
prosody.shutdown() relies on prosody.main_thread, which has not been set<br/>
yet at this point.<br/>
<br/>
Doing a clean shutdown might actually be harmful in case it tears down<br/>
things set up by the conflicting Prosody, such as the very pidfile we<br/>
were looking at.<br/>
<br/>
Thanks again SigmaTel71 for noticing]]></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, 27 Mar 2024 19:33:11 +0100</pubDate>
</item>
<item>
    <title>util.startup: Abort before initialization of logging when started as root</title>
    <link>http://hg.omfa.de/prosody-hg/log/2dbc169aae6a/util/startup.lua</link>
    <description><![CDATA[util.startup: Abort before initialization of logging when started as root<br/>
<br/>
Prevents creation of log files owned by the root user which could be<br/>
inaccessible once started correctly.]]></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, 24 Mar 2024 21:32:00 +0100</pubDate>
</item>
<item>
    <title>util.startup: Don't use not yet existent shutdown procedure when started as root (thanks SigmaTel71)</title>
    <link>http://hg.omfa.de/prosody-hg/log/3ce550ce44ce/util/startup.lua</link>
    <description><![CDATA[util.startup: Don't use not yet existent shutdown procedure when started as root (thanks SigmaTel71)]]></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, 24 Mar 2024 21:31:47 +0100</pubDate>
</item>
<item>
    <title>util.startup: Check root after detecting platform and reading config (thanks SigmaTel71)</title>
    <link>http://hg.omfa.de/prosody-hg/log/720aed1f5cf2/util/startup.lua</link>
    <description><![CDATA[util.startup: Check root after detecting platform and reading config (thanks SigmaTel71)<br/>
<br/>
Ensures that startup.detect_platform() runs so know whether to use the<br/>
POSIX method of checking the current user or something else. Also after<br/>
reading the config so we know whether the root override setting is 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>Sun, 24 Mar 2024 20:39:42 +0100</pubDate>
</item>
<item>
    <title>mod_posix: Move everything to util.startup</title>
    <link>http://hg.omfa.de/prosody-hg/log/c673ff1075bd/util/startup.lua</link>
    <description><![CDATA[mod_posix: Move everything to util.startup<br/>
<br/>
This allows greater control over the order of events.<br/>
<br/>
Notably, the internal ordering between daemonization, initialization of<br/>
libunbound and setup of signal handling is sensitive.<br/>
<br/>
libunbound starts a separate thread for processing DNS requests.<br/>
If this thread is started before signal handling has been set up, it<br/>
will not inherit the signal handlers and instead behave as it would have<br/>
before signal handlers were set up, i.e. cause the whole process to<br/>
immediately exit.<br/>
<br/>
libunbound is usually initialized on the first DNS request, usually<br/>
triggered by an outgoing s2s connection attempt.<br/>
<br/>
If daemonization happens before signals have been set up, signals may<br/>
not be processed at all.]]></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, 23 Mar 2024 20:48:19 +0100</pubDate>
</item>
<item>
    <title>util.startup: Back out 598df17b8ebb</title>
    <link>http://hg.omfa.de/prosody-hg/log/790f60c0843b/util/startup.lua</link>
    <description><![CDATA[util.startup: Back out 598df17b8ebb<br/>
<br/>
Broke signal handling again, such that an early s2s connection results<br/>
in libunbound catching signals and getting Prosody killed on e.g. SIGHUP<br/>
<br/>
This returns to the situation where prosody --daemonize does not respond<br/>
to signals.]]></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 2024 15:56:01 +0100</pubDate>
</item>
<item>
    <title>util.startup: Hook signals after daemonization</title>
    <link>http://hg.omfa.de/prosody-hg/log/598df17b8ebb/util/startup.lua</link>
    <description><![CDATA[util.startup: Hook signals after daemonization<br/>
<br/>
signalfds stop working with epoll after forking<br/>
<br/>
hooking signals later should not affect 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>Wed, 06 Mar 2024 20:43:25 +0100</pubDate>
</item>
<item>
    <title>util.startup: Fix firing of USR1/2 events</title>
    <link>http://hg.omfa.de/prosody-hg/log/b0c27628f588/util/startup.lua</link>
    <description><![CDATA[util.startup: Fix firing of USR1/2 events]]></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, 02 Mar 2024 14:08:47 +0100</pubDate>
</item>
<item>
    <title>mod_posix: Move POSIX signal handling into util.startup to avoid race</title>
    <link>http://hg.omfa.de/prosody-hg/log/69faf3552d52/util/startup.lua</link>
    <description><![CDATA[mod_posix: Move POSIX signal handling into util.startup to avoid race<br/>
<br/>
When libunbound is initialized, it spawns a thread to work in.<br/>
In case a module initializes libunbound, e.g. by triggering a s2s<br/>
connection, Prosody would not handle signals, instead immediately quit<br/>
on e.g. the reload (SIGHUP) signal. Likely because the libunbound thread<br/>
would not have inherited the signal mask from the main Prosody thread.<br/>
<br/>
Thanks Menel, riau and franck-x for reporting and help narrowing down]]></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, 02 Mar 2024 13:23:24 +0100</pubDate>
</item>
<item>
    <title>util.startup: Expose core.features.available as prosody.features</title>
    <link>http://hg.omfa.de/prosody-hg/log/0efb53a0852e/util/startup.lua</link>
    <description><![CDATA[util.startup: Expose core.features.available as prosody.features<br/>
<br/>
for convenience.]]></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, 22 Feb 2024 09:53:02 +0000</pubDate>
</item>
<item>
    <title>util.startup: Use prosody. module namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/d0a9b631a937/util/startup.lua</link>
    <description><![CDATA[util.startup: Use prosody. module namespace<br/>
<br/>
Maybe we need some sort of lint for this?]]></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 Nov 2023 13:41:21 +0100</pubDate>
</item>
<item>
    <title>util.startup: Attempt to bring some order to startup/shutdown with util.fsm</title>
    <link>http://hg.omfa.de/prosody-hg/log/ab36edc7c217/util/startup.lua</link>
    <description><![CDATA[util.startup: Attempt to bring some order to startup/shutdown with util.fsm]]></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, 07 Nov 2023 12:12:18 +0000</pubDate>
</item>
<item>
    <title>renamening: Fix newly added imports to use the new namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/9c13c11b199d/util/startup.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>util.startup: Record current version in a metric</title>
    <link>http://hg.omfa.de/prosody-hg/log/be4058bb5a7e/util/startup.lua</link>
    <description><![CDATA[util.startup: Record current version in a metric<br/>
<br/>
Useful to have this info available when juggling metrics, e.g. to<br/>
see if things changed between versions.]]></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, 31 May 2023 01:14:59 +0200</pubDate>
</item>
<item>
    <title>util.startup: Remove componentmanager backwards compatibility</title>
    <link>http://hg.omfa.de/prosody-hg/log/df57c62165fc/util/startup.lua</link>
    <description><![CDATA[util.startup: Remove componentmanager backwards compatibility<br/>
<br/>
Module was removed in 0.8.0 in c52b06de9b27]]></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, 31 May 2023 01:07:27 +0200</pubDate>
</item>
<item>
    <title>util.startup: Add prosody.started promise to easily execute code after startup</title>
    <link>http://hg.omfa.de/prosody-hg/log/06453c564141/util/startup.lua</link>
    <description><![CDATA[util.startup: Add prosody.started promise to easily execute code after startup<br/>
<br/>
To avoid a race where server-started fires before the promise function body is<br/>
run (on next tick), I moved server-started to fire on the next tick, which<br/>
seems sensible anyway.<br/>
<br/>
Errors are logged, I'm not sure if we ought to be doing something more here.<br/>
I'm sure we'll find out.]]></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, 01 Apr 2023 11:56:38 +0100</pubDate>
</item>
<item>
    <title>util.startup: Tweak function string representation</title>
    <link>http://hg.omfa.de/prosody-hg/log/fc0109c59807/util/startup.lua</link>
    <description><![CDATA[util.startup: Tweak function string representation<br/>
<br/>
Mostly in order to avoid triggering the XML syntax highlighting in the<br/>
console logger.]]></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, 26 Mar 2023 00:11:42 +0100</pubDate>
</item>
<item>
    <title>util: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/d10957394a3c/util/startup.lua</link>
    <description><![CDATA[util: 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, 17 Mar 2023 16:23:16 +0100</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/9f9633364044/util/startup.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>Sun, 22 Jan 2023 15:43:44 +0100</pubDate>
</item>
<item>
    <title>util.startup: Close state on exit to ensure GC finalizers are called</title>
    <link>http://hg.omfa.de/prosody-hg/log/891edd1ebde6/util/startup.lua</link>
    <description><![CDATA[util.startup: Close state on exit to ensure GC finalizers are called<br/>
<br/>
Ensures a last round of garbage collection and that finalizers are<br/>
called. Fixes things like proper closing of SQLite3 state.<br/>
<br/>
There are more calls to os.exit() but most of them exit with an error or<br/>
in a case where a final GC sweep might not matter as much.<br/>
<br/>
It would be nice if this was the default.<br/>
<br/>
Calling util.statup.exit() everywhere may be sensible, but would be more<br/>
involved, requiring imports 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>Sun, 22 Jan 2023 14:45:47 +0100</pubDate>
</item>
<item>
    <title>util.mathcompat: Module to ease reuse of math.type()</title>
    <link>http://hg.omfa.de/prosody-hg/log/8815d3090928/util/startup.lua</link>
    <description><![CDATA[util.mathcompat: Module to ease reuse of math.type()<br/>
<br/>
Mostly to ensure it is available during tests, as util.startup is not<br/>
invoked there]]></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, 20 Oct 2022 16:50:12 +0200</pubDate>
</item>
<item>
    <title>util.startup: Provide a common Lua 5.3+ math.type() for Lua 5.2</title>
    <link>http://hg.omfa.de/prosody-hg/log/22066b02887f/util/startup.lua</link>
    <description><![CDATA[util.startup: Provide a common Lua 5.3+ math.type() for Lua 5.2<br/>
<br/>
Code deduplication]]></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, 19 Oct 2022 16:25:05 +0200</pubDate>
</item>
<item>
    <title>util.startup: Ensure import() is available in prosodyctl (thanks keyzer)</title>
    <link>http://hg.omfa.de/prosody-hg/log/f0474d40364c/util/startup.lua</link>
    <description><![CDATA[util.startup: Ensure import() is available in prosodyctl (thanks keyzer)<br/>
<br/>
Fixes error in mod_authz_internal due to import() being unavailable as<br/>
it was only loaded in Prosody proper]]></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, 20 Oct 2022 16:31:18 +0200</pubDate>
</item>
<item>
    <title>util.startup: Fix async waiting for last shutdown steps</title>
    <link>http://hg.omfa.de/prosody-hg/log/cc0ec0277813/util/startup.lua</link>
    <description><![CDATA[util.startup: Fix async waiting for last shutdown steps<br/>
<br/>
Observed problem: When shutting down prosody would immediately exit<br/>
after waiting for s2s connections to close, skipping the last cleanup<br/>
events and reporting the exit reason and code.<br/>
<br/>
This happens because prosody.main_thread is in a waiting state and<br/>
queuing startup.shutdown is dispatched trough the main loop via<br/>
nexttick, but since the main loop was no longer running at that point it<br/>
proceeded to the end of the prosody script and exited there.]]></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, 14 Jun 2022 16:28:49 +0200</pubDate>
</item>
<item>
    <title>util.startup: Show error for unrecognized arguments passed to 'prosody' (fixes #1722)</title>
    <link>http://hg.omfa.de/prosody-hg/log/3ae9299d61d7/util/startup.lua</link>
    <description><![CDATA[util.startup: Show error for unrecognized arguments passed to 'prosody' (fixes #1722)]]></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, 21 Mar 2022 10:06:48 +0000</pubDate>
</item>
<item>
    <title>prosody: Move last cleanup and shutdown code into util.startup</title>
    <link>http://hg.omfa.de/prosody-hg/log/81f147ddc4ab/util/startup.lua</link>
    <description><![CDATA[prosody: Move last cleanup and shutdown code into util.startup]]></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, 01 Jan 2019 16:42:52 +0100</pubDate>
</item>
<item>
    <title>util.startup: Enable DANE in http client library with use_dane</title>
    <link>http://hg.omfa.de/prosody-hg/log/10447f940fec/util/startup.lua</link>
    <description><![CDATA[util.startup: Enable DANE in http client library with use_dane]]></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, 05 Feb 2022 01:36:10 +0100</pubDate>
</item>
<item>
    <title>util.startup: Teach prosodyctl to be completely --silent</title>
    <link>http://hg.omfa.de/prosody-hg/log/858d40d675ee/util/startup.lua</link>
    <description><![CDATA[util.startup: Teach prosodyctl to be completely --silent]]></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, 28 Nov 2021 23:07:51 +0100</pubDate>
</item>
<item>
    <title>util.startup: Teach prosodyctl to be --quiet as complement to --verbose</title>
    <link>http://hg.omfa.de/prosody-hg/log/73ecfe811526/util/startup.lua</link>
    <description><![CDATA[util.startup: Teach prosodyctl to be --quiet as complement to --verbose<br/>
<br/>
Original motivation was tiresome warnings about Lua 5.4 not being<br/>
supported yet.<br/>
<br/>
Can still be handy to tweak log level, e.g. to prevent logging to<br/>
interfere with command output.]]></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, 28 Nov 2021 23:07:35 +0100</pubDate>
</item>
<item>
    <title>util.startup: Allow supplying an argument parsing settings</title>
    <link>http://hg.omfa.de/prosody-hg/log/ac654fb19203/util/startup.lua</link>
    <description><![CDATA[util.startup: Allow supplying an argument parsing settings<br/>
<br/>
The 'prosody' global is not global this early so there was no way to<br/>
override the process type field or argument parsing settings from<br/>
outside, e.g. from the migrator.]]></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, 09 Jan 2022 15:16:09 +0100</pubDate>
</item>
<item>
    <title>util.startup: Initialize util.async at startup</title>
    <link>http://hg.omfa.de/prosody-hg/log/f5c6be4a3ecc/util/startup.lua</link>
    <description><![CDATA[util.startup: Initialize util.async at startup]]></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, 29 Nov 2021 14:16:20 +0000</pubDate>
</item>
<item>
    <title>util.startup: Integrate util.promise with net.server main loop</title>
    <link>http://hg.omfa.de/prosody-hg/log/dca75cc6fc5a/util/startup.lua</link>
    <description><![CDATA[util.startup: Integrate util.promise with net.server main loop]]></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, 05 Jan 2019 07:15:33 +0100</pubDate>
</item>
<item>
    <title>util.startup: Understand -h, -? as --help in prosodyctl but ignore</title>
    <link>http://hg.omfa.de/prosody-hg/log/1d1ed2be3491/util/startup.lua</link>
    <description><![CDATA[util.startup: Understand -h, -? as --help in prosodyctl but ignore<br/>
<br/>
prosodyctl -h showing an error was not very helpful, especially since<br/>
prosodyctl shows its help for any unknown (or none) command.]]></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, 25 Oct 2021 15:47:18 +0200</pubDate>
</item>
<item>
    <title>util.startup: Show brief usage on `prosody -h|-?|--help`</title>
    <link>http://hg.omfa.de/prosody-hg/log/d52a73425eba/util/startup.lua</link>
    <description><![CDATA[util.startup: Show brief usage on `prosody -h|-?|--help`<br/>
<br/>
Seems more suitable than asking if prosodyctl was meant to be used, or<br/>
going ahead and starting.]]></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, 25 Oct 2021 15:46:01 +0200</pubDate>
</item>
<item>
    <title>util.startup: Skip config readability check in migrator (thanks eTaurus)</title>
    <link>http://hg.omfa.de/prosody-hg/log/515a89dee6ae/util/startup.lua</link>
    <description><![CDATA[util.startup: Skip config readability check in migrator (thanks eTaurus)<br/>
<br/>
This field is empty for reasons when invoked by prosody-migrator, which<br/>
threw an error:<br/>
&gt; bad argument #1 to 'open' (string expected, got nil)]]></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, 23 Oct 2021 22:24:59 +0200</pubDate>
</item>
<item>
    <title>util.startup: Only ask if 'prosodyctl' was meant instead of 'prosody' (fix #1692)</title>
    <link>http://hg.omfa.de/prosody-hg/log/2b3ce80ffece/util/startup.lua</link>
    <description><![CDATA[util.startup: Only ask if 'prosodyctl' was meant instead of 'prosody' (fix #1692)]]></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, 12 Oct 2021 15:00:15 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/6425dfa3de45/util/startup.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>Tue, 12 Oct 2021 14:59:18 +0200</pubDate>
</item>
<item>
    <title>util.startup: Correctly point out unknown short param (fixes #1691)</title>
    <link>http://hg.omfa.de/prosody-hg/log/0f786c4a2cb2/util/startup.lua</link>
    <description><![CDATA[util.startup: Correctly point out unknown short param (fixes #1691)]]></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, 12 Oct 2021 14:53:45 +0200</pubDate>
</item>
<item>
    <title>util.startup: Allow separate command line argument settings for prosody and prosodyctl</title>
    <link>http://hg.omfa.de/prosody-hg/log/4fad0ca42f66/util/startup.lua</link>
    <description><![CDATA[util.startup: Allow separate command line argument settings for prosody and prosodyctl<br/>
<br/>
Makes it clearer that prosody does not take -v atm, as well as how<br/>
prosodyctl does not take the demonization flags.]]></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, 30 Sep 2021 17:47:00 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add support for -v/--verbose to enable debug logging</title>
    <link>http://hg.omfa.de/prosody-hg/log/024ac556e907/util/startup.lua</link>
    <description><![CDATA[prosodyctl: Add support for -v/--verbose to enable debug logging<br/>
<br/>
More convenient than the environment variable.]]></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, 30 Sep 2021 17:45:43 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/3bbb1af92514/util/startup.lua</link>
    <description><![CDATA[Merge 0.11-&gt;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>Thu, 13 May 2021 11:17:13 +0100</pubDate>
</item>

  </channel>
</rss>
