Bladeren bron

IPv6 is not always enabled

bel 10 jaren geleden
bovenliggende
commit
578284e07d
2 gewijzigde bestanden met toevoegingen van 8 en 1 verwijderingen
  1. 6 1
      src/civetweb.c
  2. 2 0
      test/public.c

+ 6 - 1
src/civetweb.c

@@ -4950,9 +4950,12 @@ static SOCKET conn2(struct mg_context *ctx /* may be null */,
 
 
 	if (ip_ver == 4) {
 	if (ip_ver == 4) {
 		sock = socket(PF_INET, SOCK_STREAM, 0);
 		sock = socket(PF_INET, SOCK_STREAM, 0);
-	} else if (ip_ver == 6) {
+	}
+#ifdef USE_IPV6
+    else if (ip_ver == 6) {
 		sock = socket(PF_INET6, SOCK_STREAM, 0);
 		sock = socket(PF_INET6, SOCK_STREAM, 0);
 	}
 	}
+#endif
 
 
 	if (sock == INVALID_SOCKET) {
 	if (sock == INVALID_SOCKET) {
 		mg_snprintf(NULL,
 		mg_snprintf(NULL,
@@ -4972,11 +4975,13 @@ static SOCKET conn2(struct mg_context *ctx /* may be null */,
 		return sock;
 		return sock;
 	}
 	}
 
 
+#ifdef USE_IPV6
 	if ((ip_ver == 6) &&
 	if ((ip_ver == 6) &&
 	    (connect(sock, (struct sockaddr *)&sa.sin6, sizeof(sa.sin6)) == 0)) {
 	    (connect(sock, (struct sockaddr *)&sa.sin6, sizeof(sa.sin6)) == 0)) {
 		/* connected with IPv6 */
 		/* connected with IPv6 */
 		return sock;
 		return sock;
 	}
 	}
+#endif
 
 
 	/* Not connected */
 	/* Not connected */
 	mg_snprintf(NULL,
 	mg_snprintf(NULL,

+ 2 - 0
test/public.c

@@ -612,6 +612,7 @@ START_TEST(test_request_handlers)
 	mg_close_connection(conn);
 	mg_close_connection(conn);
 
 
 
 
+#ifdef USE_IPV6
 	/* Get data from callback using [::1] */
 	/* Get data from callback using [::1] */
 	conn = mg_download(
 	conn = mg_download(
 	    "[::1]", atoi(HTTP_PORT), 0, ebuf, sizeof(ebuf), "%s", request);
 	    "[::1]", atoi(HTTP_PORT), 0, ebuf, sizeof(ebuf), "%s", request);
@@ -623,6 +624,7 @@ START_TEST(test_request_handlers)
 	i = mg_read(conn, buf, sizeof(buf));
 	i = mg_read(conn, buf, sizeof(buf));
 	ck_assert_int_eq(i, 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10);
 	ck_assert_int_eq(i, 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10);
 	mg_close_connection(conn);
 	mg_close_connection(conn);
+#endif
 
 
 
 
 /* It seems to be impossible to find out what the actual working
 /* It seems to be impossible to find out what the actual working