fix connection end .END/.DONE
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 24 Feb 2019 10:21:47 +0000 (11:21 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 24 Feb 2019 10:21:47 +0000 (11:21 +0100)
terminal-emulator.pl
terminal-server.pl

index e4ee9a1..9a91ede 100755 (executable)
@@ -39,15 +39,6 @@ my @send_receive = grep { /^.+$/ } split(/\n/, q{
 .NOP
 .NOP
 
 .NOP
 .NOP
 
-.NOP
-.NOP
-
-.NOP
-.NOP
-
-.NOP
-.NOP
-
 .END
 });
 
 .END
 });
 
@@ -62,7 +53,7 @@ while ( @send_receive ) {
        $got =~ s/[\r\n]+$//;
 warn "# send/expect/got ",dump($send,$expect,$got);
        warn "<< $got\n";
        $got =~ s/[\r\n]+$//;
 warn "# send/expect/got ",dump($send,$expect,$got);
        warn "<< $got\n";
-       if ( $expect ne substr($got,0,length($expect)) ) {
+       if ( defined $got && defined $expect && $expect ne substr($got,0,length($expect)) ) {
                warn "ERROR expected [$expect] got [$got]\n";
                print "Response>";
                my $r = <STDIN>; chomp $r;
                warn "ERROR expected [$expect] got [$got]\n";
                print "Response>";
                my $r = <STDIN>; chomp $r;
index 6d86992..992768e 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
 #!/usr/bin/perl
 use warnings;
 use strict;
+use autodie;
 
 use Data::Dump qw(dump);
 
 
 use Data::Dump qw(dump);
 
@@ -60,8 +61,12 @@ while(1) {
                        $line = <$client_socket>;
                }
 
                        $line = <$client_socket>;
                }
 
-               $line =~ s/[\r\n]+$//;
-               warn "<< $line\n";
+               if ( defined $line ) {
+                       $line =~ s/[\r\n]+$//;
+                       warn "<< $line\n";
+               } else {
+                       warn "<< [NULL] connected: ",dump($client_socket), $client_socket->connected;
+               }
 
                return $line;
        }
 
                return $line;
        }
@@ -135,18 +140,15 @@ while(1) {
                        $next_nop_t = time() + 5; # NOP every 5s?
                } elsif ( $line =~ m/^\.END/ ) {
                        client_send  ".DONE BLK WAIT";
                        $next_nop_t = time() + 5; # NOP every 5s?
                } elsif ( $line =~ m/^\.END/ ) {
                        client_send  ".DONE BLK WAIT";
-                       client_send  ".NOP";
-                       my $nop = client_line;
-                       client_send ".DONE $total_pages ".credit($total_charged);
-                       warn "expected NOP got: $nop" unless $nop =~ m/NOP/;
-                       my $null = client_line;
                        $client_socket->close;
                        $client_socket->close;
-               } else {
+               } elsif (defined $line) {
                        warn "UNKNOWN: ",dump($line);
                        print "Response>";
                        my $r = <STDIN>;
                        chomp $r;
                        client_send $r;
                        warn "UNKNOWN: ",dump($line);
                        print "Response>";
                        my $r = <STDIN>;
                        chomp $r;
                        client_send $r;
+               } else {
+                       warn "NULL line, connected ", $client_socket->connected;
                }
        }
        warn "# return to accept";
                }
        }
        warn "# return to accept";