diff options
author | Eric Wong <e@80x24.org> | 2023-10-06 09:46:04 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-10-06 21:06:54 +0000 |
commit | 4c4466e455fd6940700125f8c21b326564915913 (patch) | |
tree | 5f6f5a05c8ec8d41074da74bdc566926a89c86b6 /lib/PublicInbox/Daemon.pm | |
parent | aef38b546fd15f161dc0f0c2c9ec9b7b7798672a (diff) | |
download | public-inbox-4c4466e455fd6940700125f8c21b326564915913.tar.gz |
require_bsd and require_mods(':fcntl_lock') are now supported in TestCommon to make it easier to maintain than a big list of regexps. getsockopt for SO_ACCEPTFILTER seems to always succeed, even if the retrieved struct is all zeroes.
Diffstat (limited to 'lib/PublicInbox/Daemon.pm')
-rw-r--r-- | lib/PublicInbox/Daemon.pm | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm index a4c99cca..520cef72 100644 --- a/lib/PublicInbox/Daemon.pm +++ b/lib/PublicInbox/Daemon.pm @@ -634,9 +634,9 @@ sub defer_accept ($$) { my $sec = unpack('i', $x); return if $sec > 0; # systemd users may set a higher value setsockopt($s, IPPROTO_TCP, $TCP_DEFER_ACCEPT, 1); - } elsif ($^O =~ /\A(?:freebsd|netbsd)\z/) { + } elsif ($^O =~ /\A(?:freebsd|netbsd|dragonfly)\z/) { my $x = getsockopt($s, SOL_SOCKET, $SO_ACCEPTFILTER); - return if defined $x; # don't change if set + return if ($x // "\0") =~ /[^\0]/s; # don't change if set my $accf_arg = pack('a16a240', $af_name, ''); setsockopt($s, SOL_SOCKET, $SO_ACCEPTFILTER, $accf_arg); } |