diff options
author | Matthew Hodgson <matthew@matrix.org> | 2018-11-21 02:00:52 +0000 |
---|---|---|
committer | Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> | 2018-11-21 21:04:38 +0100 |
commit | b92678f4e94eeec468f194333f874906a6fff7f1 (patch) | |
tree | 1b782ba002c08313899596364ccbaeca7a161669 /apps | |
parent | 2cc3f68cde77af23c61fbad65470602ee86f2575 (diff) |
openssl s_server: don't use sendto() with connected UDP socket
Fixes #7675
On macOS, if you call `connect()` on a UDP socket you cannot then
call `sendto()` with a destination, otherwise it fails with Err#56
('socket is already connected').
By calling `BIO_ctrl_set_connected()` on the wbio we can tell it
that the socket has been connected and make it call `send()` rather
than `sendto()`.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/7676)
Diffstat (limited to 'apps')
-rw-r--r-- | apps/s_server.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/apps/s_server.c b/apps/s_server.c index ac7dca607b..15b4b430da 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -2754,6 +2754,8 @@ static int init_ssl_connection(SSL *con) BIO_ADDR_free(client); return 0; } + + (void)BIO_ctrl_set_connected(wbio, client); BIO_ADDR_free(client); dtlslisten = 0; } else { |