diff --git a/src/internal.c b/src/internal.c index 25fb84be7..29d8602e0 100644 --- a/src/internal.c +++ b/src/internal.c @@ -5975,7 +5975,8 @@ int SendData(CYASSL* ssl, const void* data, int sz) { int sent = 0, /* plainText size */ sendSz, - ret; + ret, + dtlsExtra = 0; if (ssl->error == WANT_WRITE) ssl->error = 0; @@ -6003,6 +6004,12 @@ int SendData(CYASSL* ssl, const void* data, int sz) } } +#ifdef CYASSL_DTLS + if (ssl->options.dtls) { + dtlsExtra = DTLS_RECORD_EXTRA; + } +#endif + for (;;) { #ifdef HAVE_MAX_FRAGMENT int len = min(sz - sent, min(ssl->max_fragment, OUTPUT_RECORD_SIZE)); @@ -6027,7 +6034,7 @@ int SendData(CYASSL* ssl, const void* data, int sz) /* check for available size */ if ((ret = CheckAvailableSize(ssl, len + COMP_EXTRA + - MAX_MSG_EXTRA)) != 0) + dtlsExtra + MAX_MSG_EXTRA)) != 0) return ssl->error = ret; /* get ouput buffer */