PR: 1828
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de> Approved by: steve@openssl.org Updated DTLS Rentransmission bug patch.
This commit is contained in:
15
ssl/d1_pkt.c
15
ssl/d1_pkt.c
@@ -1020,7 +1020,9 @@ start:
|
||||
n2s(p, seq);
|
||||
n2l3(p, frag_off);
|
||||
|
||||
dtls1_retransmit_message(s, seq, frag_off, &found);
|
||||
dtls1_retransmit_message(s,
|
||||
dtls1_get_queue_priority(frag->msg_header.seq, 0),
|
||||
frag_off, &found);
|
||||
if ( ! found && SSL_in_init(s))
|
||||
{
|
||||
/* fprintf( stderr,"in init = %d\n", SSL_in_init(s)); */
|
||||
@@ -1109,6 +1111,16 @@ start:
|
||||
goto start;
|
||||
}
|
||||
|
||||
/* If we are server, we may have a repeated FINISHED of the
|
||||
* client here, then retransmit our CCS and FINISHED.
|
||||
*/
|
||||
if (msg_hdr.type == SSL3_MT_FINISHED)
|
||||
{
|
||||
dtls1_retransmit_buffered_messages(s);
|
||||
rr->length = 0;
|
||||
goto start;
|
||||
}
|
||||
|
||||
if (((s->state&SSL_ST_MASK) == SSL_ST_OK) &&
|
||||
!(s->s3->flags & SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS))
|
||||
{
|
||||
@@ -1763,6 +1775,7 @@ dtls1_reset_seq_numbers(SSL *s, int rw)
|
||||
else
|
||||
{
|
||||
seq = s->s3->write_sequence;
|
||||
memcpy(s->d1->last_write_sequence, seq, sizeof(s->s3->write_sequence));
|
||||
s->d1->w_epoch++;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user