apps/s_socket.c: print only dynamically allocated port in do_server.
authorAndy Polyakov <appro@openssl.org>
Sat, 14 Apr 2018 19:42:21 +0000 (21:42 +0200)
committerAndy Polyakov <appro@openssl.org>
Tue, 17 Apr 2018 14:41:01 +0000 (16:41 +0200)
For formal backward compatibility print original "ACCEPT" message for
fixed port and "ACCEPT host:port" for dynamically allocated.

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5956)

apps/s_socket.c

index ae62a135ce8573e65db368211b2b03b1d811d251..d21bfc60c19a2be0eba5eaab93d91f70195bfe86 100644 (file)
@@ -283,7 +283,8 @@ int do_server(int *accept_sock, const char *host, const char *port,
     BIO_ADDRINFO_free(res);
     res = NULL;
 
-    {
+    if (BIO_ADDR_rawport(sock_address) == 0) {
+        /* dynamically allocated port, report which one */
         union BIO_sock_info_u info;
         char *hostname = NULL;
         char *service = NULL;
@@ -309,6 +310,9 @@ int do_server(int *accept_sock, const char *host, const char *port,
             ERR_print_errors(bio_err);
             goto end;
         }
+    } else {
+        (void)BIO_printf(bio_s_out, "ACCEPT\n");
+        (void)BIO_flush(bio_s_out);
     }
 
     if (accept_sock != NULL)