diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-05-11 17:20:32 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-05-11 17:20:32 +0000 |
commit | 87d10254bc3254cfa45b41b7604c25e3d8f0c64a (patch) | |
tree | f1de97502eaafa9c46391b06a97fdc809bd146e9 /src | |
parent | 6ea4a30accbfc016f1348839ca893173a0ab9734 (diff) | |
download | gnunet-87d10254bc3254cfa45b41b7604c25e3d8f0c64a.tar.gz gnunet-87d10254bc3254cfa45b41b7604c25e3d8f0c64a.zip |
use IPV6_ONLY when binding sockets
Diffstat (limited to 'src')
-rw-r--r-- | src/arm/gnunet-service-manager.c | 11 | ||||
-rw-r--r-- | src/arm/test_arm_api.c | 2 | ||||
-rw-r--r-- | src/arm/test_arm_api_data.conf | 1 | ||||
-rw-r--r-- | src/util/server.c | 19 |
4 files changed, 26 insertions, 7 deletions
diff --git a/src/arm/gnunet-service-manager.c b/src/arm/gnunet-service-manager.c index 79a5e5043..5a8cd58d2 100644 --- a/src/arm/gnunet-service-manager.c +++ b/src/arm/gnunet-service-manager.c | |||
@@ -675,6 +675,14 @@ createListeningSocket (struct sockaddr *sa, | |||
675 | (sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK) | 675 | (sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK) |
676 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 676 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
677 | "setsockopt"); | 677 | "setsockopt"); |
678 | #ifdef IPV6_V6ONLY | ||
679 | if ( (sa->sa_family == AF_INET6) && | ||
680 | (GNUNET_NETWORK_socket_setsockopt | ||
681 | (sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof (on)) != GNUNET_OK)) | ||
682 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | ||
683 | "setsockopt"); | ||
684 | #endif | ||
685 | |||
678 | if (GNUNET_NETWORK_socket_bind | 686 | if (GNUNET_NETWORK_socket_bind |
679 | (sock, (const struct sockaddr *) sa, addr_len) != GNUNET_OK) | 687 | (sock, (const struct sockaddr *) sa, addr_len) != GNUNET_OK) |
680 | { | 688 | { |
@@ -693,6 +701,9 @@ createListeningSocket (struct sockaddr *sa, | |||
693 | GNUNET_free (sa); | 701 | GNUNET_free (sa); |
694 | return; | 702 | return; |
695 | } | 703 | } |
704 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
705 | _("ARM now monitors connections to service `%s'\n"), | ||
706 | serviceName); | ||
696 | serviceListeningInfo = GNUNET_malloc (sizeof (struct ServiceListeningInfo)); | 707 | serviceListeningInfo = GNUNET_malloc (sizeof (struct ServiceListeningInfo)); |
697 | serviceListeningInfo->serviceName = GNUNET_strdup (serviceName); | 708 | serviceListeningInfo->serviceName = GNUNET_strdup (serviceName); |
698 | serviceListeningInfo->service_addr = sa; | 709 | serviceListeningInfo->service_addr = sa; |
diff --git a/src/arm/test_arm_api.c b/src/arm/test_arm_api.c index 66201aebe..e6335c64c 100644 --- a/src/arm/test_arm_api.c +++ b/src/arm/test_arm_api.c | |||
@@ -34,7 +34,7 @@ | |||
34 | 34 | ||
35 | #define START_ARM GNUNET_YES | 35 | #define START_ARM GNUNET_YES |
36 | 36 | ||
37 | #define START_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 50) | 37 | #define START_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500) |
38 | 38 | ||
39 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 15) | 39 | #define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 15) |
40 | 40 | ||
diff --git a/src/arm/test_arm_api_data.conf b/src/arm/test_arm_api_data.conf index 17a8ac613..d4e8d6dbd 100644 --- a/src/arm/test_arm_api_data.conf +++ b/src/arm/test_arm_api_data.conf | |||
@@ -22,4 +22,3 @@ CONFIG = $DEFAULTCONFIG | |||
22 | BINARY = mockup-service | 22 | BINARY = mockup-service |
23 | ACCEPT_FROM = 127.0.0.1; | 23 | ACCEPT_FROM = 127.0.0.1; |
24 | ACCEPT_FROM6 = ::1; | 24 | ACCEPT_FROM6 = ::1; |
25 | ALLOW_SHUTDOWN = YES | ||
diff --git a/src/util/server.c b/src/util/server.c index 832f4ed58..131c7c5c1 100644 --- a/src/util/server.c +++ b/src/util/server.c | |||
@@ -386,11 +386,20 @@ open_listen_socket (const struct sockaddr *serverAddr, socklen_t socklen) | |||
386 | errno = 0; | 386 | errno = 0; |
387 | return NULL; | 387 | return NULL; |
388 | } | 388 | } |
389 | if ((port != 0) && | 389 | if (port != 0) |
390 | (GNUNET_NETWORK_socket_setsockopt | 390 | { |
391 | (sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK)) | 391 | if (GNUNET_NETWORK_socket_setsockopt |
392 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | 392 | (sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK) |
393 | "setsockopt"); | 393 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, |
394 | "setsockopt"); | ||
395 | #ifdef IPV6_V6ONLY | ||
396 | if ( (serverAddr->sa_family == AF_INET6) && | ||
397 | (GNUNET_NETWORK_socket_setsockopt | ||
398 | (sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof (on)) != GNUNET_OK) ) | ||
399 | GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, | ||
400 | "setsockopt"); | ||
401 | #endif | ||
402 | } | ||
394 | /* bind the socket */ | 403 | /* bind the socket */ |
395 | if (GNUNET_NETWORK_socket_bind (sock, serverAddr, socklen) != GNUNET_OK) | 404 | if (GNUNET_NETWORK_socket_bind (sock, serverAddr, socklen) != GNUNET_OK) |
396 | { | 405 | { |