summaryrefslogtreecommitdiff
path: root/src/lib/libssl/d1_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/d1_lib.c')
-rw-r--r--src/lib/libssl/d1_lib.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/libssl/d1_lib.c b/src/lib/libssl/d1_lib.c
index 48e8b6ffbb..c3b77c889b 100644
--- a/src/lib/libssl/d1_lib.c
+++ b/src/lib/libssl/d1_lib.c
@@ -204,7 +204,8 @@ void dtls1_clear(SSL *s)
204 pqueue buffered_messages; 204 pqueue buffered_messages;
205 pqueue sent_messages; 205 pqueue sent_messages;
206 pqueue buffered_app_data; 206 pqueue buffered_app_data;
207 207 unsigned int mtu;
208
208 if (s->d1) 209 if (s->d1)
209 { 210 {
210 unprocessed_rcds = s->d1->unprocessed_rcds.q; 211 unprocessed_rcds = s->d1->unprocessed_rcds.q;
@@ -212,6 +213,7 @@ void dtls1_clear(SSL *s)
212 buffered_messages = s->d1->buffered_messages; 213 buffered_messages = s->d1->buffered_messages;
213 sent_messages = s->d1->sent_messages; 214 sent_messages = s->d1->sent_messages;
214 buffered_app_data = s->d1->buffered_app_data.q; 215 buffered_app_data = s->d1->buffered_app_data.q;
216 mtu = s->d1->mtu;
215 217
216 dtls1_clear_queues(s); 218 dtls1_clear_queues(s);
217 219
@@ -222,6 +224,11 @@ void dtls1_clear(SSL *s)
222 s->d1->cookie_len = sizeof(s->d1->cookie); 224 s->d1->cookie_len = sizeof(s->d1->cookie);
223 } 225 }
224 226
227 if (SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)
228 {
229 s->d1->mtu = mtu;
230 }
231
225 s->d1->unprocessed_rcds.q = unprocessed_rcds; 232 s->d1->unprocessed_rcds.q = unprocessed_rcds;
226 s->d1->processed_rcds.q = processed_rcds; 233 s->d1->processed_rcds.q = processed_rcds;
227 s->d1->buffered_messages = buffered_messages; 234 s->d1->buffered_messages = buffered_messages;