X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FMsg.pm;h=d677b69248190567b4eb2031ec97ef067af54279;hb=b8df30c344a8805053f889eda4fd17d85dca1b9e;hp=e774c59d41ddb6df20c610e2ef886a14d7e6c2f1;hpb=57c9d48d821e4706ed45f52f86929b01dd494966;p=spider.git diff --git a/perl/Msg.pm b/perl/Msg.pm index e774c59d..d677b692 100644 --- a/perl/Msg.pm +++ b/perl/Msg.pm @@ -402,9 +402,10 @@ 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 confess "setsockopt keepalive: $!"; + eval {setsockopt($conn->{sock}, SOL_SOCKET, SO_LINGER, pack("ll", 0, 0))} or confess "setsockopt linger: $!"; + eval {setsockopt($conn->{sock}, IPPROTO_TCP, TCP_NODELAY, 1)} or eval {setsockopt($conn->{sock}, SOL_SOCKET, TCP_NODELAY, 1)} or confess "setsockopt tcp_nodelay: $!"; + $conn->{sock}->autoflush(0); if (isdbg('sock')) { my ($l, $t) = unpack "ll", getsockopt($conn->{sock}, SOL_SOCKET, SO_LINGER); @@ -413,7 +414,6 @@ sub nolinger dbg("Linger is: $l $t, keepalive: $k, nagle: $n"); } } - $conn->{sock}->autoflush(0); } sub dequeue