about summary refs log tree commit homepage
path: root/t/httpd.t
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-24 02:52:53 +0000
committerEric Wong <e@80x24.org>2019-06-24 05:26:27 +0000
commit4e1a84c2a97c319862c960a34e3a7a8bf31d5274 (patch)
tree15ff2c3a3d241bec1ab34eccca73444c2fcdbf85 /t/httpd.t
parentce8cdcd68fd899d28b5d7c0354883b0cb33fc4d6 (diff)
downloadpublic-inbox-4e1a84c2a97c319862c960a34e3a7a8bf31d5274.tar.gz
This Linux-specific option can save us some wakeups during
the TLS negotiation phase, and it can help with ordinary HTTP,
too.

Plain NNTP (and in the future, POP3) are the only things which
require the server send messages, first.
Diffstat (limited to 't/httpd.t')
-rw-r--r--t/httpd.t8
1 files changed, 8 insertions, 0 deletions
diff --git a/t/httpd.t b/t/httpd.t
index c061031c..8c2a3173 100644
--- a/t/httpd.t
+++ b/t/httpd.t
@@ -10,6 +10,7 @@ foreach my $mod (qw(Plack::Util Plack::Builder HTTP::Date HTTP::Status)) {
 }
 use File::Temp qw/tempdir/;
 use IO::Socket::INET;
+use Socket qw(IPPROTO_TCP);
 require './t/common.perl';
 
 # FIXME: too much setup
@@ -99,6 +100,13 @@ EOF
                 'fsck on cloned directory successful');
 }
 
+SKIP: {
+        skip 'TCP_DEFER_ACCEPT is Linux-only', 1 if $^O ne 'linux';
+        my $var = Socket::TCP_DEFER_ACCEPT();
+        defined(my $x = getsockopt($sock, IPPROTO_TCP, $var)) or die;
+        ok(unpack('i', $x) > 0, 'TCP_DEFER_ACCEPT set');
+};
+
 done_testing();
 
 1;