diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-05-25 21:41:52 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-05-25 21:41:52 +0000 |
commit | 0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2 (patch) | |
tree | 7a274ea3d3591fe59d724ca691fdc976d0175066 /src/util | |
parent | 79ae099456caba64b0599b7c6e2b2b86bcc6571f (diff) | |
download | gnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.tar.gz gnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.zip |
set sxn_len on FreeBSD where required
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/connection.c | 9 | ||||
-rw-r--r-- | src/util/gnunet-service-resolver.c | 9 | ||||
-rw-r--r-- | src/util/os_network.c | 10 | ||||
-rw-r--r-- | src/util/service.c | 15 | ||||
-rw-r--r-- | src/util/test_resolver_api.c | 6 | ||||
-rw-r--r-- | src/util/test_server_with_client_unix.c | 3 |
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 |