# for IMAP, NNTP, and POP3 which greet clients upon connect
sub greet {
- my ($self, $sock) = @_;
+ my ($self, $sock, $addr) = @_;
my $ev = EPOLLOUT;
if ($sock->can('accept_SSL') && !$sock->accept_SSL) {
return if $! != EAGAIN || !($ev = PublicInbox::TLS::epollbit());
}
push @{$self->{wbuf}}, $self->can('do_greet');
new($self, $sock, $ev | EPOLLONESHOT);
+ ($addr, my $port) = PublicInbox::Daemon::host_with_port($addr);
+ $self->out('['.fileno($sock)."] accept $addr:$port");
$self;
}
$tlsd->refresh_groups($sig);
};
$xn{post_accept} = $tlsd->can('post_accept_cb') ?
- $tlsd->post_accept_cb : sub { $modc->new($_[0], $tlsd) };
+ $tlsd->post_accept_cb :
+ sub { $modc->new(@_[0, 1], $tlsd) };
if ($modc eq 'PublicInbox::HTTP') {
$xn{af_default} = 'httpready';
if (my $p = $opt->{psgi}) {
}
sub new {
- my (undef, $sock, $imapd) = @_;
- (bless { imapd => $imapd }, 'PublicInbox::IMAP_preauth')->greet($sock)
+ my (undef, $sock, $addr, $imapd) = @_;
+ (bless { imapd => $imapd }, 'PublicInbox::IMAP_preauth')
+ ->greet($sock, $addr)
}
sub logged_in { 1 }
sub do_greet ($) { $_[0]->write($_[0]->{nntpd}->{greet}) };
sub new {
- my ($cls, $sock, $nntpd) = @_;
- (bless { nntpd => $nntpd }, $cls)->greet($sock)
+ my ($cls, $sock, $addr, $nntpd) = @_;
+ (bless { nntpd => $nntpd }, $cls)->greet($sock, $addr)
}
sub args_ok ($$) {
}
sub new {
- my ($cls, $sock, $pop3d) = @_;
- (bless { pop3d => $pop3d }, $cls)->greet($sock)
+ my ($cls, $sock, $addr, $pop3d) = @_;
+ (bless { pop3d => $pop3d }, $cls)->greet($sock, $addr)
}
# POP user is $UUID1@$NEWSGROUP[.$SLICE][?QUERY_ARGS]