From cb75a7aeb9fd530b1816b760c8c7f6cfb428c8e3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 1 Dec 2020 01:35:46 +0000 Subject: nntpd: move {newsgroup} name check to config With 50K newsgroups in the config file, this doesn't slow down `PublicInbox::Config->new->fill_all' any measurable amount on my busy old workstation. This should prevent invalid newsgroup names from getting into into extindex and catch user errors sooner, rather than later. v2: - delete {newsgroup} if invalid to avoid ->nntp_url link - simplify -imapd and explain remaining check --- lib/PublicInbox/NNTPD.pm | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'lib/PublicInbox/NNTPD.pm') diff --git a/lib/PublicInbox/NNTPD.pm b/lib/PublicInbox/NNTPD.pm index 5e287857..967850e9 100644 --- a/lib/PublicInbox/NNTPD.pm +++ b/lib/PublicInbox/NNTPD.pm @@ -38,20 +38,8 @@ sub refresh_groups { my $groups = $pi_config->{-by_newsgroup}; # filled during each_inbox $pi_config->each_inbox(sub { my ($ibx) = @_; - my $ngname = $ibx->{newsgroup} or return; - if (ref $ngname) { - warn 'multiple newsgroups not supported: '. - join(', ', @$ngname). "\n"; - # Newsgroup name needs to be compatible with RFC 3977 - # wildmat-exact and RFC 3501 (IMAP) ATOM-CHAR. - # Leave out a few chars likely to cause problems or conflicts: - # '|', '<', '>', ';', '#', '$', '&', - } elsif ($ngname =~ m![^A-Za-z0-9/_\.\-\~\@\+\=:]!) { - warn "newsgroup name invalid: `$ngname'\n"; - delete $groups->{$ngname}; - } elsif ($ibx->nntp_usable) { - # Only valid if msgmap and search works - + my $ngname = $ibx->{newsgroup} // return; + if ($ibx->nntp_usable) { # only valid if msgmap and over works # preload to avoid fragmentation: $ibx->description; $ibx->base_url; -- cgit v1.2.3-24-ge0c7