diff options
-rw-r--r-- | lib/PublicInbox/NNTP.pm | 4 | ||||
-rw-r--r-- | lib/PublicInbox/NNTPD.pm | 10 | ||||
-rw-r--r-- | t/nntp.t | 3 | ||||
-rw-r--r-- | t/nntpd.t | 9 |
4 files changed, 20 insertions, 6 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index cdbd8e98..cbd4ecf1 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -94,7 +94,7 @@ sub new ($$$) { my $self = fields::new($class); $self->SUPER::new($sock); $self->{nntpd} = $nntpd; - res($self, '201 server ready - post via email'); + res($self, '201 ' . $nntpd->{servername} . ' ready - post via email'); $self->{rbuf} = ''; $self->watch_read(1); update_idle_time($self); @@ -410,7 +410,7 @@ sub header_append ($$$) { sub xref ($$$$) { my ($self, $ng, $n, $mid) = @_; - my $ret = "$ng->{domain} $ng->{newsgroup}:$n"; + my $ret = $self->{nntpd}->{servername} . " $ng->{newsgroup}:$n"; # num_for is pretty cheap and sometimes we'll lookup the existence # of an article without getting even the OVER info. In other words, diff --git a/lib/PublicInbox/NNTPD.pm b/lib/PublicInbox/NNTPD.pm index 117c9c03..32848d7c 100644 --- a/lib/PublicInbox/NNTPD.pm +++ b/lib/PublicInbox/NNTPD.pm @@ -6,15 +6,25 @@ package PublicInbox::NNTPD; use strict; use warnings; +use Sys::Hostname; require PublicInbox::Config; sub new { my ($class) = @_; + my $pi_config = PublicInbox::Config->new; + my $name = $pi_config->{'publicinbox.nntpserver'}; + if (!defined($name) or $name eq '') { + $name = hostname; + } elsif (ref($name) eq 'ARRAY') { + $name = $name->[0]; + } + bless { groups => {}, err => \*STDERR, out => \*STDOUT, grouplist => [], + servername => $name, }, $class; } @@ -110,7 +110,8 @@ use_ok 'PublicInbox::Inbox'; my $mid = 'a@b'; my $mime = Email::MIME->new("Message-ID: <$mid>\r\n\r\n"); my $hdr = $mime->header_obj; - my $mock_self = { nntpd => { grouplist => [] } }; + my $mock_self = { nntpd => { grouplist => [], + servername => 'example.com' } }; PublicInbox::NNTP::set_nntp_headers($mock_self, $hdr, $ng, 1, $mid); is_deeply([ $mime->header('Message-ID') ], [ "<$mid>" ], 'Message-ID unchanged'); @@ -16,6 +16,7 @@ use Fcntl qw(FD_CLOEXEC F_SETFD F_GETFD); use Socket qw(SO_KEEPALIVE IPPROTO_TCP TCP_NODELAY); use File::Temp qw/tempdir/; use Net::NNTP; +use Sys::Hostname; my $tmpdir = tempdir('pi-nntpd-XXXXXX', TMPDIR => 1, CLEANUP => 1); my $home = "$tmpdir/pi-home"; @@ -140,13 +141,14 @@ EOF 'from' => "El\xc3\xa9anor <me\@example.com>", 'to' => "El\xc3\xa9anor <you\@example.com>", 'cc' => $addr, - 'xref' => "example.com $group:1", + 'xref' => hostname . " $group:1", 'references' => '<reftabsqueezed>', ); my $s = IO::Socket::INET->new(%opts); sysread($s, my $buf, 4096); - is($buf, "201 server ready - post via email\r\n", 'got greeting'); + is($buf, "201 " . hostname . " ready - post via email\r\n", + 'got greeting'); $s->autoflush(1); ok(syswrite($s, " \r\n"), 'wrote spaces'); @@ -156,7 +158,8 @@ EOF $s = IO::Socket::INET->new(%opts); sysread($s, $buf, 4096); - is($buf, "201 server ready - post via email\r\n", 'got greeting'); + is($buf, "201 " . hostname . " ready - post via email\r\n", + 'got greeting'); $s->autoflush(1); syswrite($s, "NEWGROUPS 19990424 000000 GMT\r\n"); |