Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
Approved by: steve@openssl.org

Updated DTLS Rentransmission bug patch.
This commit is contained in:
Dr. Stephen Henson
2009-04-15 14:49:36 +00:00
parent 46ffb2dc97
commit c900a78c99
4 changed files with 100 additions and 12 deletions

View File

@@ -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++;
}