Use the protocol we know rather than BIO_ADDRINFO_protocol(res)
authorRichard Levitte <levitte@openssl.org>
Wed, 10 Feb 2016 19:54:48 +0000 (20:54 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 10 Feb 2016 19:58:18 +0000 (20:58 +0100)
Because some platforms won't will in any value in ai_protocol, there's
no point using it if we already know what it should be.

Reviewed-by: Rich Salz <rsalz@openssl.org>
apps/s_socket.c

index e345913b0d39b0af2deced3b1d6a6ef6e1a14190..20c662664da4746ca5cf2a27fc11bd33db7f3e42 100644 (file)
@@ -179,7 +179,7 @@ int init_client(int *sock, const char *host, const char *port,
                        && (type == 0 || type == BIO_ADDRINFO_socktype(res)));
 
         *sock = BIO_socket(BIO_ADDRINFO_family(ai), BIO_ADDRINFO_socktype(ai),
-                           BIO_ADDRINFO_protocol(ai), 0);
+                           protocol, 0);
         if (*sock == INVALID_SOCKET) {
             /* Maybe the kernel doesn't support the socket family, even if
              * BIO_lookup() added it in the returned result...
@@ -257,7 +257,7 @@ int do_server(int *accept_sock, const char *host, const char *port,
                    && (type == 0 || type == BIO_ADDRINFO_socktype(res)));
 
     asock = BIO_socket(BIO_ADDRINFO_family(res), BIO_ADDRINFO_socktype(res),
-                       BIO_ADDRINFO_protocol(res), 0);
+                       protocol, 0);
     if (asock == INVALID_SOCKET
         || !BIO_listen(asock, BIO_ADDRINFO_address(res), BIO_SOCK_REUSEADDR)) {
         BIO_ADDRINFO_free(res);