X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FNNTPD.pm;h=1e4ddd18430e5d4c904ad556b8f97f7f0f0f7b45;hb=af0b0fb7a454470a32c452119d0392e0dedb3fe1;hp=953228d0287823ea691e461fb5fae5b86f8c6e99;hpb=0d38f65c490466837ae091afa7a7b6f59d04ce7c;p=public-inbox.git diff --git a/lib/PublicInbox/NNTPD.pm b/lib/PublicInbox/NNTPD.pm index 953228d0..1e4ddd18 100644 --- a/lib/PublicInbox/NNTPD.pm +++ b/lib/PublicInbox/NNTPD.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2020 all contributors +# Copyright (C) 2016-2021 all contributors # License: AGPL-3.0+ # represents an NNTPD (currently a singleton), @@ -36,10 +36,12 @@ sub refresh_groups { my ($self, $sig) = @_; my $pi_cfg = $sig ? PublicInbox::Config->new : $self->{pi_cfg}; my $groups = $pi_cfg->{-by_newsgroup}; # filled during each_inbox + my $cache = eval { $pi_cfg->ALL->misc->nntpd_cache_load } // {}; $pi_cfg->each_inbox(sub { my ($ibx) = @_; - my $ngname = $ibx->{newsgroup}; - if (defined($ngname) && $ibx->nntp_usable) { + my $ngname = $ibx->{newsgroup} // return; + my $ce = $cache->{$ngname}; + if (($ce and (%$ibx = (%$ibx, %$ce))) || $ibx->nntp_usable) { # only valid if msgmap and over works # preload to avoid fragmentation: $ibx->description;