IO-Handle-Record
view release on metacpan or search on metacpan
lib/IO/Handle/Record.pm view on Meta::CPAN
use 5.008008;
use strict;
use warnings;
use Storable;
use Class::Member::GLOB qw/record_opts
read_buffer expected expect_fds received_fds
end_of_input _received_fds
write_buffer fds_to_send written/;
use Errno qw/EAGAIN EINTR/;
use Carp;
my $have_inet6;
BEGIN {
eval {
require Socket6;
$have_inet6=1;
};
};
use Socket;
require XSLoader;
our $VERSION = '0.15';
XSLoader::load('IO::Handle::Record', $VERSION);
use constant {
HEADERLENGTH=>8, # 2 unsigned long
lib/IO/Handle/Record.pm view on Meta::CPAN
}
my $obj=bless IO::Handle->new_from_fd($fd, $flags),
IO::Handle::Record::typeof($fd);
if( ref($obj)=~/Socket/ ) {
${*$obj}{io_socket_domain}=socket_family($fd);
${*$obj}{io_socket_type}=socket_type($fd);
if($obj->sockdomain==AF_INET or
($have_inet6 and $obj->sockdomain==&Socket6::AF_INET6) ) {
if($obj->socktype==SOCK_STREAM) {
${*$obj}{io_socket_proto}=&Socket::IPPROTO_TCP;
} elsif($obj->socktype==SOCK_DGRAM) {
${*$obj}{io_socket_proto}=&Socket::IPPROTO_UDP;
} elsif($obj->socktype==SOCK_RAW) {
${*$obj}{io_socket_proto}=&Socket::IPPROTO_ICMP;
}
}
}
( run in 0.260 second using v1.01-cache-2.11-cpan-87723dcf8b7 )