X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FExtMsg.pm;h=064bd90af487df88730f7cd8b465115e1f1042c8;hb=743a03b3b060fbff8579503647a01722fb634cb1;hp=c5d6d85486ff5092ec958e89f4714ded0ae2743b;hpb=af8dd78669c2badfd6a6cf5e4724500a78da2d0d;p=spider.git diff --git a/perl/ExtMsg.pm b/perl/ExtMsg.pm index c5d6d854..064bd90a 100644 --- a/perl/ExtMsg.pm +++ b/perl/ExtMsg.pm @@ -64,6 +64,24 @@ sub echo $conn->{echo} = shift; } +sub _rcv +{ + my $conn = shift; # $rcv_now complement of $flush + my $msg = shift; + my $sock = $conn->{sock}; + return unless defined($sock); + return if $conn->{disconnecting}; + + if ($conn->{state} eq 'WL' && $conn->{sort} =~ /^I/ && $msg =~ /^PROXY/) { + my $echo = $conn->{echo}; + $conn->{echo} = 0; + $conn->SUPER::_rcv($msg); + $conn->{echo} = $echo; + } else { + $conn->SUPER::_rcv($msg); + } +} + sub dequeue { my $conn = shift; @@ -89,6 +107,8 @@ sub dequeue } else { $conn->{msg} =~ s/([^\cM\cJ]*)\cM?\cJ//g; } + $conn->{linesin} += @lines; + $Msg::total_lines_in += @lines; while (defined ($msg = shift @lines)) { dbg("connect $conn->{cnum}: $msg") if $conn->{state} ne 'C' && isdbg('connect'); @@ -182,7 +202,7 @@ sub new_client { $conn->_send_file(localdata("issue")); $conn->send_raw("login: "); $conn->_dotimeout(60); - $conn->{echo} = 1; +# $conn->{echo} = 1; } sub start_connect