From c0166a21606b03ce5e4250af446b88f1e2478682 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 20 Apr 2011 14:27:30 +0000 Subject: fix --- src/transport/plugin_transport_unix.c | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) (limited to 'src/transport/plugin_transport_unix.c') diff --git a/src/transport/plugin_transport_unix.c b/src/transport/plugin_transport_unix.c index d9b666f77..f4a69d84e 100644 --- a/src/transport/plugin_transport_unix.c +++ b/src/transport/plugin_transport_unix.c @@ -897,10 +897,8 @@ static int unix_transport_server_start (void *cls) { struct Plugin *plugin = cls; - struct sockaddr *serverAddr; socklen_t addrlen; - int sockets_created; struct sockaddr_un un; size_t slen; @@ -914,7 +912,6 @@ unix_transport_server_start (void *cls) slen += sizeof (sa_family_t); serverAddr = (struct sockaddr*) &un; addrlen = slen; - sockets_created = 0; #if LINUX un.sun_path[0] = '\0'; #endif @@ -922,24 +919,23 @@ unix_transport_server_start (void *cls) plugin->unix_sock.desc = GNUNET_NETWORK_socket_create (AF_UNIX, SOCK_DGRAM, 0); if (NULL == plugin->unix_sock.desc) { - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "socket"); + GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "socket"); + return GNUNET_SYSERR; } - else + if (GNUNET_NETWORK_socket_bind (plugin->unix_sock.desc, serverAddr, addrlen) != + GNUNET_OK) { - if (GNUNET_NETWORK_socket_bind (plugin->unix_sock.desc, serverAddr, addrlen) != - GNUNET_OK) - { + GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "bind"); + GNUNET_NETWORK_socket_close (plugin->unix_sock.desc); + plugin->unix_sock.desc = NULL; + return GNUNET_SYSERR; + } #if DEBUG_UNIX - GNUNET_log (GNUNET_ERROR_TYPE_WARNING, - "UNIX Binding failed!\n"); + GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, + "unix", + "Bound to `%s'\n", + &un.sun_path[0]); #endif - } - else - GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Bound to `%s'\n", &un.sun_path[0]); - if (plugin->unix_sock.desc != NULL) - sockets_created++; - } - plugin->rs = GNUNET_NETWORK_fdset_create (); GNUNET_NETWORK_fdset_zero (plugin->rs); GNUNET_NETWORK_fdset_set (plugin->rs, @@ -950,7 +946,7 @@ unix_transport_server_start (void *cls) GNUNET_SCHEDULER_NO_TASK, GNUNET_TIME_UNIT_FOREVER_REL, plugin->rs, NULL, &unix_plugin_select, plugin); - return sockets_created; + return 1; } -- cgit v1.2.3