No need to allocate a new PerlIO::scalar filehandle for every
client, instead we can now pass the same CODE reference which
calls DS->write on a reused string reference.
}
}
+sub greet ($) { $_[0]->write($_[0]->{nntpd}->{greet}) };
+
sub new ($$$) {
my ($class, $sock, $nntpd) = @_;
my $self = fields::new($class);
}
$self->SUPER::new($sock, $ev);
$self->{nntpd} = $nntpd;
- my $greet = "201 $nntpd->{servername} ready - post via email\r\n";
- open my $fh, '<:scalar', \$greet or die "open :scalar: $!";
- push @$wbuf, $fh;
+ push @$wbuf, \&greet;
$self->{wbuf} = $wbuf;
$self->{rbuf} = '';
update_idle_time($self);
out => \*STDOUT,
grouplist => [],
servername => $name,
+ greet => \"201 $name ready - post via email\r\n",
# accept_tls => { SSL_server => 1, ..., SSL_reuse_ctx => ... }
}, $class;
}