We must not clobber already-parsed per-listener options when
handling inherited sockets which are well-known.  Unfortunately,
this isn't easy to test in a non-intrusive way for regular
users.
---
 lib/PublicInbox/Daemon.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index 67b26d2e..86234771 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -261,10 +261,10 @@ EOF
        for my $sockname (@inherited_names) {
                $sockname =~ /:([0-9]+)\z/ or next;
                if (my $scheme = $KNOWN_TLS{$1}) {
-                       $xnetd->{$sockname} = load_mod($scheme);
+                       $xnetd->{$sockname} //= load_mod($scheme);
                        $tls_opt{"$scheme://$sockname"} ||= accept_tls_opt('');
                } elsif (($scheme = $KNOWN_STARTTLS{$1})) {
-                       $xnetd->{$sockname} = load_mod($scheme);
+                       $xnetd->{$sockname} //= load_mod($scheme);
                        $tls_opt{"$scheme://$sockname"} ||= accept_tls_opt('');
                        $tls_opt{''} ||= accept_tls_opt('');
                }

Reply via email to