diff options
author | Eric Wong <e@80x24.org> | 2019-06-24 02:52:37 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-06-24 05:26:26 +0000 |
commit | 93fc0336d39ba3ef07b479877e64371f07c86eab (patch) | |
tree | cc86f8e17cae6dfc435eb9e9fcaca3d414aa1a6b | |
parent | 03b8f86532a29d0cb129ff6e8d3ddf2d51deb2f8 (diff) | |
download | public-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.
-rw-r--r-- | lib/PublicInbox/NNTP.pm | 8 |
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); |