diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-10-09 18:01:16 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-10-09 18:01:16 +0000 |
commit | 25e37143ca6ddc3ea7d3c2e3fd7c66002a45e060 (patch) | |
tree | 8796fd0e148c6914897d6c53d25c6327b5a8263b /src/util/service.c | |
parent | 0904af031c4f1411419b3047f893e0672957d146 (diff) | |
download | gnunet-25e37143ca6ddc3ea7d3c2e3fd7c66002a45e060.tar.gz gnunet-25e37143ca6ddc3ea7d3c2e3fd7c66002a45e060.zip |
-switching (again) to named sockets, see #2887
Diffstat (limited to 'src/util/service.c')
-rw-r--r-- | src/util/service.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/util/service.c b/src/util/service.c index eb3a84221..b8975f418 100644 --- a/src/util/service.c +++ b/src/util/service.c | |||
@@ -834,24 +834,15 @@ add_unixpath (struct sockaddr **saddrs, socklen_t * saddrlens, | |||
834 | { | 834 | { |
835 | #ifdef AF_UNIX | 835 | #ifdef AF_UNIX |
836 | struct sockaddr_un *un; | 836 | struct sockaddr_un *un; |
837 | size_t slen; | ||
838 | 837 | ||
839 | un = GNUNET_malloc (sizeof (struct sockaddr_un)); | 838 | un = GNUNET_malloc (sizeof (struct sockaddr_un)); |
840 | un->sun_family = AF_UNIX; | 839 | un->sun_family = AF_UNIX; |
841 | slen = strlen (unixpath) + 1; | 840 | strncpy (un->sun_path, unixpath, sizeof (un->sun_path) - 1); |
842 | if (slen >= sizeof (un->sun_path)) | ||
843 | slen = sizeof (un->sun_path) - 1; | ||
844 | memcpy (un->sun_path, unixpath, slen); | ||
845 | un->sun_path[slen] = '\0'; | ||
846 | slen = sizeof (struct sockaddr_un); | ||
847 | #if LINUX | ||
848 | un->sun_path[0] = '\0'; | ||
849 | #endif | ||
850 | #if HAVE_SOCKADDR_IN_SIN_LEN | 841 | #if HAVE_SOCKADDR_IN_SIN_LEN |
851 | un->sun_len = (u_char) slen; | 842 | un->sun_len = (u_char) sizeof (struct sockaddr_un); |
852 | #endif | 843 | #endif |
853 | *saddrs = (struct sockaddr *) un; | 844 | *saddrs = (struct sockaddr *) un; |
854 | *saddrlens = slen; | 845 | *saddrlens = sizeof (struct sockaddr_un); |
855 | #else | 846 | #else |
856 | /* this function should never be called | 847 | /* this function should never be called |
857 | * unless AF_UNIX is defined! */ | 848 | * unless AF_UNIX is defined! */ |
@@ -989,6 +980,11 @@ GNUNET_SERVICE_get_server_addresses (const char *service_name, | |||
989 | LOG (GNUNET_ERROR_TYPE_INFO, | 980 | LOG (GNUNET_ERROR_TYPE_INFO, |
990 | _("Using `%s' instead\n"), unixpath); | 981 | _("Using `%s' instead\n"), unixpath); |
991 | } | 982 | } |
983 | if (GNUNET_OK != | ||
984 | GNUNET_DISK_directory_create_for_file (unixpath)) | ||
985 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, | ||
986 | "mkdir", | ||
987 | unixpath); | ||
992 | } | 988 | } |
993 | if (NULL != unixpath) | 989 | if (NULL != unixpath) |
994 | { | 990 | { |