unofficial mirror of meta@public-inbox.org
 help / color / mirror / Atom feed
* [PATCH] listener: pass accepted address to post_accept
@ 2016-01-04 20:18 Eric Wong
  0 siblings, 0 replies; only message in thread
From: Eric Wong @ 2016-01-04 20:18 UTC (permalink / raw)
  To: meta

We can avoid making getpeername syscalls this way.
---
 lib/PublicInbox/Listener.pm | 4 ++--
 public-inbox-nntpd          | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/PublicInbox/Listener.pm b/lib/PublicInbox/Listener.pm
index 67817d9..8e0554f 100644
--- a/lib/PublicInbox/Listener.pm
+++ b/lib/PublicInbox/Listener.pm
@@ -27,9 +27,9 @@ sub event_read {
 	my ($self) = @_;
 	# no loop here, we want to fairly distribute clients
 	# between multiple processes sharing the same socket
-	if (accept(my $c, $self->{sock})) {
+	if (my $addr = accept(my $c, $self->{sock})) {
 		IO::Handle::blocking($c, 0); # no accept4 :<
-		$self->{post_accept}->($c);
+		$self->{post_accept}->($c, $addr);
 	}
 }
 
diff --git a/public-inbox-nntpd b/public-inbox-nntpd
index 1f0cd37..706cbee 100755
--- a/public-inbox-nntpd
+++ b/public-inbox-nntpd
@@ -11,8 +11,8 @@ require PublicInbox::NNTP;
 require PublicInbox::Config;
 my $nntpd = PublicInbox::NNTPD->new;
 daemon_run('0.0.0.0:119',
-	sub { $nntpd->refresh_groups },
-	sub ($) { PublicInbox::NNTP->new($_[0], $nntpd) });
+	sub { $nntpd->refresh_groups }, # refresh
+	sub ($$) { PublicInbox::NNTP->new($_[0], $nntpd) }); # post_accept
 
 1;
 package PublicInbox::NNTPD;
-- 
EW


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-01-04 20:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-04 20:18 [PATCH] listener: pass accepted address to post_accept Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).