diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2022-11-01 22:58:59 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2022-11-01 22:58:59 +0000 |
| commit | cfc39718e9cc18943a6f8428c560b02c6f590b16 (patch) | |
| tree | 624fa2a11e13ef0ee181055f54c50975cbbb9491 /crypto/openssl/ssl/record | |
| parent | b7ac17b48bdfc688b54b29aa4feacb535c91aec2 (diff) | |
| parent | b6b67f23b82101d4c04c89f81d726b902ab77106 (diff) | |
Diffstat (limited to 'crypto/openssl/ssl/record')
| -rw-r--r-- | crypto/openssl/ssl/record/rec_layer_s3.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/crypto/openssl/ssl/record/rec_layer_s3.c b/crypto/openssl/ssl/record/rec_layer_s3.c index 1356bd7b7b70..501f58a2b373 100644 --- a/crypto/openssl/ssl/record/rec_layer_s3.c +++ b/crypto/openssl/ssl/record/rec_layer_s3.c @@ -1,5 +1,5 @@ /* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy @@ -115,10 +115,22 @@ size_t ssl3_pending(const SSL *s) if (s->rlayer.rstate == SSL_ST_READ_BODY) return 0; + /* Take into account DTLS buffered app data */ + if (SSL_IS_DTLS(s)) { + DTLS1_RECORD_DATA *rdata; + pitem *item, *iter; + + iter = pqueue_iterator(s->rlayer.d->buffered_app_data.q); + while ((item = pqueue_next(&iter)) != NULL) { + rdata = item->data; + num += rdata->rrec.length; + } + } + for (i = 0; i < RECORD_LAYER_get_numrpipes(&s->rlayer); i++) { if (SSL3_RECORD_get_type(&s->rlayer.rrec[i]) != SSL3_RT_APPLICATION_DATA) - return 0; + return num; num += SSL3_RECORD_get_length(&s->rlayer.rrec[i]); } |
