diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-04-13 18:48:06 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2018-04-13 18:48:06 +0200 |
commit | 0e3ecaec3ebf2ed0dfbcff07b7fa1cfdd8240d5c (patch) | |
tree | 877d1a83f3b961b0aad3dbe2d5a8f0808b83fe0f /util | |
parent | 1b9f41a0df6ed2fac1c5303be909c2f70c404f20 (diff) |
Rework partial packet handling once more
Address the concern that commit c53c2fec raised differently.
The original direction of the traffic is encoded in bit 0
of the flight number.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5923)
Diffstat (limited to 'util')
-rw-r--r-- | util/perl/TLSProxy/Proxy.pm | 2 | ||||
-rw-r--r-- | util/perl/TLSProxy/Record.pm | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm index 45d88bffaa..752b572b8c 100644 --- a/util/perl/TLSProxy/Proxy.pm +++ b/util/perl/TLSProxy/Proxy.pm @@ -479,7 +479,7 @@ sub process_packet print "\n"; - if (scalar(@{$ret[0]}) == 0) { + if (scalar(@{$ret[0]}) == 0 or length($ret[2]) != 0) { return ""; } diff --git a/util/perl/TLSProxy/Record.pm b/util/perl/TLSProxy/Record.pm index acace3651a..49a0084d36 100644 --- a/util/perl/TLSProxy/Record.pm +++ b/util/perl/TLSProxy/Record.pm @@ -279,7 +279,8 @@ sub reconstruct_record my $server = shift; my $data; - if ($self->{sent}) { + #We only replay the records in the same direction + if ($self->{sent} || ($self->flight & 1) != $server) { return ""; } $self->{sent} = 1; |