blob: 394c4b9aceb235ed12c617cb2dd27415cd6a7bac (
plain) (
blame)
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
|
# test ENOTCONN for splicing to unconnected udp socket
use strict;
use warnings;
use IO::Socket;
use BSD::Socket::Splice "SO_SPLICE";
our %args = (
errno => 'ENOTCONN',
func => sub {
my $sb = IO::Socket::INET->new(
Proto => "udp",
LocalAddr => "127.0.0.1",
) or die "socket bind failed: $!";
my $sc = IO::Socket::INET->new(
Proto => "udp",
PeerAddr => $sb->sockhost(),
PeerPort => $sb->sockport(),
) or die "socket connect failed: $!";
$sb->setsockopt(SOL_SOCKET, SO_SPLICE, pack('i', $sc->fileno()))
or die "splice from unconnected socket failed: $!";
$sc->setsockopt(SOL_SOCKET, SO_SPLICE, pack('i', $sb->fileno()))
and die "splice to unconnected socket succeeded";
},
);
|