aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-05-11 17:20:32 +0000
committerChristian Grothoff <christian@grothoff.org>2010-05-11 17:20:32 +0000
commit87d10254bc3254cfa45b41b7604c25e3d8f0c64a (patch)
treef1de97502eaafa9c46391b06a97fdc809bd146e9 /src
parent6ea4a30accbfc016f1348839ca893173a0ab9734 (diff)
downloadgnunet-87d10254bc3254cfa45b41b7604c25e3d8f0c64a.tar.gz
gnunet-87d10254bc3254cfa45b41b7604c25e3d8f0c64a.zip
use IPV6_ONLY when binding sockets
Diffstat (limited to 'src')
-rw-r--r--src/arm/gnunet-service-manager.c11
-rw-r--r--src/arm/test_arm_api.c2
-rw-r--r--src/arm/test_arm_api_data.conf1
-rw-r--r--src/util/server.c19
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
22BINARY = mockup-service 22BINARY = mockup-service
23ACCEPT_FROM = 127.0.0.1; 23ACCEPT_FROM = 127.0.0.1;
24ACCEPT_FROM6 = ::1; 24ACCEPT_FROM6 = ::1;
25ALLOW_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 {