aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-05-25 21:41:52 +0000
committerChristian Grothoff <christian@grothoff.org>2011-05-25 21:41:52 +0000
commit0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2 (patch)
tree7a274ea3d3591fe59d724ca691fdc976d0175066 /src/util
parent79ae099456caba64b0599b7c6e2b2b86bcc6571f (diff)
downloadgnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.tar.gz
gnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.zip
set sxn_len on FreeBSD where required
Diffstat (limited to 'src/util')
-rw-r--r--src/util/connection.c9
-rw-r--r--src/util/gnunet-service-resolver.c9
-rw-r--r--src/util/os_network.c10
-rw-r--r--src/util/service.c15
-rw-r--r--src/util/test_resolver_api.c6
-rw-r--r--src/util/test_server_with_client_unix.c3
6 files changed, 41 insertions, 11 deletions
diff --git a/src/util/connection.c b/src/util/connection.c
index ff41a33a8..09a28923e 100644
--- a/src/util/connection.c
+++ b/src/util/connection.c
@@ -376,6 +376,9 @@ GNUNET_CONNECTION_create_from_accept (GNUNET_CONNECTION_AccessCheck access,
376 v4 = GNUNET_malloc (sizeof (struct sockaddr_in)); 376 v4 = GNUNET_malloc (sizeof (struct sockaddr_in));
377 memset (v4, 0, sizeof (struct sockaddr_in)); 377 memset (v4, 0, sizeof (struct sockaddr_in));
378 v4->sin_family = AF_INET; 378 v4->sin_family = AF_INET;
379#if HAVE_SOCKADDR_IN_SIN_LEN
380 v4->sin_len = (u_char) sizeof (struct sockaddr_in);
381#endif
379 memcpy (&v4->sin_addr, 382 memcpy (&v4->sin_addr,
380 &((char *) &v6->sin6_addr)[sizeof (struct in6_addr) - 383 &((char *) &v6->sin6_addr)[sizeof (struct in6_addr) -
381 sizeof (struct in_addr)], 384 sizeof (struct in_addr)],
@@ -936,10 +939,12 @@ GNUNET_CONNECTION_create_from_connect_to_unixpath (const struct
936 unixpath, 939 unixpath,
937 slen); 940 slen);
938 un->sun_path[slen] = '\0'; 941 un->sun_path[slen] = '\0';
939 slen += sizeof (sa_family_t); 942 slen = SUN_LEN (un);
943#if HAVE_SOCKADDR_IN_SIN_LEN
944 un->sun_len = (u_char) slen;
945#endif
940#if LINUX 946#if LINUX
941 un->sun_path[0] = '\0'; 947 un->sun_path[0] = '\0';
942 slen = sizeof (struct sockaddr_un);
943#endif 948#endif
944 ret = GNUNET_malloc (sizeof (struct GNUNET_CONNECTION_Handle)); 949 ret = GNUNET_malloc (sizeof (struct GNUNET_CONNECTION_Handle));
945 ret->cfg = cfg; 950 ret->cfg = cfg;
diff --git a/src/util/gnunet-service-resolver.c b/src/util/gnunet-service-resolver.c
index f72b70da7..ee2cfb3b8 100644
--- a/src/util/gnunet-service-resolver.c
+++ b/src/util/gnunet-service-resolver.c
@@ -327,6 +327,9 @@ gethostbyname2_resolve (struct GNUNET_SERVER_TransmitContext *tc,
327 GNUNET_assert (hp->h_length == sizeof (struct in_addr)); 327 GNUNET_assert (hp->h_length == sizeof (struct in_addr));
328 memset (&a4, 0, sizeof (a4)); 328 memset (&a4, 0, sizeof (a4));
329 a4.sin_family = AF_INET; 329 a4.sin_family = AF_INET;
330#if HAVE_SOCKADDR_IN_SIN_LEN
331 a4.sin_len = (u_char) sizeof (struct sockaddr_in);
332#endif
330 memcpy (&a4.sin_addr, hp->h_addr_list[0], hp->h_length); 333 memcpy (&a4.sin_addr, hp->h_addr_list[0], hp->h_length);
331 GNUNET_SERVER_transmit_context_append_data (tc, 334 GNUNET_SERVER_transmit_context_append_data (tc,
332 &a4, 335 &a4,
@@ -338,6 +341,9 @@ gethostbyname2_resolve (struct GNUNET_SERVER_TransmitContext *tc,
338 GNUNET_assert (hp->h_length == sizeof (struct in6_addr)); 341 GNUNET_assert (hp->h_length == sizeof (struct in6_addr));
339 memset (&a6, 0, sizeof (a6)); 342 memset (&a6, 0, sizeof (a6));
340 a6.sin6_family = AF_INET6; 343 a6.sin6_family = AF_INET6;
344#if HAVE_SOCKADDR_IN_SIN_LEN
345 a6.sin6_len = (u_char) sizeof (struct sockaddr_in6);
346#endif
341 memcpy (&a6.sin6_addr, hp->h_addr_list[0], hp->h_length); 347 memcpy (&a6.sin6_addr, hp->h_addr_list[0], hp->h_length);
342 GNUNET_SERVER_transmit_context_append_data (tc, 348 GNUNET_SERVER_transmit_context_append_data (tc,
343 &a6, 349 &a6,
@@ -372,6 +378,9 @@ gethostbyname_resolve (struct GNUNET_SERVER_TransmitContext *tc,
372 GNUNET_assert (hp->h_length == sizeof (struct in_addr)); 378 GNUNET_assert (hp->h_length == sizeof (struct in_addr));
373 memset (&addr, 0, sizeof (addr)); 379 memset (&addr, 0, sizeof (addr));
374 addr.sin_family = AF_INET; 380 addr.sin_family = AF_INET;
381#if HAVE_SOCKADDR_IN_SIN_LEN
382 addr.sin_len = (u_char) sizeof (struct sockaddr_in);
383#endif
375 memcpy (&addr.sin_addr, hp->h_addr_list[0], hp->h_length); 384 memcpy (&addr.sin_addr, hp->h_addr_list[0], hp->h_length);
376 GNUNET_SERVER_transmit_context_append_data (tc, 385 GNUNET_SERVER_transmit_context_append_data (tc,
377 &addr, 386 &addr,
diff --git a/src/util/os_network.c b/src/util/os_network.c
index 498f6ac9c..ccf326c05 100644
--- a/src/util/os_network.c
+++ b/src/util/os_network.c
@@ -148,6 +148,9 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc,
148 free (pszIfName); 148 free (pszIfName);
149 149
150 sa.sin_family = AF_INET; 150 sa.sin_family = AF_INET;
151#if HAVE_SOCKADDR_IN_SIN_LEN
152 sa.sin_len = (u_char) sizeof (struct sockaddr_in);
153#endif
151 sa.sin_addr.S_un.S_addr = dwIP; 154 sa.sin_addr.S_un.S_addr = dwIP;
152 155
153 if (GNUNET_OK != 156 if (GNUNET_OK !=
@@ -256,6 +259,9 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc,
256 { 259 {
257 memset (&a4, 0, sizeof (a4)); 260 memset (&a4, 0, sizeof (a4));
258 a4.sin_family = AF_INET; 261 a4.sin_family = AF_INET;
262#if HAVE_SOCKADDR_IN_SIN_LEN
263 a4.sin_len = (u_char) sizeof (struct sockaddr_in);
264#endif
259 a4.sin_addr = v4; 265 a4.sin_addr = v4;
260 if (GNUNET_OK != 266 if (GNUNET_OK !=
261 proc (proc_cls, 267 proc (proc_cls,
@@ -270,8 +276,10 @@ GNUNET_OS_network_interfaces_list (GNUNET_OS_NetworkInterfaceProcessor proc,
270 { 276 {
271 memset (&a6, 0, sizeof (a6)); 277 memset (&a6, 0, sizeof (a6));
272 a6.sin6_family = AF_INET6; 278 a6.sin6_family = AF_INET6;
279#if HAVE_SOCKADDR_IN_SIN_LEN
280 a6.sin6_len = (u_char) sizeof (struct sockaddr_in6);
281#endif
273 a6.sin6_addr = v6; 282 a6.sin6_addr = v6;
274 fprintf (stderr, "procing %s\n", addrstr);
275 if (GNUNET_OK != 283 if (GNUNET_OK !=
276 proc (proc_cls, 284 proc (proc_cls,
277 ifc, 285 ifc,
diff --git a/src/util/service.c b/src/util/service.c
index 834b27dd6..876b35265 100644
--- a/src/util/service.c
+++ b/src/util/service.c
@@ -766,15 +766,13 @@ add_unixpath (struct sockaddr **saddrs,
766 unixpath, 766 unixpath,
767 slen); 767 slen);
768 un->sun_path[slen] = '\0'; 768 un->sun_path[slen] = '\0';
769 slen = SUN_LEN (un);
769#if LINUX 770#if LINUX
770 un->sun_path[0] = '\0'; 771 un->sun_path[0] = '\0';
771 slen = sizeof (struct sockaddr_un);
772#elif FREEBSD
773 slen += sizeof (sa_family_t) + 1 ;
774#else
775 slen += sizeof (sa_family_t) ;
776#endif 772#endif
777 773#if HAVE_SOCKADDR_IN_SIN_LEN
774 un->sun_len = (u_char) slen;
775#endif
778 *saddrs = (struct sockaddr*) un; 776 *saddrs = (struct sockaddr*) un;
779 *saddrlens = slen; 777 *saddrlens = slen;
780#else 778#else
@@ -909,6 +907,7 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
909 { 907 {
910 /* probe UNIX support */ 908 /* probe UNIX support */
911 struct sockaddr_un s_un; 909 struct sockaddr_un s_un;
910
912 if (strlen(unixpath) >= sizeof(s_un.sun_path)) 911 if (strlen(unixpath) >= sizeof(s_un.sun_path))
913 { 912 {
914 GNUNET_log (GNUNET_ERROR_TYPE_WARNING, 913 GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -923,8 +922,8 @@ GNUNET_SERVICE_get_server_addresses (const char *serviceName,
923 desc = GNUNET_NETWORK_socket_create (AF_UNIX, SOCK_STREAM, 0); 922 desc = GNUNET_NETWORK_socket_create (AF_UNIX, SOCK_STREAM, 0);
924 if (NULL == desc) 923 if (NULL == desc)
925 { 924 {
926 if ((errno == ENOBUFS) || 925 if ( (errno == ENOBUFS) ||
927 (errno == ENOMEM) || (errno == ENFILE) || (errno == EACCES)) 926 (errno == ENOMEM) || (errno == ENFILE) || (errno == EACCES))
928 { 927 {
929 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "socket"); 928 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "socket");
930 GNUNET_free_non_null (hostname); 929 GNUNET_free_non_null (hostname);
diff --git a/src/util/test_resolver_api.c b/src/util/test_resolver_api.c
index b897a6c13..cd3e42d23 100644
--- a/src/util/test_resolver_api.c
+++ b/src/util/test_resolver_api.c
@@ -229,6 +229,9 @@ run(void *cls, char * const *args,
229 229
230 memset(&sa, 0, sizeof(sa)); 230 memset(&sa, 0, sizeof(sa));
231 sa.sin_family = AF_INET; 231 sa.sin_family = AF_INET;
232#if HAVE_SOCKADDR_IN_SIN_LEN
233 sa.sin_len = (u_char) sizeof (sa);
234#endif
232 sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK); 235 sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
233 GNUNET_RESOLVER_ip_get(cfg, "localhost", AF_INET, timeout, &check_127, 236 GNUNET_RESOLVER_ip_get(cfg, "localhost", AF_INET, timeout, &check_127,
234 cls); 237 cls);
@@ -343,6 +346,9 @@ run(void *cls, char * const *args,
343 346
344 memset(&sa, 0, sizeof(sa)); 347 memset(&sa, 0, sizeof(sa));
345 sa.sin_family = AF_INET; 348 sa.sin_family = AF_INET;
349#if HAVE_SOCKADDR_IN_SIN_LEN
350 sa.sin_len = (u_char) sizeof (sa);
351#endif
346#ifndef MINGW 352#ifndef MINGW
347 inet_aton(ROOTSERVER_IP, &sa.sin_addr); 353 inet_aton(ROOTSERVER_IP, &sa.sin_addr);
348#else 354#else
diff --git a/src/util/test_server_with_client_unix.c b/src/util/test_server_with_client_unix.c
index 8c0e4b84c..98a530a19 100644
--- a/src/util/test_server_with_client_unix.c
+++ b/src/util/test_server_with_client_unix.c
@@ -142,6 +142,9 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
142 un.sun_family = AF_UNIX; 142 un.sun_family = AF_UNIX;
143 memcpy (un.sun_path, unixpath, slen); 143 memcpy (un.sun_path, unixpath, slen);
144 un.sun_path[slen] = '\0'; 144 un.sun_path[slen] = '\0';
145#if HAVE_SOCKADDR_IN_SIN_LEN
146 un.sun_len = (u_char) SUN_LEN (&un);
147#endif
145#if LINUX 148#if LINUX
146 un.sun_path[0] = '\0'; 149 un.sun_path[0] = '\0';
147#endif 150#endif