1# test EPROTONOSUPPORT for splicing unix sockets 2 3use strict; 4use warnings; 5use IO::Socket; 6use BSD::Socket::Splice "SO_SPLICE"; 7use IO::Socket::UNIX; 8 9our %args = ( 10 errno => 'EPROTONOSUPPORT', 11 func => sub { 12 my $s = IO::Socket::UNIX->new( 13 Type => SOCK_STREAM, 14 ) or die "socket failed: $!"; 15 16 my $ss = IO::Socket::UNIX->new( 17 Type => SOCK_STREAM, 18 ) or die "socket splice failed: $!"; 19 20 $s->setsockopt(SOL_SOCKET, SO_SPLICE, pack('i', $ss->fileno())) 21 and die "splice unix sockets succeeded"; 22 }, 23); 24