From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH] netd: load modules for well-known ports
Date: Wed, 20 Jul 2022 01:22:04 +0000 [thread overview]
Message-ID: <20220720012204.18260-1-e@80x24.org> (raw)
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.
---
This made setting up public-inbox-netd much easier on
public-inbox.org (serving IMAP/NNTP/POP3 and TLS variants,
along with .onion sockets).
Non-standard ports (.onion sockets) still require CLI args.
lib/PublicInbox/Daemon.pm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index 8b4c3c70..fbce9154 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('');
}
reply other threads:[~2022-07-20 1:22 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://public-inbox.org/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220720012204.18260-1-e@80x24.org \
--to=e@80x24.org \
--cc=meta@public-inbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).