diff options
author | Eric Wong <e@80x24.org> | 2020-06-11 00:57:53 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-06-13 07:58:30 +0000 |
commit | 2a717d13f10fcdc69921d80cf94c47a694a175d4 (patch) | |
tree | 188b2834628fd448f9397daefb4a8a77c00cdce1 /lib/PublicInbox/NNTPD.pm | |
parent | 3d52c093ad5ce7a32f8842d9ae020712f9786352 (diff) | |
download | public-inbox-2a717d13f10fcdc69921d80cf94c47a694a175d4.tar.gz |
For v1 inboxes (and possibly v2 in the future, for VACUUM), public-inbox-compact replaces over.sqlite3 with a new file. This currently doesn't need an extra inotify watch descriptor (or FD for kevent) at the moment, so it can coexist nicely for systems w/o IO::KQueue or Linux::Inotify2.
Diffstat (limited to 'lib/PublicInbox/NNTPD.pm')
-rw-r--r-- | lib/PublicInbox/NNTPD.pm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/PublicInbox/NNTPD.pm b/lib/PublicInbox/NNTPD.pm index ed5cf7cc..6b762d89 100644 --- a/lib/PublicInbox/NNTPD.pm +++ b/lib/PublicInbox/NNTPD.pm @@ -8,6 +8,7 @@ use strict; use warnings; use Sys::Hostname; use PublicInbox::Config; +use PublicInbox::InboxIdle; sub new { my ($class) = @_; @@ -24,15 +25,17 @@ sub new { err => \*STDERR, out => \*STDOUT, grouplist => [], + pi_config => $pi_config, servername => $name, greet => \"201 $name ready - post via email\r\n", # accept_tls => { SSL_server => 1, ..., SSL_reuse_ctx => ... } + # idler => PublicInbox::InboxIdle }, $class; } sub refresh_groups { - my ($self, $pi_config) = @_; - $pi_config //= PublicInbox::Config->new; + my ($self, $sig) = @_; + my $pi_config = $sig ? PublicInbox::Config->new : $self->{pi_config}; my $new = {}; my @list; $pi_config->each_inbox(sub { @@ -59,8 +62,13 @@ sub refresh_groups { }); @list = sort { $a->{newsgroup} cmp $b->{newsgroup} } @list; $self->{grouplist} = \@list; + $self->{pi_config} = $pi_config; # this will destroy old groups that got deleted %{$self->{groups}} = %$new; } +sub idler_start { + $_[0]->{idler} //= PublicInbox::InboxIdle->new($_[0]->{pi_config}); +} + 1; |