#!/usr/bin/perl -w
# Copyright (C) 2015 all contributors <meta@public-inbox.org>
# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
+#
+# Standalone NNTP server for public-inbox.
use strict;
use warnings;
require PublicInbox::Daemon;
require PublicInbox::NewsGroup;
require PublicInbox::NNTP;
+require PublicInbox::Config;
my $nntpd = PublicInbox::NNTPD->new;
daemon_run('0.0.0.0:119',
sub { $nntpd->refresh_groups },
package PublicInbox::NNTPD;
use strict;
use warnings;
-use fields qw(groups grouplist err out);
sub new {
my ($class) = @_;
- my $self = fields::new($class);
- $self->{groups} = {};
- $self->{err} = \*STDERR;
- $self->{out} = \*STDOUT;
- $self->{grouplist} = [];
- $self;
+ bless {
+ groups => {},
+ err => \*STDERR,
+ out => \*STDOUT,
+ grouplist => [],
+ }, $class;
}
sub refresh_groups () {
my ($self) = @_;
- require PublicInbox::Config;
my $pi_config = PublicInbox::Config->new;
my $new = {};
my @list;
$ng = $old_ng;
}
- # Only valid if Msgmap works
- if ($ng->mm(1)) {
+ # Only valid if msgmap and search works
+ if ($ng->usable) {
$new->{$g} = $ng;
push @list, $ng;
}