added Iain's winclient
[spider.git] / perl / Msg.pm
index 774db635e627f0aeae5cc24fb7da8ce00f63116e..1099ba8804f881106e918c699798a3b233810868 100644 (file)
@@ -47,6 +47,7 @@ sub new
     my $conn = {
         rproc => $rproc,
                inqueue => [],
+               outqueue => [],
                state => 0,
                lineend => "\r\n",
                csort => 'telnet',
@@ -118,7 +119,7 @@ sub _send {
     my ($conn, $flush) = @_;
     my $sock = $conn->{sock};
     return unless defined($sock);
-    my ($rq) = $conn->{outqueue};
+    my $rq = $conn->{outqueue};
 
     # If $flush is set, set the socket to blocking, and send all
     # messages in the queue - return only if there's an error
@@ -244,9 +245,12 @@ sub _rcv {                     # Complement to _send
                if ($bytes_read > 0) {
                        if ($msg =~ /\n/) {
                                @lines = split /\r?\n/, $msg;
-                               $lines[0] = '' unless @lines;
-                               $lines[0] = $conn->{msg} . $lines[0] if exists $conn->{msg};
-                               push @lines, ' ' unless @lines;
+                               if (@lines) {
+                                       $lines[0] = $conn->{msg} . $lines[0] if exists $conn->{msg};
+                               } else {
+                                       $lines[0] = $conn->{msg} if exists $conn->{msg};
+                                       push @lines, '' unless @lines;
+                               }
                                if ($msg =~ /\n$/) {
                                        delete $conn->{msg};
                                } else {