aboutsummaryrefslogtreecommitdiff
path: root/src/util/service.c
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/service.c
parent79ae099456caba64b0599b7c6e2b2b86bcc6571f (diff)
downloadgnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.tar.gz
gnunet-0d43d44a39a7cee4bc1a84ab5eb36ac8eb05e2a2.zip
set sxn_len on FreeBSD where required
Diffstat (limited to 'src/util/service.c')
-rw-r--r--src/util/service.c15
1 files changed, 7 insertions, 8 deletions
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);