add context construction option to skip server hostname lookup

Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index ca41b04..9912aa5 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -2596,35 +2596,43 @@
 	context->ssl_client_ctx = NULL;
 	openssl_websocket_private_data_index = 0;
 #endif
-	/* find canonical hostname */
 
-	hostname[(sizeof hostname) - 1] = '\0';
-	memset(&sa, 0, sizeof(sa));
-	sa.sa_family = AF_INET;
-	sa.sa_data[(sizeof sa.sa_data) - 1] = '\0';
-	gethostname(hostname, (sizeof hostname) - 1);
+	if (options & LWS_SERVER_OPTION_SKIP_SERVER_CANONICAL_NAME) {
 
-	n = 0;
+		strcpy(context->canonical_hostname, "unknown");
 
-	if (strlen(hostname) < sizeof(sa.sa_data) - 1) {	
-		strcpy(sa.sa_data, hostname);
-//		fprintf(stderr, "my host name is %s\n", sa.sa_data);
-		n = getnameinfo(&sa, sizeof(sa), hostname,
-			(sizeof hostname) - 1, NULL, 0, 0);
+	} else {
+
+		/* find canonical hostname */
+
+		hostname[(sizeof hostname) - 1] = '\0';
+		memset(&sa, 0, sizeof(sa));
+		sa.sa_family = AF_INET;
+		sa.sa_data[(sizeof sa.sa_data) - 1] = '\0';
+		gethostname(hostname, (sizeof hostname) - 1);
+
+		n = 0;
+
+		if (strlen(hostname) < sizeof(sa.sa_data) - 1) {	
+			strcpy(sa.sa_data, hostname);
+	//		fprintf(stderr, "my host name is %s\n", sa.sa_data);
+			n = getnameinfo(&sa, sizeof(sa), hostname,
+				(sizeof hostname) - 1, NULL, 0, 0);
+		}
+
+		if (!n) {
+			strncpy(context->canonical_hostname, hostname,
+						sizeof context->canonical_hostname - 1);
+			context->canonical_hostname[
+					sizeof context->canonical_hostname - 1] = '\0';
+		} else
+			strncpy(context->canonical_hostname, hostname,
+						sizeof context->canonical_hostname - 1);
+
+	//	fprintf(stderr, "context->canonical_hostname = %s\n",
+	//						context->canonical_hostname);
 	}
 
-	if (!n) {
-		strncpy(context->canonical_hostname, hostname,
-					sizeof context->canonical_hostname - 1);
-		context->canonical_hostname[
-				sizeof context->canonical_hostname - 1] = '\0';
-	} else
-		strncpy(context->canonical_hostname, hostname,
-					sizeof context->canonical_hostname - 1);
-
-//	fprintf(stderr, "context->canonical_hostname = %s\n",
-//						context->canonical_hostname);
-
 	/* split the proxy ads:port if given */
 
 	p = getenv("http_proxy");