client: always set port even if sockfd already created
authorAndy Green <andy@warmcat.com>
Fri, 21 Jul 2017 12:35:58 +0000 (20:35 +0800)
committerAndy Green <andy@warmcat.com>
Fri, 21 Jul 2017 13:34:46 +0000 (21:34 +0800)
lib/client-handshake.c

index 599ed09..42d1a9b 100644 (file)
@@ -213,15 +213,11 @@ lws_client_connect_2(struct lws *wsi)
 #endif
 
 #ifdef LWS_USE_IPV6
-               if (wsi->ipv6) {
-                       sa46.sa6.sin6_port = htons(port);
+               if (wsi->ipv6)
                        wsi->desc.sockfd = socket(AF_INET6, SOCK_STREAM, 0);
-               else
+               else
 #endif
-               {
-                       sa46.sa4.sin_port = htons(port);
                        wsi->desc.sockfd = socket(AF_INET, SOCK_STREAM, 0);
-               }
 
                if (!lws_socket_is_valid(wsi->desc.sockfd)) {
                        lwsl_warn("Unable to open socket\n");
@@ -276,11 +272,15 @@ lws_client_connect_2(struct lws *wsi)
        }
 
 #ifdef LWS_USE_IPV6
-       if (wsi->ipv6)
+       if (wsi->ipv6) {
+               sa46.sa6.sin6_port = htons(port);
                n = sizeof(struct sockaddr_in6);
-       else
+       else
 #endif
+       {
+               sa46.sa4.sin_port = htons(port);
                n = sizeof(struct sockaddr);
+       }
 
        if (connect(wsi->desc.sockfd, (const struct sockaddr *)&sa46, n) == -1 ||
            LWS_ERRNO == LWS_EISCONN) {