diff options
author | John Baldwin <jhb@FreeBSD.org> | 2019-08-23 16:42:48 -0700 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2019-10-31 10:24:32 +0000 |
commit | 1ca50aa975fb149a75a3b0411230761376cb5e33 (patch) | |
tree | 73270c37a2e34a63bd1bd232ba006b25a70b083e /include | |
parent | 712c0942939c9aba2f2afadb9e4276b1a3df1345 (diff) |
Fix BIO_get_ktls_send() and BIO_get_ktls_recv() to work again.
This partially reverts 3119ab3c9e6d211c461a245f3744893e17b6c193. In the
case of a simple openssl s_server instance, the bio in s->wbio is a
BIO_TYPE_BUFFER BIO, not BIO_TYPE_SOCKET. This caused all of the checks
to fail breaking KTLS.
The default return value of control methods I have looked it is zero
for unknown control requests, so invoking the control requests should
be returning 0 for non-socket BIOs already.
This does still map the requests to 0 at compile time for the non-KTLS
case so that the compiler can optimize the checks away entirely.
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10045)
Diffstat (limited to 'include')
-rw-r--r-- | include/openssl/bio.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/include/openssl/bio.h b/include/openssl/bio.h index 9fb8095014..bb289e6fa2 100644 --- a/include/openssl/bio.h +++ b/include/openssl/bio.h @@ -162,11 +162,9 @@ extern "C" { # ifndef OPENSSL_NO_KTLS # define BIO_get_ktls_send(b) \ - (BIO_method_type(b) == BIO_TYPE_SOCKET \ - && BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL)) + BIO_ctrl(b, BIO_CTRL_GET_KTLS_SEND, 0, NULL) # define BIO_get_ktls_recv(b) \ - (BIO_method_type(b) == BIO_TYPE_SOCKET \ - && BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL)) + BIO_ctrl(b, BIO_CTRL_GET_KTLS_RECV, 0, NULL) # else # define BIO_get_ktls_send(b) (0) # define BIO_get_ktls_recv(b) (0) |