From 75bbb3b2c00d9539beb04b6c6ae3ab2d73ad181c Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Fri, 21 Jul 2017 20:35:58 +0800
Subject: [PATCH] client: always set port even if sockfd already created

---
 lib/client-handshake.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/client-handshake.c b/lib/client-handshake.c
index 599ed091..42d1a9b3 100644
--- a/lib/client-handshake.c
+++ b/lib/client-handshake.c
@@ -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) {
-- 
GitLab