Fix matching of channel and global requests with replies in logparse.pl.
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 25 Aug 2012 13:54:56 +0000 (13:54 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 25 Aug 2012 13:54:56 +0000 (13:54 +0000)
In each case, want_reply was being treated as true even when it wasn't,
because it got decoded into "yes"/"no", both of which are true in
Perl.

git-svn-id: svn://svn.tartarus.org/sgt/putty@9617 cda61777-01e9-0310-a592-d414129be87e

contrib/logparse.pl

index 5851a87..1790f2e 100755 (executable)
@@ -172,7 +172,7 @@ my %packets = (
         my ($type, $wantreply) = &parse("sb", $data);
         printf "%s (%s)", $type, $wantreply eq "yes" ? "reply" : "noreply";
         my $request = [$seq, $type];
-        push @{$globalreq{$direction}}, $request if $wantreply;
+        push @{$globalreq{$direction}}, $request if $wantreply eq "yes";
         if ($type eq "tcpip-forward" or $type eq "cancel-tcpip-forward") {
             my ($addr, $port) = &parse("su", $data);
             printf " %s:%s", $addr, $port;
@@ -361,7 +361,8 @@ my %packets = (
         my $chan = $channels[$index];
         printf "ch%d (%s) %s (%s)",
             $index, $chan->{'id'}, $type, $wantreply eq "yes" ? "reply" : "noreply";
-        push @{$chan->{'requests_'.$direction}}, [$seq, $type] if $wantreply;
+        push @{$chan->{'requests_'.$direction}}, [$seq, $type]
+           if $wantreply eq "yes";
         if ($type eq "pty-req") {
             my ($term, $w, $h, $pw, $ph, $modes) = &parse("suuuus", $data);
             printf " %s %sx%s", &str($term), $w, $h;