my $server = shift;
my $flight = shift;
my $packet = shift;
+ my $partial = "";
my @record_list = ();
my @message_list = ();
my $data;
print " (client -> server)\n";
}
#Get the record header
- if (length($packet) < TLS_RECORD_HEADER_LENGTH) {
+ if (length($packet) < TLS_RECORD_HEADER_LENGTH
+ || length($packet) < 5 + unpack("n", substr($packet, 3, 2))) {
print "Partial data : ".length($packet)." bytes\n";
+ $partial = $packet;
$packet = "";
} else {
($content_type, $version, $len) = unpack('CnnC*', $packet);
}
}
- return (\@record_list, \@message_list);
+ return (\@record_list, \@message_list, $partial);
}
sub clear
data => $data,
decrypt_data => $decrypt_data,
orig_decrypt_data => $decrypt_data,
+ sent => 0,
encrypted => 0,
outer_content_type => RT_APPLICATION_DATA
};
my $server = shift;
my $data;
+ if ($self->{sent}) {
+ return "";
+ }
+ $self->{sent} = 1;
+
if ($self->sslv2) {
$data = pack('n', $self->len | 0x8000);
} else {