X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FMsg.pm;h=ec2f3b4ca0214836327bb99c8a84aaa60a609b6a;hb=cfa4c1acfabeda359815ca58670b4dde4f260a79;hp=0f2f2d1d04d37771e4e9138a10c826012ea60413;hpb=b0d0a20f3a8f9c5cd0f2e034a32dc524e3f2f003;p=spider.git diff --git a/perl/Msg.pm b/perl/Msg.pm index 0f2f2d1d..ec2f3b4c 100644 --- a/perl/Msg.pm +++ b/perl/Msg.pm @@ -37,6 +37,7 @@ $now = time; BEGIN { # Checks if blocking is supported eval { + local $^W; require POSIX; POSIX->import(qw(O_NONBLOCK F_SETFL F_GETFL)) }; if ($@ || $main::is_win) { @@ -50,12 +51,14 @@ BEGIN { # import as many of these errno values as are available eval { + local $^W; require Errno; Errno->import(qw(EAGAIN EINPROGRESS EWOULDBLOCK)); }; unless ($^O eq 'MSWin32') { if ($] >= 5.6) { eval { + local $^W; require Socket; Socket->import(qw(IPPROTO_TCP TCP_NODELAY)); }; } else { @@ -402,9 +405,9 @@ sub nolinger dbg("Linger is: $l $t, keepalive: $k, nagle: $n"); } - setsockopt($conn->{sock}, SOL_SOCKET, SO_KEEPALIVE, 1) or confess "setsockopt keepalive: $!"; - setsockopt($conn->{sock}, SOL_SOCKET, SO_LINGER, pack("ll", 0, 0)) or confess "setsockopt linger: $!"; - setsockopt($conn->{sock}, IPPROTO_TCP, TCP_NODELAY, 1) or confess "setsockopt: $!"; + eval {setsockopt($conn->{sock}, SOL_SOCKET, SO_KEEPALIVE, 1)} or dbg("setsockopt keepalive: $!"); + eval {setsockopt($conn->{sock}, SOL_SOCKET, SO_LINGER, pack("ll", 0, 0))} or dbg("setsockopt linger: $!"); + eval {setsockopt($conn->{sock}, IPPROTO_TCP, TCP_NODELAY, 1)} or eval {setsockopt($conn->{sock}, SOL_SOCKET, TCP_NODELAY, 1)} or dbg("setsockopt tcp_nodelay: $!"); $conn->{sock}->autoflush(0); if (isdbg('sock')) {