From edd5b9d708d03ce1bdc1cbfc026ccc9183d586ad Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Wed, 7 Jun 2023 16:26:58 +0100 Subject: [PATCH] Fix minor issues in the demo/man pages for TLS client/blocking Reviewed-by: Viktor Dukhovni Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/21133) --- demos/guide/tls-client-block.c | 4 +--- doc/man7/ossl-guide-tls-client-block.pod | 14 +++++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/demos/guide/tls-client-block.c b/demos/guide/tls-client-block.c index 56133aab64bfc..ef8248c734816 100644 --- a/demos/guide/tls-client-block.c +++ b/demos/guide/tls-client-block.c @@ -37,10 +37,8 @@ static BIO *create_socket_bio(const char *hostname, const char *port) * Lookup IP address info for the server. */ if (!BIO_lookup_ex(hostname, port, BIO_LOOKUP_CLIENT, 0, SOCK_STREAM, 0, - &res)) { - BIO_closesocket(sock); + &res)) return NULL; - } /* * Loop through all the possible addresses for the server and find one diff --git a/doc/man7/ossl-guide-tls-client-block.pod b/doc/man7/ossl-guide-tls-client-block.pod index 30832c5b20227..aab5533f5e5e6 100644 --- a/doc/man7/ossl-guide-tls-client-block.pod +++ b/doc/man7/ossl-guide-tls-client-block.pod @@ -166,16 +166,16 @@ provide the POSIX compatible I function. For example: OpenSSL provides portable helper functions to do these tasks which also integrate into the OpenSSL error system to log error data, e.g. - BIO_ADDRINFO *ai = NULL; + int sock = -1; + BIO_ADDRINFO *res; + const BIO_ADDRINFO *ai = NULL; /* * Lookup IP address info for the server. */ if (!BIO_lookup_ex(hostname, port, BIO_LOOKUP_CLIENT, 0, SOCK_STREAM, 0, - &res)) { - BIO_closesocket(sock); + &res)) return NULL; - } /* * Loop through all the possible addresses for the server and find one @@ -199,6 +199,9 @@ integrate into the OpenSSL error system to log error data, e.g. sock = -1; continue; } + + /* We have a connected socket so break out of the loop */ + break; } /* Free the address information resources we allocated earlier */ @@ -342,7 +345,8 @@ data from the server we use the L function. In HTTP 1.0 the client always writes data first. size_t written; - const char *request = "GET / HTTP/1.0\r\nHost: "HOSTNAME"\r\n\r\n"; + const char *request = + "GET / HTTP/1.0\r\nConnection: close\r\nHost: "HOSTNAME"\r\n\r\n"; /* Write an HTTP GET request to the peer */ if (!SSL_write_ex(ssl, request, strlen(request), &written)) {