my ($self, $pfx) = @_;
my $ibx = {};
- foreach my $k (qw(inboxdir filter newsgroup
- watch httpbackendmax
- replyto feedmax nntpserver
- indexlevel indexsequentialshard)) {
+ for my $k (qw(watch nntpserver)) {
my $v = $self->{"$pfx.$k"};
$ibx->{$k} = $v if defined $v;
}
+ for my $k (qw(filter inboxdir newsgroup replyto httpbackendmax feedmax
+ indexlevel indexsequentialshard)) {
+ if (defined(my $v = $self->{"$pfx.$k"})) {
+ if (ref($v) eq 'ARRAY') {
+ warn <<EOF;
+W: $pfx.$k has multiple values, only using `$v->[-1]'
+EOF
+ $ibx->{$k} = $v->[-1];
+ } else {
+ $ibx->{$k} = $v;
+ }
+ }
+ }
# backwards compatibility:
$ibx->{inboxdir} //= $self->{"$pfx.mainrepo"};
$self->{-no_obfuscate}->{$lc_addr} = 1;
}
if (my $listids = $ibx->{listid}) {
+ # RFC2919 section 6 stipulates "case insensitive equality"
foreach my $list_id (@$listids) {
- $self->{-by_list_id}->{$list_id} = $ibx;
+ $self->{-by_list_id}->{lc($list_id)} = $ibx;
}
}
if (my $ng = $ibx->{newsgroup}) {