fix-hostname-to-be-server-name--allow-switches-in-any-order.patch

Signed-off-by: Andy Green <andy@warmcat.com>
diff --git a/lib/client-handshake.c b/lib/client-handshake.c
index bb46a7a..a95eb52 100644
--- a/lib/client-handshake.c
+++ b/lib/client-handshake.c
@@ -401,6 +401,7 @@
 							    protocol != NULL)) {
 		fprintf(stderr, "libwebsocket_client_handshake "
 						"missing required header(s)\n");
+		pkt[len] = '\0';
 		fprintf(stderr, "%s", pkt);
 		goto bail2;
 	}
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index c88715e..7f11164 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -672,6 +672,8 @@
 	strncpy(this->canonical_hostname, he->h_name,
 					   sizeof this->canonical_hostname - 1);
 	this->canonical_hostname[sizeof this->canonical_hostname - 1] = '\0';
+	fprintf(stderr, "  canonical hostname = '%s'\n",
+					this->canonical_hostname);
 
 	/* split the proxy ads:port if given */
 
diff --git a/test-server/test-client.c b/test-server/test-client.c
index e03d115..59595e0 100644
--- a/test-server/test-client.c
+++ b/test-server/test-client.c
@@ -168,7 +168,7 @@
 	int port = 7681;
 	int use_ssl = 0;
 	struct libwebsocket_context *context;
-	const char *address = argv[1];
+	const char *address;
 	struct libwebsocket *wsi_dumb;
 	struct libwebsocket *wsi_mirror;
 
@@ -200,6 +200,11 @@
 		}
 	}
 
+	if (optind >= argc)
+		goto usage;
+
+	address = argv[optind];
+
 	/*
 	 * create the websockets context.  This tracks open connections and
 	 * knows how to route any traffic and which protocol version to use,
@@ -219,7 +224,7 @@
 	/* create a client websocket using dumb increment protocol */
 
 	wsi_dumb = libwebsocket_client_connect(context, address, port, use_ssl,
-			"/", libwebsocket_canonical_hostname(context), "origin",
+			"/", argv[optind], argv[optind],
 				       protocols[PROTOCOL_DUMB_INCREMENT].name);
 
 	if (wsi_dumb == NULL) {
@@ -230,7 +235,7 @@
 	/* create a client websocket using mirror protocol */
 
 	wsi_mirror = libwebsocket_client_connect(context, address, port,
-	     use_ssl,  "/", libwebsocket_canonical_hostname(context), "origin",
+	     use_ssl,  "/", argv[optind], argv[optind],
 				       protocols[PROTOCOL_LWS_MIRROR].name);
 
 	if (wsi_mirror == NULL) {