about summary refs log tree commit homepage
path: root/lib/PublicInbox
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
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')
-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);