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 $@;
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('');
}
while (my ($k, $v) = each %tls_opt) {
my $l = $k;
$l =~ s!\A([^:]+)://!!;
- my $scheme = $1;
+ my $scheme = $1 // '';
my $xn = $xnetd->{$l} // $xnetd->{''};
- if ($scheme =~ s!\A(?:https|imaps|nntps)!!) {
+ if ($scheme =~ m!\A(?:https|imaps|nntps)!) {
$post_accept{$l} = tls_start_cb($v, $xn->{post_accept});
} elsif ($xn->{tlsd}) { # STARTTLS, $k eq '' is OK
$xn->{tlsd}->{accept_tls} = $v;