about summary refs log tree commit homepage
path: root/lib/PublicInbox/Daemon.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2022-07-20 01:22:04 +0000
committerEric Wong <e@80x24.org>2022-07-20 03:54:29 +0000
commit08ac230c500560d583362c75583a8acb03c14bf0 (patch)
tree42b78f3c87523c9a69816b954e28194e39d24405 /lib/PublicInbox/Daemon.pm
parented94a9ec2375aa8c159aca7c43f23688bcb8e05d (diff)
downloadpublic-inbox-08ac230c500560d583362c75583a8acb03c14bf0.tar.gz
When inheriting well-known ports from systemd (or similar),
we can auto-load the proper *D.pm file based on the port number
without requiring command-line args.

load_mod also gets fixed to use its argument, instead of implicit
$1 since that won't work for our well-known.
Diffstat (limited to 'lib/PublicInbox/Daemon.pm')
-rw-r--r--lib/PublicInbox/Daemon.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index d08ce0f9..75719c34 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -77,7 +77,7 @@ sub accept_tls_opt ($) {
 
 sub load_mod ($) {
         my ($scheme) = @_;
-        my $modc = "PublicInbox::\U$1";
+        my $modc = "PublicInbox::\U$scheme";
         my $mod = $modc.'D';
         eval "require $mod"; # IMAPD|HTTPD|NNTPD|POP3D
         die $@ if $@;
@@ -204,8 +204,10 @@ EOF
         for my $sockname (@inherited_names) {
                 $sockname =~ /:([0-9]+)\z/ or next;
                 if (my $scheme = $KNOWN_TLS{$1}) {
+                        $xnetd->{$sockname} = load_mod(substr($scheme, 0, -1));
                         $tls_opt{"$scheme://$sockname"} ||= accept_tls_opt('');
                 } elsif (($scheme = $KNOWN_STARTTLS{$1})) {
+                        $xnetd->{$sockname} = load_mod($scheme);
                         next if $tls_opt{"$scheme://$sockname"};
                         $tls_opt{''} ||= accept_tls_opt('');
                 }