about summary refs log tree commit homepage
path: root/lib/PublicInbox/NNTP.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-24 02:52:37 +0000
committerEric Wong <e@80x24.org>2019-06-24 05:26:26 +0000
commit93fc0336d39ba3ef07b479877e64371f07c86eab (patch)
treecc86f8e17cae6dfc435eb9e9fcaca3d414aa1a6b /lib/PublicInbox/NNTP.pm
parent03b8f86532a29d0cb129ff6e8d3ddf2d51deb2f8 (diff)
downloadpublic-inbox-93fc0336d39ba3ef07b479877e64371f07c86eab.tar.gz
This will be needed for NNTPS support, since we need
to negotiate the TLS connection before writing the
greeting and we can reuse the existing buffer layer
to enqueue writes.
Diffstat (limited to 'lib/PublicInbox/NNTP.pm')
-rw-r--r--lib/PublicInbox/NNTP.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 468a22f5..a18641d3 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -24,7 +24,7 @@ use constant {
         r225 =>        '225 Headers follow (multi-line)',
         r430 => '430 No article with that message-id',
 };
-use PublicInbox::Syscall qw(EPOLLIN EPOLLONESHOT);
+use PublicInbox::Syscall qw(EPOLLOUT EPOLLONESHOT);
 use Errno qw(EAGAIN);
 
 my @OVERVIEW = qw(Subject From Date Message-ID References Xref);
@@ -98,9 +98,11 @@ sub expire_old () {
 sub new ($$$) {
         my ($class, $sock, $nntpd) = @_;
         my $self = fields::new($class);
-        $self->SUPER::new($sock, EPOLLIN | EPOLLONESHOT);
+        $self->SUPER::new($sock, EPOLLOUT | EPOLLONESHOT);
         $self->{nntpd} = $nntpd;
-        res($self, '201 ' . $nntpd->{servername} . ' ready - post via email');
+        my $greet = "201 $nntpd->{servername} ready - post via email\r\n";
+        open my $fh, '<:scalar',  \$greet or die "open :scalar: $!";
+        $self->{wbuf} = [ $fh ];
         $self->{rbuf} = '';
         update_idle_time($self);
         $expt ||= PublicInbox::EvCleanup::later(*expire_old);