X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FExtMsg.pm;h=ae0e218b25c8575a73b71efeb0d4ed2cffbd3a56;hb=d2c1a8cb2a31725e3b9084aee3ec43e585e3273f;hp=7b33b6e2780d43e19d663d63f0fe4bdf59a0b14f;hpb=6624dcdf07d628e8d6a16fc6549edf40be25b7b2;p=spider.git diff --git a/perl/ExtMsg.pm b/perl/ExtMsg.pm index 7b33b6e2..ae0e218b 100644 --- a/perl/ExtMsg.pm +++ b/perl/ExtMsg.pm @@ -21,6 +21,12 @@ use IO::File; use IO::Socket; use IPC::Open3; +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$main::build += $VERSION; +$main::branch += $BRANCH; + use vars qw(@ISA $deftimeout); @ISA = qw(Msg); @@ -77,7 +83,7 @@ sub dequeue if ($conn->{msg} =~ /\cJ$/) { delete $conn->{msg}; } else { - $conn->{msg} = pop @lines; + $conn->{msg} =~ s/([^\cM\cJ]*)\cM?\cJ//g; } while (defined ($msg = shift @lines)) { dbg("connect $conn->{cnum}: $msg") if $conn->{state} ne 'C' && isdbg('connect'); @@ -200,8 +206,8 @@ sub _docmd last; } } - if ($cmd =~ /^\s*\'.*\'\s+\'.*\'/i) { - $conn->_dochat($cmd, $msg); + if ($cmd =~ /^\s*\'([^\']*)\'\s+\'([^\']*)\'/) { + $conn->_dochat($cmd, $msg, $1, $2); last; } if ($cmd =~ /^\s*cl\w+\s+(.*)/i) { @@ -317,9 +323,10 @@ sub _dochat my $conn = shift; my $cmd = shift; my $line = shift; + my $expect = shift; + my $send = shift; if ($line) { - my ($expect, $send) = $cmd =~ /^\s*\'(.*)\'\s+\'(.*)\'/; if ($expect) { dbg("connect $conn->{cnum}: expecting: \"$expect\" received: \"$line\"") if isdbg('connect'); if ($conn->{abort} && $line =~ /\Q$conn->{abort}/i) {