summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2018-04-13 18:48:06 +0200
committerBernd Edlinger <bernd.edlinger@hotmail.de>2018-04-13 18:48:06 +0200
commit0e3ecaec3ebf2ed0dfbcff07b7fa1cfdd8240d5c (patch)
tree877d1a83f3b961b0aad3dbe2d5a8f0808b83fe0f
parent1b9f41a0df6ed2fac1c5303be909c2f70c404f20 (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)
-rw-r--r--util/perl/TLSProxy/Proxy.pm2
-rw-r--r--util/perl/TLSProxy/Record.pm3
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;