summaryrefslogtreecommitdiff
path: root/src/util/service.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-10-09 18:01:16 +0000
committerChristian Grothoff <christian@grothoff.org>2013-10-09 18:01:16 +0000
commit25e37143ca6ddc3ea7d3c2e3fd7c66002a45e060 (patch)
tree8796fd0e148c6914897d6c53d25c6327b5a8263b /src/util/service.c
parent0904af031c4f1411419b3047f893e0672957d146 (diff)
downloadgnunet-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.c20
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 {