TLSProxy/Proxy.pm: refine NewSessionTicket detection.
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5975)
This commit is contained in:
parent
3f473b936a
commit
17cde9c2e4
1 changed files with 14 additions and 5 deletions
|
@ -369,13 +369,14 @@ sub clientstart
|
||||||
$fdset = IO::Select->new($server_sock, $client_sock);
|
$fdset = IO::Select->new($server_sock, $client_sock);
|
||||||
my @ready;
|
my @ready;
|
||||||
my $ctr = 0;
|
my $ctr = 0;
|
||||||
my $sessionfile = $self->{sessionfile};
|
|
||||||
local $SIG{PIPE} = "IGNORE";
|
local $SIG{PIPE} = "IGNORE";
|
||||||
|
$self->{saw_session_ticket} = undef;
|
||||||
while($fdset->count && $ctr < 10) {
|
while($fdset->count && $ctr < 10) {
|
||||||
if (defined($sessionfile)) {
|
if (defined($self->{sessionfile})) {
|
||||||
# s_client got -ign_eof and won't be exiting voluntarily, so we
|
# s_client got -ign_eof and won't be exiting voluntarily, so we
|
||||||
# look for data *and* check on session file...
|
# look for data *and* session ticket...
|
||||||
last if TLSProxy::Message->success() && -s $sessionfile;
|
last if TLSProxy::Message->success()
|
||||||
|
&& $self->{saw_session_ticket};
|
||||||
}
|
}
|
||||||
if (!(@ready = $fdset->can_read(1))) {
|
if (!(@ready = $fdset->can_read(1))) {
|
||||||
$ctr++;
|
$ctr++;
|
||||||
|
@ -449,7 +450,7 @@ sub clientstart
|
||||||
$self->connect_to_server();
|
$self->connect_to_server();
|
||||||
}
|
}
|
||||||
$pid = $self->{clientpid};
|
$pid = $self->{clientpid};
|
||||||
print "Waiting for client process to close: $pid...\n";
|
print "Waiting for s_client process to close: $pid...\n";
|
||||||
waitpid($pid, 0);
|
waitpid($pid, 0);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -496,6 +497,14 @@ sub process_packet
|
||||||
$self->filter->($self);
|
$self->filter->($self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#Take a note on NewSessionTicket
|
||||||
|
foreach my $message (reverse @{$self->{message_list}}) {
|
||||||
|
if ($message->{mt} == TLSProxy::Message::MT_NEW_SESSION_TICKET) {
|
||||||
|
$self->{saw_session_ticket} = 1;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#Reconstruct the packet
|
#Reconstruct the packet
|
||||||
$packet = "";
|
$packet = "";
|
||||||
foreach my $record (@{$self->record_list}) {
|
foreach my $record (@{$self->record_list}) {
|
||||||
|
|
Loading…
Reference in a new issue