blob: 2bf6000dced12968e2464dd2e3472b3b395d363a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#!/usr/bin/perl
# test EOPNOTSUPP for splicing to listen socket
use Errno;
use IO::Socket;
use BSD::Socket::Splice "SO_SPLICE";
my $sl = IO::Socket::INET->new(
Proto => "tcp",
Listen => 5,
LocalAddr => "127.0.0.1",
) or die "socket listen failed: $!";
my $s = IO::Socket::INET->new(
Proto => "tcp",
PeerAddr => $sl->sockhost(),
PeerPort => $sl->sockport(),
) or die "socket failed: $!";
my $ss = IO::Socket::INET->new(
Proto => "tcp",
Listen => 1,
) or die "socket splice failed: $!";
$s->setsockopt(SOL_SOCKET, SO_SPLICE, pack('i', $ss->fileno()))
and die "splice to listen socket succeeded";
$!{EOPNOTSUPP}
or die "error not EOPNOTSUPP: $!"
|