home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CLIX - Fazer Clix Custa Nix
/
CLIX-CD.cdr
/
mac
/
lib
/
auto
/
LWP
/
IO
/
read.al
< prev
next >
Wrap
Text File
|
1997-12-13
|
802b
|
34 lines
# NOTE: Derived from :lib:LWP:IO.pm. Changes made here will be lost.
package LWP::IO;
sub read
{
my $fd = shift;
# data is now $_[0]
my $size = $_[1];
my $offset = $_[2] || 0;
my $timeout = $_[3];
my $rin = '';
vec($rin, fileno($fd), 1) = 1;
my $err;
my $nfound = select($rin, undef, $err = $rin, $timeout);
if ($nfound == 0) {
die "Timeout";
} elsif ($nfound < 0) {
die "Select failed: $!";
} elsif ($err =~ /[^\0]/) {
die "Exception while reading on socket handle";
} else {
my $n = sysread($fd, $_[0], $size, $offset);
# Since so much data might pass here we cheat about debugging
if ($LWP::Debug::current_level{'conns'}) {
LWP::Debug::debug("Read $n bytes");
LWP::Debug::conns($_[0]) if $n;
}
return $n;
}
}
1;