diff options
Diffstat (limited to 'src/lib/libssl/d1_lib.c')
-rw-r--r-- | src/lib/libssl/d1_lib.c | 9 |
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; |