summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/bio/bss_dgram_pair.c3
-rw-r--r--test/bio_dgram_test.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/crypto/bio/bss_dgram_pair.c b/crypto/bio/bss_dgram_pair.c
index 534a2216aa..08dd802d8f 100644
--- a/crypto/bio/bss_dgram_pair.c
+++ b/crypto/bio/bss_dgram_pair.c
@@ -279,8 +279,9 @@ static int dgram_pair_init(BIO *bio)
if (b == NULL)
return 0;
- b->req_buf_len = 17*1024; /* default buffer size */
b->mtu = 1472; /* conservative default MTU */
+ /* default buffer size */
+ b->req_buf_len = 9 * (sizeof(struct dgram_hdr) + b->mtu);
b->lock = CRYPTO_THREAD_lock_new();
if (b->lock == NULL) {
diff --git a/test/bio_dgram_test.c b/test/bio_dgram_test.c
index f6c3e30c14..70157493f9 100644
--- a/test/bio_dgram_test.c
+++ b/test/bio_dgram_test.c
@@ -559,8 +559,11 @@ static int test_bio_dgram_pair(int idx)
goto err;
/*
- * Should be able to fit at least 9 datagrams in default write buffer size
- * in worst case
+ * The number of datagrams we can fit depends on the size of the default
+ * write buffer size, the size of the datagram header and the size of the
+ * payload data we send in each datagram. The max payload data is based on
+ * the mtu. The default write buffer size is 9 * (sizeof(header) + mtu) so
+ * we expect at least 9 maximally sized datagrams to fit in the buffer.
*/
if (!TEST_int_ge(i, 9))
goto err;