X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fclient.pl;h=66c7b0927337d88443097fb62b2c1daa1cc5dce9;hb=aba7a0d5b7287daac0d3b708aa222247a2e87e86;hp=4a472984a0c3320684edc357148f6c295e823e68;hpb=5254ea7ecfdf68964a2e50b160ac62524b67dd93;p=spider.git diff --git a/perl/client.pl b/perl/client.pl index 4a472984..66c7b092 100755 --- a/perl/client.pl +++ b/perl/client.pl @@ -51,10 +51,10 @@ use IPC::Open2; sub cease { my $sendz = shift; - if ($conn && $sendz) { - $conn->send_now("Z$call|bye..."); - sleep(1); - } +# if ($conn && $sendz) { +# $conn->send_now("Z$call|bye..."); +# sleep(1); +# } $stdout->flush if $stdout; if ($pid) { dbg('connect', "killing $pid"); @@ -99,7 +99,7 @@ sub rec_socket { my ($con, $msg, $err) = @_; if (defined $err && $err) { - cease(1); + cease(0); } if (defined $msg) { my ($sort, $call, $line) = $msg =~ /^(\w)([^\|]+)\|(.*)$/; @@ -155,6 +155,8 @@ sub rec_socket # any other sorts that might happen are silently ignored. # ****************************************************** # ****************************************************** + } else { + cease(0); } $lasttime = time; } @@ -178,8 +180,9 @@ sub rec_stdin cease(1); } elsif ($r > 0) { if ($mode) { - $buf =~ s/\r/\n/og if $mode == 1; - $buf =~ s/\r\n/\n/og if $mode == 2; + $buf =~ s/\r/\n/g if $mode == 1; + $buf =~ s/[\r\x00]//g if $mode == 2; + $dangle = !($buf =~ /\n$/); if ($buf eq "\n") { @lines = (" "); @@ -278,7 +281,7 @@ sub dochat dbg('connect', "received 0 length line, aborting..."); cease(11); } - $line =~ s/\r\n/\n/og; + $line =~ s/\r//g; chomp; } elsif ($csort eq 'ax25' || $csort eq 'prog') { local $/ = "\r"; @@ -287,7 +290,8 @@ sub dochat dbg('connect', "received 0 length line, aborting..."); cease(11); } - $line =~ s/\r//og; + $line =~ s/\r/\n/g; + chomp; } dbg('connect', "received \"$line\""); if ($abort && $line =~ /$abort/i) {