From d41ed82a4ea0cc8e1674b6d5d2c49fd6462610bb Mon Sep 17 00:00:00 2001 From: ng0 Date: Sun, 8 Sep 2019 12:33:09 +0000 Subject: uncrustify as demanded. --- src/transport/tcp_service_legacy.c | 1761 ++++++++++++++++++------------------ 1 file changed, 883 insertions(+), 878 deletions(-) (limited to 'src/transport/tcp_service_legacy.c') diff --git a/src/transport/tcp_service_legacy.c b/src/transport/tcp_service_legacy.c index e59fa4a1c..3bb08c0e8 100644 --- a/src/transport/tcp_service_legacy.c +++ b/src/transport/tcp_service_legacy.c @@ -11,12 +11,12 @@ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . SPDX-License-Identifier: AGPL3.0-or-later -*/ + */ /** * @file util/service.c @@ -45,8 +45,8 @@ * @return #GNUNET_NO if the IP is not in the list, #GNUNET_YES if it it is */ static int -check_ipv4_listed (const struct GNUNET_STRINGS_IPv4NetworkPolicy *list, - const struct in_addr *add) +check_ipv4_listed(const struct GNUNET_STRINGS_IPv4NetworkPolicy *list, + const struct in_addr *add) { unsigned int i; @@ -54,12 +54,12 @@ check_ipv4_listed (const struct GNUNET_STRINGS_IPv4NetworkPolicy *list, return GNUNET_NO; i = 0; while ((list[i].network.s_addr != 0) || (list[i].netmask.s_addr != 0)) - { - if ((add->s_addr & list[i].netmask.s_addr) == - (list[i].network.s_addr & list[i].netmask.s_addr)) - return GNUNET_YES; - i++; - } + { + if ((add->s_addr & list[i].netmask.s_addr) == + (list[i].network.s_addr & list[i].netmask.s_addr)) + return GNUNET_YES; + i++; + } return GNUNET_NO; } @@ -72,8 +72,8 @@ check_ipv4_listed (const struct GNUNET_STRINGS_IPv4NetworkPolicy *list, * @return #GNUNET_NO if the IP is not in the list, #GNUNET_YES if it it is */ static int -check_ipv6_listed (const struct GNUNET_STRINGS_IPv6NetworkPolicy *list, - const struct in6_addr *ip) +check_ipv6_listed(const struct GNUNET_STRINGS_IPv6NetworkPolicy *list, + const struct in6_addr *ip) { unsigned int i; unsigned int j; @@ -81,20 +81,20 @@ check_ipv6_listed (const struct GNUNET_STRINGS_IPv6NetworkPolicy *list, if (NULL == list) return GNUNET_NO; - memset (&zero, 0, sizeof (struct in6_addr)); + memset(&zero, 0, sizeof(struct in6_addr)); i = 0; NEXT: - while (0 != memcmp (&zero, &list[i].network, sizeof (struct in6_addr))) - { - for (j = 0; j < sizeof (struct in6_addr) / sizeof (int); j++) - if (((((int *) ip)[j] & ((int *) &list[i].netmask)[j])) != - (((int *) &list[i].network)[j] & ((int *) &list[i].netmask)[j])) - { - i++; - goto NEXT; - } - return GNUNET_YES; - } + while (0 != memcmp(&zero, &list[i].network, sizeof(struct in6_addr))) + { + for (j = 0; j < sizeof(struct in6_addr) / sizeof(int); j++) + if (((((int *)ip)[j] & ((int *)&list[i].netmask)[j])) != + (((int *)&list[i].network)[j] & ((int *)&list[i].netmask)[j])) + { + i++; + goto NEXT; + } + return GNUNET_YES; + } return GNUNET_NO; } @@ -105,8 +105,7 @@ NEXT: /** * Context for "service_task". */ -struct LEGACY_SERVICE_Context -{ +struct LEGACY_SERVICE_Context { /** * Our configuration. */ @@ -238,21 +237,21 @@ struct LEGACY_SERVICE_Context * @return number of bytes written to 'buf' */ static size_t -write_test (void *cls, size_t size, void *buf) +write_test(void *cls, size_t size, void *buf) { struct GNUNET_SERVER_Client *client = cls; struct GNUNET_MessageHeader *msg; - if (size < sizeof (struct GNUNET_MessageHeader)) - { - GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); - return 0; /* client disconnected */ - } - msg = (struct GNUNET_MessageHeader *) buf; - msg->type = htons (GNUNET_MESSAGE_TYPE_TEST); - msg->size = htons (sizeof (struct GNUNET_MessageHeader)); - GNUNET_SERVER_receive_done (client, GNUNET_OK); - return sizeof (struct GNUNET_MessageHeader); + if (size < sizeof(struct GNUNET_MessageHeader)) + { + GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); + return 0; /* client disconnected */ + } + msg = (struct GNUNET_MessageHeader *)buf; + msg->type = htons(GNUNET_MESSAGE_TYPE_TEST); + msg->size = htons(sizeof(struct GNUNET_MessageHeader)); + GNUNET_SERVER_receive_done(client, GNUNET_OK); + return sizeof(struct GNUNET_MessageHeader); } @@ -264,18 +263,18 @@ write_test (void *cls, size_t size, void *buf) * @param message the actual message */ static void -handle_test (void *cls, - struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message) +handle_test(void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message) { /* simply bounce message back to acknowledge */ if (NULL == - GNUNET_SERVER_notify_transmit_ready (client, - sizeof (struct GNUNET_MessageHeader), - GNUNET_TIME_UNIT_FOREVER_REL, - &write_test, - client)) - GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); + GNUNET_SERVER_notify_transmit_ready(client, + sizeof(struct GNUNET_MessageHeader), + GNUNET_TIME_UNIT_FOREVER_REL, + &write_test, + client)) + GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); } @@ -285,11 +284,11 @@ handle_test (void *cls, * struct. */ static const struct GNUNET_SERVER_MessageHandler defhandlers[] = - {{&handle_test, +{ { &handle_test, NULL, GNUNET_MESSAGE_TYPE_TEST, - sizeof (struct GNUNET_MessageHeader)}, - {NULL, NULL, 0, 0}}; + sizeof(struct GNUNET_MessageHeader) }, + { NULL, NULL, 0, 0 } }; /* ****************** service core routines ************** */ @@ -306,10 +305,10 @@ static const struct GNUNET_SERVER_MessageHandler defhandlers[] = * for unknown address family (will be denied). */ static int -check_access (void *cls, - const struct GNUNET_CONNECTION_Credentials *uc, - const struct sockaddr *addr, - socklen_t addrlen) +check_access(void *cls, + const struct GNUNET_CONNECTION_Credentials *uc, + const struct sockaddr *addr, + socklen_t addrlen) { struct LEGACY_SERVICE_Context *sctx = cls; const struct sockaddr_in *i4; @@ -317,41 +316,43 @@ check_access (void *cls, int ret; switch (addr->sa_family) - { - case AF_INET: - GNUNET_assert (addrlen == sizeof (struct sockaddr_in)); - i4 = (const struct sockaddr_in *) addr; - ret = ((NULL == sctx->v4_allowed) || - (check_ipv4_listed (sctx->v4_allowed, &i4->sin_addr))) && - ((NULL == sctx->v4_denied) || - (! check_ipv4_listed (sctx->v4_denied, &i4->sin_addr))); - break; - case AF_INET6: - GNUNET_assert (addrlen == sizeof (struct sockaddr_in6)); - i6 = (const struct sockaddr_in6 *) addr; - ret = ((NULL == sctx->v6_allowed) || - (check_ipv6_listed (sctx->v6_allowed, &i6->sin6_addr))) && - ((NULL == sctx->v6_denied) || - (! check_ipv6_listed (sctx->v6_denied, &i6->sin6_addr))); - break; + { + case AF_INET: + GNUNET_assert(addrlen == sizeof(struct sockaddr_in)); + i4 = (const struct sockaddr_in *)addr; + ret = ((NULL == sctx->v4_allowed) || + (check_ipv4_listed(sctx->v4_allowed, &i4->sin_addr))) && + ((NULL == sctx->v4_denied) || + (!check_ipv4_listed(sctx->v4_denied, &i4->sin_addr))); + break; + + case AF_INET6: + GNUNET_assert(addrlen == sizeof(struct sockaddr_in6)); + i6 = (const struct sockaddr_in6 *)addr; + ret = ((NULL == sctx->v6_allowed) || + (check_ipv6_listed(sctx->v6_allowed, &i6->sin6_addr))) && + ((NULL == sctx->v6_denied) || + (!check_ipv6_listed(sctx->v6_denied, &i6->sin6_addr))); + break; + #ifndef WINDOWS - case AF_UNIX: - ret = GNUNET_OK; /* controlled using file-system ACL now */ - break; + case AF_UNIX: + ret = GNUNET_OK; /* controlled using file-system ACL now */ + break; #endif - default: - LOG (GNUNET_ERROR_TYPE_WARNING, - _ ("Unknown address family %d\n"), - addr->sa_family); - return GNUNET_SYSERR; - } + default: + LOG(GNUNET_ERROR_TYPE_WARNING, + _("Unknown address family %d\n"), + addr->sa_family); + return GNUNET_SYSERR; + } if (GNUNET_OK != ret) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - _ ("Access from `%s' denied to service `%s'\n"), - GNUNET_a2s (addr, addrlen), - sctx->service_name); - } + { + LOG(GNUNET_ERROR_TYPE_WARNING, + _("Access from `%s' denied to service `%s'\n"), + GNUNET_a2s(addr, addrlen), + sctx->service_name); + } return ret; } @@ -364,14 +365,14 @@ check_access (void *cls, * @return name of the file for the process ID */ static char * -get_pid_file_name (struct LEGACY_SERVICE_Context *sctx) +get_pid_file_name(struct LEGACY_SERVICE_Context *sctx) { char *pif; - if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (sctx->cfg, - sctx->service_name, - "PIDFILE", - &pif)) + if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename(sctx->cfg, + sctx->service_name, + "PIDFILE", + &pif)) return NULL; return pif; } @@ -387,33 +388,33 @@ get_pid_file_name (struct LEGACY_SERVICE_Context *sctx) * no ACL configured) */ static int -process_acl4 (struct GNUNET_STRINGS_IPv4NetworkPolicy **ret, - struct LEGACY_SERVICE_Context *sctx, - const char *option) +process_acl4(struct GNUNET_STRINGS_IPv4NetworkPolicy **ret, + struct LEGACY_SERVICE_Context *sctx, + const char *option) { char *opt; - if (! GNUNET_CONFIGURATION_have_value (sctx->cfg, sctx->service_name, option)) - { - *ret = NULL; - return GNUNET_OK; - } - GNUNET_break (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_string (sctx->cfg, - sctx->service_name, - option, - &opt)); - if (NULL == (*ret = GNUNET_STRINGS_parse_ipv4_policy (opt))) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - _ ("Could not parse IPv4 network specification `%s' for `%s:%s'\n"), - opt, - sctx->service_name, - option); - GNUNET_free (opt); - return GNUNET_SYSERR; - } - GNUNET_free (opt); + if (!GNUNET_CONFIGURATION_have_value(sctx->cfg, sctx->service_name, option)) + { + *ret = NULL; + return GNUNET_OK; + } + GNUNET_break(GNUNET_OK == + GNUNET_CONFIGURATION_get_value_string(sctx->cfg, + sctx->service_name, + option, + &opt)); + if (NULL == (*ret = GNUNET_STRINGS_parse_ipv4_policy(opt))) + { + LOG(GNUNET_ERROR_TYPE_WARNING, + _("Could not parse IPv4 network specification `%s' for `%s:%s'\n"), + opt, + sctx->service_name, + option); + GNUNET_free(opt); + return GNUNET_SYSERR; + } + GNUNET_free(opt); return GNUNET_OK; } @@ -428,33 +429,33 @@ process_acl4 (struct GNUNET_STRINGS_IPv4NetworkPolicy **ret, * no ACL configured) */ static int -process_acl6 (struct GNUNET_STRINGS_IPv6NetworkPolicy **ret, - struct LEGACY_SERVICE_Context *sctx, - const char *option) +process_acl6(struct GNUNET_STRINGS_IPv6NetworkPolicy **ret, + struct LEGACY_SERVICE_Context *sctx, + const char *option) { char *opt; - if (! GNUNET_CONFIGURATION_have_value (sctx->cfg, sctx->service_name, option)) - { - *ret = NULL; - return GNUNET_OK; - } - GNUNET_break (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_string (sctx->cfg, - sctx->service_name, - option, - &opt)); - if (NULL == (*ret = GNUNET_STRINGS_parse_ipv6_policy (opt))) - { - LOG (GNUNET_ERROR_TYPE_WARNING, - _ ("Could not parse IPv6 network specification `%s' for `%s:%s'\n"), - opt, - sctx->service_name, - option); - GNUNET_free (opt); - return GNUNET_SYSERR; - } - GNUNET_free (opt); + if (!GNUNET_CONFIGURATION_have_value(sctx->cfg, sctx->service_name, option)) + { + *ret = NULL; + return GNUNET_OK; + } + GNUNET_break(GNUNET_OK == + GNUNET_CONFIGURATION_get_value_string(sctx->cfg, + sctx->service_name, + option, + &opt)); + if (NULL == (*ret = GNUNET_STRINGS_parse_ipv6_policy(opt))) + { + LOG(GNUNET_ERROR_TYPE_WARNING, + _("Could not parse IPv6 network specification `%s' for `%s:%s'\n"), + opt, + sctx->service_name, + option); + GNUNET_free(opt); + return GNUNET_SYSERR; + } + GNUNET_free(opt); return GNUNET_OK; } @@ -470,30 +471,30 @@ process_acl6 (struct GNUNET_STRINGS_IPv6NetworkPolicy **ret, * parameter is ignore on systems other than LINUX */ static void -add_unixpath (struct sockaddr **saddrs, - socklen_t *saddrlens, - const char *unixpath, - int abstract) +add_unixpath(struct sockaddr **saddrs, + socklen_t *saddrlens, + const char *unixpath, + int abstract) { #ifdef AF_UNIX struct sockaddr_un *un; - un = GNUNET_new (struct sockaddr_un); + un = GNUNET_new(struct sockaddr_un); un->sun_family = AF_UNIX; - GNUNET_strlcpy (un->sun_path, unixpath, sizeof (un->sun_path)); + GNUNET_strlcpy(un->sun_path, unixpath, sizeof(un->sun_path)); #ifdef LINUX if (GNUNET_YES == abstract) un->sun_path[0] = '\0'; #endif #if HAVE_SOCKADDR_UN_SUN_LEN - un->sun_len = (u_char) sizeof (struct sockaddr_un); + un->sun_len = (u_char)sizeof(struct sockaddr_un); #endif - *saddrs = (struct sockaddr *) un; - *saddrlens = sizeof (struct sockaddr_un); + *saddrs = (struct sockaddr *)un; + *saddrlens = sizeof(struct sockaddr_un); #else /* this function should never be called * unless AF_UNIX is defined! */ - GNUNET_assert (0); + GNUNET_assert(0); #endif } @@ -519,7 +520,7 @@ add_unixpath (struct sockaddr **saddrs, * set to NULL). */ int -LEGACY_SERVICE_get_server_addresses ( +LEGACY_SERVICE_get_server_addresses( const char *service_name, const struct GNUNET_CONFIGURATION_Handle *cfg, struct sockaddr ***addrs, @@ -544,72 +545,72 @@ LEGACY_SERVICE_get_server_addresses ( *addrs = NULL; *addr_lens = NULL; desc = NULL; - if (GNUNET_CONFIGURATION_have_value (cfg, service_name, "DISABLEV6")) - { - if (GNUNET_SYSERR == - (disablev6 = GNUNET_CONFIGURATION_get_value_yesno (cfg, - service_name, - "DISABLEV6"))) - return GNUNET_SYSERR; - } - else - disablev6 = GNUNET_NO; - - if (! disablev6) - { - /* probe IPv6 support */ - desc = GNUNET_NETWORK_socket_create (PF_INET6, SOCK_STREAM, 0); - if (NULL == desc) + if (GNUNET_CONFIGURATION_have_value(cfg, service_name, "DISABLEV6")) { - if ((ENOBUFS == errno) || (ENOMEM == errno) || (ENFILE == errno) || - (EACCES == errno)) - { - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "socket"); + if (GNUNET_SYSERR == + (disablev6 = GNUNET_CONFIGURATION_get_value_yesno(cfg, + service_name, + "DISABLEV6"))) return GNUNET_SYSERR; - } - LOG (GNUNET_ERROR_TYPE_INFO, - _ ( - "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"), - service_name, - strerror (errno)); - disablev6 = GNUNET_YES; } - else + else + disablev6 = GNUNET_NO; + + if (!disablev6) { - GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (desc)); - desc = NULL; + /* probe IPv6 support */ + desc = GNUNET_NETWORK_socket_create(PF_INET6, SOCK_STREAM, 0); + if (NULL == desc) + { + if ((ENOBUFS == errno) || (ENOMEM == errno) || (ENFILE == errno) || + (EACCES == errno)) + { + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "socket"); + return GNUNET_SYSERR; + } + LOG(GNUNET_ERROR_TYPE_INFO, + _( + "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"), + service_name, + strerror(errno)); + disablev6 = GNUNET_YES; + } + else + { + GNUNET_break(GNUNET_OK == GNUNET_NETWORK_socket_close(desc)); + desc = NULL; + } } - } port = 0; - if (GNUNET_CONFIGURATION_have_value (cfg, service_name, "PORT")) - { - if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, - service_name, - "PORT", - &port)) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Require valid port number for service `%s' in configuration!\n"), - service_name); - } - if (port > 65535) + if (GNUNET_CONFIGURATION_have_value(cfg, service_name, "PORT")) { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Require valid port number for service `%s' in configuration!\n"), - service_name); - return GNUNET_SYSERR; + if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number(cfg, + service_name, + "PORT", + &port)) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Require valid port number for service `%s' in configuration!\n"), + service_name); + } + if (port > 65535) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Require valid port number for service `%s' in configuration!\n"), + service_name); + return GNUNET_SYSERR; + } } - } - if (GNUNET_CONFIGURATION_have_value (cfg, service_name, "BINDTO")) - { - GNUNET_break (GNUNET_OK == - GNUNET_CONFIGURATION_get_value_string (cfg, + if (GNUNET_CONFIGURATION_have_value(cfg, service_name, "BINDTO")) + { + GNUNET_break(GNUNET_OK == + GNUNET_CONFIGURATION_get_value_string(cfg, service_name, "BINDTO", &hostname)); - } + } else hostname = NULL; @@ -617,232 +618,232 @@ LEGACY_SERVICE_get_server_addresses ( abstract = GNUNET_NO; #ifdef AF_UNIX if ((GNUNET_YES == - GNUNET_CONFIGURATION_have_value (cfg, service_name, "UNIXPATH")) && - (GNUNET_OK == GNUNET_CONFIGURATION_get_value_filename (cfg, - service_name, - "UNIXPATH", - &unixpath)) && - (0 < strlen (unixpath))) - { - /* probe UNIX support */ - struct sockaddr_un s_un; - - if (strlen (unixpath) >= sizeof (s_un.sun_path)) + GNUNET_CONFIGURATION_have_value(cfg, service_name, "UNIXPATH")) && + (GNUNET_OK == GNUNET_CONFIGURATION_get_value_filename(cfg, + service_name, + "UNIXPATH", + &unixpath)) && + (0 < strlen(unixpath))) { - LOG (GNUNET_ERROR_TYPE_WARNING, - _ ("UNIXPATH `%s' too long, maximum length is %llu\n"), - unixpath, - (unsigned long long) sizeof (s_un.sun_path)); - unixpath = GNUNET_NETWORK_shorten_unixpath (unixpath); - LOG (GNUNET_ERROR_TYPE_INFO, _ ("Using `%s' instead\n"), unixpath); - } + /* probe UNIX support */ + struct sockaddr_un s_un; + + if (strlen(unixpath) >= sizeof(s_un.sun_path)) + { + LOG(GNUNET_ERROR_TYPE_WARNING, + _("UNIXPATH `%s' too long, maximum length is %llu\n"), + unixpath, + (unsigned long long)sizeof(s_un.sun_path)); + unixpath = GNUNET_NETWORK_shorten_unixpath(unixpath); + LOG(GNUNET_ERROR_TYPE_INFO, _("Using `%s' instead\n"), unixpath); + } #ifdef LINUX - abstract = GNUNET_CONFIGURATION_get_value_yesno (cfg, - "TESTING", - "USE_ABSTRACT_SOCKETS"); - if (GNUNET_SYSERR == abstract) - abstract = GNUNET_NO; + abstract = GNUNET_CONFIGURATION_get_value_yesno(cfg, + "TESTING", + "USE_ABSTRACT_SOCKETS"); + if (GNUNET_SYSERR == abstract) + abstract = GNUNET_NO; #endif - if ((GNUNET_YES != abstract) && - (GNUNET_OK != GNUNET_DISK_directory_create_for_file (unixpath))) - GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "mkdir", unixpath); - } - if (NULL != unixpath) - { - desc = GNUNET_NETWORK_socket_create (AF_UNIX, SOCK_STREAM, 0); - if (NULL == desc) - { - if ((ENOBUFS == errno) || (ENOMEM == errno) || (ENFILE == errno) || - (EACCES == errno)) - { - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "socket"); - GNUNET_free_non_null (hostname); - GNUNET_free (unixpath); - return GNUNET_SYSERR; - } - LOG (GNUNET_ERROR_TYPE_INFO, - _ ( - "Disabling UNIX domain socket support for service `%s', failed to create UNIX domain socket: %s\n"), - service_name, - strerror (errno)); - GNUNET_free (unixpath); - unixpath = NULL; + if ((GNUNET_YES != abstract) && + (GNUNET_OK != GNUNET_DISK_directory_create_for_file(unixpath))) + GNUNET_log_strerror_file(GNUNET_ERROR_TYPE_ERROR, "mkdir", unixpath); } - else + if (NULL != unixpath) { - GNUNET_break (GNUNET_OK == GNUNET_NETWORK_socket_close (desc)); - desc = NULL; + desc = GNUNET_NETWORK_socket_create(AF_UNIX, SOCK_STREAM, 0); + if (NULL == desc) + { + if ((ENOBUFS == errno) || (ENOMEM == errno) || (ENFILE == errno) || + (EACCES == errno)) + { + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "socket"); + GNUNET_free_non_null(hostname); + GNUNET_free(unixpath); + return GNUNET_SYSERR; + } + LOG(GNUNET_ERROR_TYPE_INFO, + _( + "Disabling UNIX domain socket support for service `%s', failed to create UNIX domain socket: %s\n"), + service_name, + strerror(errno)); + GNUNET_free(unixpath); + unixpath = NULL; + } + else + { + GNUNET_break(GNUNET_OK == GNUNET_NETWORK_socket_close(desc)); + desc = NULL; + } } - } #endif if ((0 == port) && (NULL == unixpath)) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ( - "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"), - service_name); - GNUNET_free_non_null (hostname); - return GNUNET_SYSERR; - } - if (0 == port) - { - saddrs = GNUNET_malloc (2 * sizeof (struct sockaddr *)); - saddrlens = GNUNET_malloc (2 * sizeof (socklen_t)); - add_unixpath (saddrs, saddrlens, unixpath, abstract); - GNUNET_free_non_null (unixpath); - GNUNET_free_non_null (hostname); - *addrs = saddrs; - *addr_lens = saddrlens; - return 1; - } - - if (NULL != hostname) - { - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Resolving `%s' since that is where `%s' will bind to.\n", - hostname, - service_name); - memset (&hints, 0, sizeof (struct addrinfo)); - if (disablev6) - hints.ai_family = AF_INET; - hints.ai_protocol = IPPROTO_TCP; - if ((0 != (ret = getaddrinfo (hostname, NULL, &hints, &res))) || - (NULL == res)) { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Failed to resolve `%s': %s\n"), - hostname, - gai_strerror (ret)); - GNUNET_free (hostname); - GNUNET_free_non_null (unixpath); + LOG(GNUNET_ERROR_TYPE_ERROR, + _( + "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"), + service_name); + GNUNET_free_non_null(hostname); return GNUNET_SYSERR; } - next = res; - i = 0; - while (NULL != (pos = next)) - { - next = pos->ai_next; - if ((disablev6) && (pos->ai_family == AF_INET6)) - continue; - i++; - } - if (0 == i) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Failed to find %saddress for `%s'.\n"), - disablev6 ? "IPv4 " : "", - hostname); - freeaddrinfo (res); - GNUNET_free (hostname); - GNUNET_free_non_null (unixpath); - return GNUNET_SYSERR; - } - resi = i; - if (NULL != unixpath) - resi++; - saddrs = GNUNET_malloc ((resi + 1) * sizeof (struct sockaddr *)); - saddrlens = GNUNET_malloc ((resi + 1) * sizeof (socklen_t)); - i = 0; - if (NULL != unixpath) - { - add_unixpath (saddrs, saddrlens, unixpath, abstract); - i++; - } - next = res; - while (NULL != (pos = next)) + if (0 == port) { - next = pos->ai_next; - if ((disablev6) && (AF_INET6 == pos->ai_family)) - continue; - if ((IPPROTO_TCP != pos->ai_protocol) && (0 != pos->ai_protocol)) - continue; /* not TCP */ - if ((SOCK_STREAM != pos->ai_socktype) && (0 != pos->ai_socktype)) - continue; /* huh? */ - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Service `%s' will bind to `%s'\n", - service_name, - GNUNET_a2s (pos->ai_addr, pos->ai_addrlen)); - if (AF_INET == pos->ai_family) - { - GNUNET_assert (sizeof (struct sockaddr_in) == pos->ai_addrlen); - saddrlens[i] = pos->ai_addrlen; - saddrs[i] = GNUNET_malloc (saddrlens[i]); - GNUNET_memcpy (saddrs[i], pos->ai_addr, saddrlens[i]); - ((struct sockaddr_in *) saddrs[i])->sin_port = htons (port); - } - else - { - GNUNET_assert (AF_INET6 == pos->ai_family); - GNUNET_assert (sizeof (struct sockaddr_in6) == pos->ai_addrlen); - saddrlens[i] = pos->ai_addrlen; - saddrs[i] = GNUNET_malloc (saddrlens[i]); - GNUNET_memcpy (saddrs[i], pos->ai_addr, saddrlens[i]); - ((struct sockaddr_in6 *) saddrs[i])->sin6_port = htons (port); - } - i++; + saddrs = GNUNET_malloc(2 * sizeof(struct sockaddr *)); + saddrlens = GNUNET_malloc(2 * sizeof(socklen_t)); + add_unixpath(saddrs, saddrlens, unixpath, abstract); + GNUNET_free_non_null(unixpath); + GNUNET_free_non_null(hostname); + *addrs = saddrs; + *addr_lens = saddrlens; + return 1; } - GNUNET_free (hostname); - freeaddrinfo (res); - resi = i; - } - else - { - /* will bind against everything, just set port */ - if (disablev6) + + if (NULL != hostname) { - /* V4-only */ - resi = 1; + LOG(GNUNET_ERROR_TYPE_DEBUG, + "Resolving `%s' since that is where `%s' will bind to.\n", + hostname, + service_name); + memset(&hints, 0, sizeof(struct addrinfo)); + if (disablev6) + hints.ai_family = AF_INET; + hints.ai_protocol = IPPROTO_TCP; + if ((0 != (ret = getaddrinfo(hostname, NULL, &hints, &res))) || + (NULL == res)) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Failed to resolve `%s': %s\n"), + hostname, + gai_strerror(ret)); + GNUNET_free(hostname); + GNUNET_free_non_null(unixpath); + return GNUNET_SYSERR; + } + next = res; + i = 0; + while (NULL != (pos = next)) + { + next = pos->ai_next; + if ((disablev6) && (pos->ai_family == AF_INET6)) + continue; + i++; + } + if (0 == i) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Failed to find %saddress for `%s'.\n"), + disablev6 ? "IPv4 " : "", + hostname); + freeaddrinfo(res); + GNUNET_free(hostname); + GNUNET_free_non_null(unixpath); + return GNUNET_SYSERR; + } + resi = i; if (NULL != unixpath) resi++; + saddrs = GNUNET_malloc((resi + 1) * sizeof(struct sockaddr *)); + saddrlens = GNUNET_malloc((resi + 1) * sizeof(socklen_t)); i = 0; - saddrs = GNUNET_malloc ((resi + 1) * sizeof (struct sockaddr *)); - saddrlens = GNUNET_malloc ((resi + 1) * sizeof (socklen_t)); if (NULL != unixpath) - { - add_unixpath (saddrs, saddrlens, unixpath, abstract); - i++; - } - saddrlens[i] = sizeof (struct sockaddr_in); - saddrs[i] = GNUNET_malloc (saddrlens[i]); -#if HAVE_SOCKADDR_IN_SIN_LEN - ((struct sockaddr_in *) saddrs[i])->sin_len = saddrlens[i]; -#endif - ((struct sockaddr_in *) saddrs[i])->sin_family = AF_INET; - ((struct sockaddr_in *) saddrs[i])->sin_port = htons (port); + { + add_unixpath(saddrs, saddrlens, unixpath, abstract); + i++; + } + next = res; + while (NULL != (pos = next)) + { + next = pos->ai_next; + if ((disablev6) && (AF_INET6 == pos->ai_family)) + continue; + if ((IPPROTO_TCP != pos->ai_protocol) && (0 != pos->ai_protocol)) + continue; /* not TCP */ + if ((SOCK_STREAM != pos->ai_socktype) && (0 != pos->ai_socktype)) + continue; /* huh? */ + LOG(GNUNET_ERROR_TYPE_DEBUG, + "Service `%s' will bind to `%s'\n", + service_name, + GNUNET_a2s(pos->ai_addr, pos->ai_addrlen)); + if (AF_INET == pos->ai_family) + { + GNUNET_assert(sizeof(struct sockaddr_in) == pos->ai_addrlen); + saddrlens[i] = pos->ai_addrlen; + saddrs[i] = GNUNET_malloc(saddrlens[i]); + GNUNET_memcpy(saddrs[i], pos->ai_addr, saddrlens[i]); + ((struct sockaddr_in *)saddrs[i])->sin_port = htons(port); + } + else + { + GNUNET_assert(AF_INET6 == pos->ai_family); + GNUNET_assert(sizeof(struct sockaddr_in6) == pos->ai_addrlen); + saddrlens[i] = pos->ai_addrlen; + saddrs[i] = GNUNET_malloc(saddrlens[i]); + GNUNET_memcpy(saddrs[i], pos->ai_addr, saddrlens[i]); + ((struct sockaddr_in6 *)saddrs[i])->sin6_port = htons(port); + } + i++; + } + GNUNET_free(hostname); + freeaddrinfo(res); + resi = i; } - else + else { - /* dual stack */ - resi = 2; - if (NULL != unixpath) - resi++; - saddrs = GNUNET_malloc ((resi + 1) * sizeof (struct sockaddr *)); - saddrlens = GNUNET_malloc ((resi + 1) * sizeof (socklen_t)); - i = 0; - if (NULL != unixpath) - { - add_unixpath (saddrs, saddrlens, unixpath, abstract); - i++; - } - saddrlens[i] = sizeof (struct sockaddr_in6); - saddrs[i] = GNUNET_malloc (saddrlens[i]); + /* will bind against everything, just set port */ + if (disablev6) + { + /* V4-only */ + resi = 1; + if (NULL != unixpath) + resi++; + i = 0; + saddrs = GNUNET_malloc((resi + 1) * sizeof(struct sockaddr *)); + saddrlens = GNUNET_malloc((resi + 1) * sizeof(socklen_t)); + if (NULL != unixpath) + { + add_unixpath(saddrs, saddrlens, unixpath, abstract); + i++; + } + saddrlens[i] = sizeof(struct sockaddr_in); + saddrs[i] = GNUNET_malloc(saddrlens[i]); #if HAVE_SOCKADDR_IN_SIN_LEN - ((struct sockaddr_in6 *) saddrs[i])->sin6_len = saddrlens[0]; + ((struct sockaddr_in *)saddrs[i])->sin_len = saddrlens[i]; #endif - ((struct sockaddr_in6 *) saddrs[i])->sin6_family = AF_INET6; - ((struct sockaddr_in6 *) saddrs[i])->sin6_port = htons (port); - i++; - saddrlens[i] = sizeof (struct sockaddr_in); - saddrs[i] = GNUNET_malloc (saddrlens[i]); + ((struct sockaddr_in *)saddrs[i])->sin_family = AF_INET; + ((struct sockaddr_in *)saddrs[i])->sin_port = htons(port); + } + else + { + /* dual stack */ + resi = 2; + if (NULL != unixpath) + resi++; + saddrs = GNUNET_malloc((resi + 1) * sizeof(struct sockaddr *)); + saddrlens = GNUNET_malloc((resi + 1) * sizeof(socklen_t)); + i = 0; + if (NULL != unixpath) + { + add_unixpath(saddrs, saddrlens, unixpath, abstract); + i++; + } + saddrlens[i] = sizeof(struct sockaddr_in6); + saddrs[i] = GNUNET_malloc(saddrlens[i]); +#if HAVE_SOCKADDR_IN_SIN_LEN + ((struct sockaddr_in6 *)saddrs[i])->sin6_len = saddrlens[0]; +#endif + ((struct sockaddr_in6 *)saddrs[i])->sin6_family = AF_INET6; + ((struct sockaddr_in6 *)saddrs[i])->sin6_port = htons(port); + i++; + saddrlens[i] = sizeof(struct sockaddr_in); + saddrs[i] = GNUNET_malloc(saddrlens[i]); #if HAVE_SOCKADDR_IN_SIN_LEN - ((struct sockaddr_in *) saddrs[i])->sin_len = saddrlens[1]; + ((struct sockaddr_in *)saddrs[i])->sin_len = saddrlens[1]; #endif - ((struct sockaddr_in *) saddrs[i])->sin_family = AF_INET; - ((struct sockaddr_in *) saddrs[i])->sin_port = htons (port); + ((struct sockaddr_in *)saddrs[i])->sin_family = AF_INET; + ((struct sockaddr_in *)saddrs[i])->sin_port = htons(port); + } } - } - GNUNET_free_non_null (unixpath); + GNUNET_free_non_null(unixpath); *addrs = saddrs; *addr_lens = saddrlens; return resi; @@ -858,7 +859,7 @@ LEGACY_SERVICE_get_server_addresses ( * and #GNUNET_SYSERR on error. */ static int -receive_sockets_from_parent (struct LEGACY_SERVICE_Context *sctx) +receive_sockets_from_parent(struct LEGACY_SERVICE_Context *sctx) { const char *env_buf; int fail; @@ -866,72 +867,73 @@ receive_sockets_from_parent (struct LEGACY_SERVICE_Context *sctx) uint64_t i; HANDLE lsocks_pipe; - env_buf = getenv ("GNUNET_OS_READ_LSOCKS"); - if ((NULL == env_buf) || (strlen (env_buf) <= 0)) + env_buf = getenv("GNUNET_OS_READ_LSOCKS"); + if ((NULL == env_buf) || (strlen(env_buf) <= 0)) return GNUNET_NO; /* Using W32 API directly here, because this pipe will * never be used outside of this function, and it's just too much of a bother * to create a GNUnet API that boxes a HANDLE (the way it is done with socks) */ - lsocks_pipe = (HANDLE) strtoul (env_buf, NULL, 10); + lsocks_pipe = (HANDLE)strtoul(env_buf, NULL, 10); if ((0 == lsocks_pipe) || (INVALID_HANDLE_VALUE == lsocks_pipe)) return GNUNET_NO; fail = 1; do - { - int ret; - int fail2; - DWORD rd; - - ret = ReadFile (lsocks_pipe, &count, sizeof (count), &rd, NULL); - if ((0 == ret) || (sizeof (count) != rd) || (0 == count)) - break; - sctx->lsocks = - GNUNET_malloc (sizeof (struct GNUNET_NETWORK_Handle *) * (count + 1)); - - fail2 = 1; - for (i = 0; i < count; i++) { - WSAPROTOCOL_INFOA pi; - uint64_t size; - SOCKET s; + int ret; + int fail2; + DWORD rd; - ret = ReadFile (lsocks_pipe, &size, sizeof (size), &rd, NULL); - if ((0 == ret) || (sizeof (size) != rd) || (sizeof (pi) != size)) - break; - ret = ReadFile (lsocks_pipe, &pi, sizeof (pi), &rd, NULL); - if ((0 == ret) || (sizeof (pi) != rd)) + ret = ReadFile(lsocks_pipe, &count, sizeof(count), &rd, NULL); + if ((0 == ret) || (sizeof(count) != rd) || (0 == count)) break; - s = WSASocketA (pi.iAddressFamily, - pi.iSocketType, - pi.iProtocol, - &pi, - 0, - WSA_FLAG_OVERLAPPED); - sctx->lsocks[i] = GNUNET_NETWORK_socket_box_native (s); - if (NULL == sctx->lsocks[i]) + sctx->lsocks = + GNUNET_malloc(sizeof(struct GNUNET_NETWORK_Handle *) * (count + 1)); + + fail2 = 1; + for (i = 0; i < count; i++) + { + WSAPROTOCOL_INFOA pi; + uint64_t size; + SOCKET s; + + ret = ReadFile(lsocks_pipe, &size, sizeof(size), &rd, NULL); + if ((0 == ret) || (sizeof(size) != rd) || (sizeof(pi) != size)) + break; + ret = ReadFile(lsocks_pipe, &pi, sizeof(pi), &rd, NULL); + if ((0 == ret) || (sizeof(pi) != rd)) + break; + s = WSASocketA(pi.iAddressFamily, + pi.iSocketType, + pi.iProtocol, + &pi, + 0, + WSA_FLAG_OVERLAPPED); + sctx->lsocks[i] = GNUNET_NETWORK_socket_box_native(s); + if (NULL == sctx->lsocks[i]) + break; + else if (i == count - 1) + fail2 = 0; + } + if (fail2) break; - else if (i == count - 1) - fail2 = 0; + sctx->lsocks[count] = NULL; + fail = 0; } - if (fail2) - break; - sctx->lsocks[count] = NULL; - fail = 0; - } while (fail); + while (fail); - CloseHandle (lsocks_pipe); + CloseHandle(lsocks_pipe); if (fail) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Could not access a pre-bound socket, will try to bind myself\n")); - for (i = 0; (i < count) && (NULL != sctx->lsocks[i]); i++) - GNUNET_break (0 == GNUNET_NETWORK_socket_close (sctx->lsocks[i])); - GNUNET_free_non_null (sctx->lsocks); - sctx->lsocks = NULL; - return GNUNET_NO; - } + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Could not access a pre-bound socket, will try to bind myself\n")); + for (i = 0; (i < count) && (NULL != sctx->lsocks[i]); i++) + GNUNET_break(0 == GNUNET_NETWORK_socket_close(sctx->lsocks[i])); + GNUNET_free_non_null(sctx->lsocks); + sctx->lsocks = NULL; + return GNUNET_NO; + } return GNUNET_YES; } #endif @@ -956,7 +958,7 @@ receive_sockets_from_parent (struct LEGACY_SERVICE_Context *sctx) * @return #GNUNET_OK if configuration succeeded */ static int -setup_service (struct LEGACY_SERVICE_Context *sctx) +setup_service(struct LEGACY_SERVICE_Context *sctx) { struct GNUNET_TIME_Relative idleout; int tolerant; @@ -967,99 +969,99 @@ setup_service (struct LEGACY_SERVICE_Context *sctx) int flags; #endif - if (GNUNET_CONFIGURATION_have_value (sctx->cfg, - sctx->service_name, - "TIMEOUT")) - { - if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time (sctx->cfg, - sctx->service_name, - "TIMEOUT", - &idleout)) + if (GNUNET_CONFIGURATION_have_value(sctx->cfg, + sctx->service_name, + "TIMEOUT")) { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Specified value for `%s' of service `%s' is invalid\n"), - "TIMEOUT", - sctx->service_name); - return GNUNET_SYSERR; + if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_time(sctx->cfg, + sctx->service_name, + "TIMEOUT", + &idleout)) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Specified value for `%s' of service `%s' is invalid\n"), + "TIMEOUT", + sctx->service_name); + return GNUNET_SYSERR; + } + sctx->timeout = idleout; } - sctx->timeout = idleout; - } else sctx->timeout = GNUNET_TIME_UNIT_FOREVER_REL; - if (GNUNET_CONFIGURATION_have_value (sctx->cfg, - sctx->service_name, - "TOLERANT")) - { - if (GNUNET_SYSERR == - (tolerant = GNUNET_CONFIGURATION_get_value_yesno (sctx->cfg, - sctx->service_name, - "TOLERANT"))) + if (GNUNET_CONFIGURATION_have_value(sctx->cfg, + sctx->service_name, + "TOLERANT")) { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Specified value for `%s' of service `%s' is invalid\n"), - "TOLERANT", - sctx->service_name); - return GNUNET_SYSERR; + if (GNUNET_SYSERR == + (tolerant = GNUNET_CONFIGURATION_get_value_yesno(sctx->cfg, + sctx->service_name, + "TOLERANT"))) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Specified value for `%s' of service `%s' is invalid\n"), + "TOLERANT", + sctx->service_name); + return GNUNET_SYSERR; + } } - } else tolerant = GNUNET_NO; #ifndef MINGW errno = 0; - if ((NULL != (nfds = getenv ("LISTEN_FDS"))) && - (1 == sscanf (nfds, "%u", &cnt)) && (cnt > 0) && (cnt < FD_SETSIZE) && + if ((NULL != (nfds = getenv("LISTEN_FDS"))) && + (1 == sscanf(nfds, "%u", &cnt)) && (cnt > 0) && (cnt < FD_SETSIZE) && (cnt + 4 < FD_SETSIZE)) - { - sctx->lsocks = - GNUNET_malloc (sizeof (struct GNUNET_NETWORK_Handle *) * (cnt + 1)); - while (0 < cnt--) { - flags = fcntl (3 + cnt, F_GETFD); - if ((flags < 0) || (0 != (flags & FD_CLOEXEC)) || - (NULL == - (sctx->lsocks[cnt] = GNUNET_NETWORK_socket_box_native (3 + cnt)))) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ( - "Could not access pre-bound socket %u, will try to bind myself\n"), - (unsigned int) 3 + cnt); - cnt++; - while (sctx->lsocks[cnt] != NULL) - GNUNET_break (0 == GNUNET_NETWORK_socket_close (sctx->lsocks[cnt++])); - GNUNET_free (sctx->lsocks); - sctx->lsocks = NULL; - break; - } + sctx->lsocks = + GNUNET_malloc(sizeof(struct GNUNET_NETWORK_Handle *) * (cnt + 1)); + while (0 < cnt--) + { + flags = fcntl(3 + cnt, F_GETFD); + if ((flags < 0) || (0 != (flags & FD_CLOEXEC)) || + (NULL == + (sctx->lsocks[cnt] = GNUNET_NETWORK_socket_box_native(3 + cnt)))) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _( + "Could not access pre-bound socket %u, will try to bind myself\n"), + (unsigned int)3 + cnt); + cnt++; + while (sctx->lsocks[cnt] != NULL) + GNUNET_break(0 == GNUNET_NETWORK_socket_close(sctx->lsocks[cnt++])); + GNUNET_free(sctx->lsocks); + sctx->lsocks = NULL; + break; + } + } + unsetenv("LISTEN_FDS"); } - unsetenv ("LISTEN_FDS"); - } #else - if (getenv ("GNUNET_OS_READ_LSOCKS") != NULL) - { - receive_sockets_from_parent (sctx); - putenv ("GNUNET_OS_READ_LSOCKS="); - } + if (getenv("GNUNET_OS_READ_LSOCKS") != NULL) + { + receive_sockets_from_parent(sctx); + putenv("GNUNET_OS_READ_LSOCKS="); + } #endif if ((NULL == sctx->lsocks) && - (GNUNET_SYSERR == LEGACY_SERVICE_get_server_addresses (sctx->service_name, - sctx->cfg, - &sctx->addrs, - &sctx->addrlens))) + (GNUNET_SYSERR == LEGACY_SERVICE_get_server_addresses(sctx->service_name, + sctx->cfg, + &sctx->addrs, + &sctx->addrlens))) return GNUNET_SYSERR; sctx->require_found = tolerant ? GNUNET_NO : GNUNET_YES; - sctx->match_uid = GNUNET_CONFIGURATION_get_value_yesno (sctx->cfg, - sctx->service_name, - "UNIX_MATCH_UID"); - sctx->match_gid = GNUNET_CONFIGURATION_get_value_yesno (sctx->cfg, - sctx->service_name, - "UNIX_MATCH_GID"); - process_acl4 (&sctx->v4_denied, sctx, "REJECT_FROM"); - process_acl4 (&sctx->v4_allowed, sctx, "ACCEPT_FROM"); - process_acl6 (&sctx->v6_denied, sctx, "REJECT_FROM6"); - process_acl6 (&sctx->v6_allowed, sctx, "ACCEPT_FROM6"); + sctx->match_uid = GNUNET_CONFIGURATION_get_value_yesno(sctx->cfg, + sctx->service_name, + "UNIX_MATCH_UID"); + sctx->match_gid = GNUNET_CONFIGURATION_get_value_yesno(sctx->cfg, + sctx->service_name, + "UNIX_MATCH_GID"); + process_acl4(&sctx->v4_denied, sctx, "REJECT_FROM"); + process_acl4(&sctx->v4_allowed, sctx, "ACCEPT_FROM"); + process_acl6(&sctx->v6_denied, sctx, "REJECT_FROM6"); + process_acl6(&sctx->v6_allowed, sctx, "ACCEPT_FROM6"); return GNUNET_OK; } @@ -1073,14 +1075,14 @@ setup_service (struct LEGACY_SERVICE_Context *sctx) * @return value of the 'USERNAME' option */ static char * -get_user_name (struct LEGACY_SERVICE_Context *sctx) +get_user_name(struct LEGACY_SERVICE_Context *sctx) { char *un; - if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (sctx->cfg, - sctx->service_name, - "USERNAME", - &un)) + if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename(sctx->cfg, + sctx->service_name, + "USERNAME", + &un)) return NULL; return un; } @@ -1094,7 +1096,7 @@ get_user_name (struct LEGACY_SERVICE_Context *sctx) * @return #GNUNET_OK on success (including no work to be done) */ static int -write_pid_file (struct LEGACY_SERVICE_Context *sctx, pid_t pid) +write_pid_file(struct LEGACY_SERVICE_Context *sctx, pid_t pid) { FILE *pidfd; char *pif; @@ -1102,46 +1104,46 @@ write_pid_file (struct LEGACY_SERVICE_Context *sctx, pid_t pid) char *rdir; int len; - if (NULL == (pif = get_pid_file_name (sctx))) + if (NULL == (pif = get_pid_file_name(sctx))) return GNUNET_OK; /* no file desired */ - user = get_user_name (sctx); - rdir = GNUNET_strdup (pif); - len = strlen (rdir); + user = get_user_name(sctx); + rdir = GNUNET_strdup(pif); + len = strlen(rdir); while ((len > 0) && (rdir[len] != DIR_SEPARATOR)) len--; rdir[len] = '\0'; - if (0 != access (rdir, F_OK)) - { - /* we get to create a directory -- and claim it - * as ours! */ - (void) GNUNET_DISK_directory_create (rdir); - if ((NULL != user) && (0 < strlen (user))) - GNUNET_DISK_file_change_owner (rdir, user); - } - if (0 != access (rdir, W_OK | X_OK)) - { - LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "access", rdir); - GNUNET_free (rdir); - GNUNET_free_non_null (user); - GNUNET_free (pif); - return GNUNET_SYSERR; - } - GNUNET_free (rdir); - pidfd = fopen (pif, "w"); + if (0 != access(rdir, F_OK)) + { + /* we get to create a directory -- and claim it + * as ours! */ + (void)GNUNET_DISK_directory_create(rdir); + if ((NULL != user) && (0 < strlen(user))) + GNUNET_DISK_file_change_owner(rdir, user); + } + if (0 != access(rdir, W_OK | X_OK)) + { + LOG_STRERROR_FILE(GNUNET_ERROR_TYPE_ERROR, "access", rdir); + GNUNET_free(rdir); + GNUNET_free_non_null(user); + GNUNET_free(pif); + return GNUNET_SYSERR; + } + GNUNET_free(rdir); + pidfd = fopen(pif, "w"); if (NULL == pidfd) - { - LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_ERROR, "fopen", pif); - GNUNET_free (pif); - GNUNET_free_non_null (user); - return GNUNET_SYSERR; - } - if (0 > fprintf (pidfd, "%u", pid)) - LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "fprintf", pif); - GNUNET_break (0 == fclose (pidfd)); - if ((NULL != user) && (0 < strlen (user))) - GNUNET_DISK_file_change_owner (pif, user); - GNUNET_free_non_null (user); - GNUNET_free (pif); + { + LOG_STRERROR_FILE(GNUNET_ERROR_TYPE_ERROR, "fopen", pif); + GNUNET_free(pif); + GNUNET_free_non_null(user); + return GNUNET_SYSERR; + } + if (0 > fprintf(pidfd, "%u", pid)) + LOG_STRERROR_FILE(GNUNET_ERROR_TYPE_WARNING, "fprintf", pif); + GNUNET_break(0 == fclose(pidfd)); + if ((NULL != user) && (0 < strlen(user))) + GNUNET_DISK_file_change_owner(pif, user); + GNUNET_free_non_null(user); + GNUNET_free(pif); return GNUNET_OK; } @@ -1152,16 +1154,16 @@ write_pid_file (struct LEGACY_SERVICE_Context *sctx, pid_t pid) * @param cls the `struct LEGACY_SERVICE_Context` */ static void -shutdown_task (void *cls) +shutdown_task(void *cls) { struct LEGACY_SERVICE_Context *service = cls; struct GNUNET_SERVER_Handle *server = service->server; service->shutdown_task = NULL; if (0 != (service->options & LEGACY_SERVICE_OPTION_SOFT_SHUTDOWN)) - GNUNET_SERVER_stop_listening (server); + GNUNET_SERVER_stop_listening(server); else - GNUNET_SERVER_destroy (server); + GNUNET_SERVER_destroy(server); } @@ -1171,81 +1173,81 @@ shutdown_task (void *cls) * @param cls service context */ static void -service_task (void *cls) +service_task(void *cls) { struct LEGACY_SERVICE_Context *sctx = cls; unsigned int i; - GNUNET_RESOLVER_connect (sctx->cfg); + GNUNET_RESOLVER_connect(sctx->cfg); if (NULL != sctx->lsocks) - sctx->server = GNUNET_SERVER_create_with_sockets (&check_access, - sctx, - sctx->lsocks, - sctx->timeout, - sctx->require_found); + sctx->server = GNUNET_SERVER_create_with_sockets(&check_access, + sctx, + sctx->lsocks, + sctx->timeout, + sctx->require_found); else - sctx->server = GNUNET_SERVER_create (&check_access, - sctx, - sctx->addrs, - sctx->addrlens, - sctx->timeout, - sctx->require_found); + sctx->server = GNUNET_SERVER_create(&check_access, + sctx, + sctx->addrs, + sctx->addrlens, + sctx->timeout, + sctx->require_found); if (NULL == sctx->server) - { - if (NULL != sctx->addrs) - for (i = 0; NULL != sctx->addrs[i]; i++) - LOG (GNUNET_ERROR_TYPE_INFO, - _ ("Failed to start `%s' at `%s'\n"), - sctx->service_name, - GNUNET_a2s (sctx->addrs[i], sctx->addrlens[i])); - sctx->ret = GNUNET_SYSERR; - return; - } + { + if (NULL != sctx->addrs) + for (i = 0; NULL != sctx->addrs[i]; i++) + LOG(GNUNET_ERROR_TYPE_INFO, + _("Failed to start `%s' at `%s'\n"), + sctx->service_name, + GNUNET_a2s(sctx->addrs[i], sctx->addrlens[i])); + sctx->ret = GNUNET_SYSERR; + return; + } #ifndef WINDOWS if (NULL != sctx->addrs) for (i = 0; NULL != sctx->addrs[i]; i++) if ((AF_UNIX == sctx->addrs[i]->sa_family) && - ('\0' != ((const struct sockaddr_un *) sctx->addrs[i])->sun_path[0])) - GNUNET_DISK_fix_permissions (((const struct sockaddr_un *) - sctx->addrs[i]) - ->sun_path, - sctx->match_uid, - sctx->match_gid); + ('\0' != ((const struct sockaddr_un *)sctx->addrs[i])->sun_path[0])) + GNUNET_DISK_fix_permissions(((const struct sockaddr_un *) + sctx->addrs[i]) + ->sun_path, + sctx->match_uid, + sctx->match_gid); #endif if (0 == (sctx->options & LEGACY_SERVICE_OPTION_MANUAL_SHUTDOWN)) - { - /* install a task that will kill the server - * process if the scheduler ever gets a shutdown signal */ - sctx->shutdown_task = GNUNET_SCHEDULER_add_shutdown (&shutdown_task, sctx); - } - sctx->my_handlers = GNUNET_malloc (sizeof (defhandlers)); - GNUNET_memcpy (sctx->my_handlers, defhandlers, sizeof (defhandlers)); + { + /* install a task that will kill the server + * process if the scheduler ever gets a shutdown signal */ + sctx->shutdown_task = GNUNET_SCHEDULER_add_shutdown(&shutdown_task, sctx); + } + sctx->my_handlers = GNUNET_malloc(sizeof(defhandlers)); + GNUNET_memcpy(sctx->my_handlers, defhandlers, sizeof(defhandlers)); i = 0; while (NULL != sctx->my_handlers[i].callback) sctx->my_handlers[i++].callback_cls = sctx; - GNUNET_SERVER_add_handlers (sctx->server, sctx->my_handlers); + GNUNET_SERVER_add_handlers(sctx->server, sctx->my_handlers); if (-1 != sctx->ready_confirm_fd) - { - GNUNET_break (1 == write (sctx->ready_confirm_fd, ".", 1)); - GNUNET_break (0 == close (sctx->ready_confirm_fd)); - sctx->ready_confirm_fd = -1; - write_pid_file (sctx, getpid ()); - } + { + GNUNET_break(1 == write(sctx->ready_confirm_fd, ".", 1)); + GNUNET_break(0 == close(sctx->ready_confirm_fd)); + sctx->ready_confirm_fd = -1; + write_pid_file(sctx, getpid()); + } if (NULL != sctx->addrs) - { - i = 0; - while (NULL != sctx->addrs[i]) { - LOG (GNUNET_ERROR_TYPE_INFO, - _ ("Service `%s' runs at %s\n"), - sctx->service_name, - GNUNET_a2s (sctx->addrs[i], sctx->addrlens[i])); - i++; + i = 0; + while (NULL != sctx->addrs[i]) + { + LOG(GNUNET_ERROR_TYPE_INFO, + _("Service `%s' runs at %s\n"), + sctx->service_name, + GNUNET_a2s(sctx->addrs[i], sctx->addrlens[i])); + i++; + } } - } - sctx->task (sctx->task_cls, sctx->server, sctx->cfg); + sctx->task(sctx->task_cls, sctx->server, sctx->cfg); } @@ -1256,76 +1258,79 @@ service_task (void *cls) * @return #GNUNET_OK on success, #GNUNET_SYSERR on error */ static int -detach_terminal (struct LEGACY_SERVICE_Context *sctx) +detach_terminal(struct LEGACY_SERVICE_Context *sctx) { #ifndef MINGW pid_t pid; int nullfd; int filedes[2]; - if (0 != pipe (filedes)) - { - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "pipe"); - return GNUNET_SYSERR; - } - pid = fork (); + if (0 != pipe(filedes)) + { + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "pipe"); + return GNUNET_SYSERR; + } + pid = fork(); if (pid < 0) - { - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "fork"); - return GNUNET_SYSERR; - } + { + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "fork"); + return GNUNET_SYSERR; + } if (0 != pid) - { - /* Parent */ - char c; - - GNUNET_break (0 == close (filedes[1])); - c = 'X'; - if (1 != read (filedes[0], &c, sizeof (char))) - LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "read"); - fflush (stdout); - switch (c) { - case '.': - exit (0); - case 'I': - LOG (GNUNET_ERROR_TYPE_INFO, - _ ("Service process failed to initialize\n")); - break; - case 'S': - LOG (GNUNET_ERROR_TYPE_INFO, - _ ("Service process could not initialize server function\n")); - break; - case 'X': - LOG (GNUNET_ERROR_TYPE_INFO, - _ ("Service process failed to report status\n")); - break; + /* Parent */ + char c; + + GNUNET_break(0 == close(filedes[1])); + c = 'X'; + if (1 != read(filedes[0], &c, sizeof(char))) + LOG_STRERROR(GNUNET_ERROR_TYPE_WARNING, "read"); + fflush(stdout); + switch (c) + { + case '.': + exit(0); + + case 'I': + LOG(GNUNET_ERROR_TYPE_INFO, + _("Service process failed to initialize\n")); + break; + + case 'S': + LOG(GNUNET_ERROR_TYPE_INFO, + _("Service process could not initialize server function\n")); + break; + + case 'X': + LOG(GNUNET_ERROR_TYPE_INFO, + _("Service process failed to report status\n")); + break; + } + exit(1); /* child reported error */ } - exit (1); /* child reported error */ - } - GNUNET_break (0 == close (0)); - GNUNET_break (0 == close (1)); - GNUNET_break (0 == close (filedes[0])); - nullfd = open ("/dev/null", O_RDWR | O_APPEND); + GNUNET_break(0 == close(0)); + GNUNET_break(0 == close(1)); + GNUNET_break(0 == close(filedes[0])); + nullfd = open("/dev/null", O_RDWR | O_APPEND); if (nullfd < 0) return GNUNET_SYSERR; /* set stdin/stdout to /dev/null */ - if ((dup2 (nullfd, 0) < 0) || (dup2 (nullfd, 1) < 0)) - { - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "dup2"); - (void) close (nullfd); - return GNUNET_SYSERR; - } - (void) close (nullfd); + if ((dup2(nullfd, 0) < 0) || (dup2(nullfd, 1) < 0)) + { + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "dup2"); + (void)close(nullfd); + return GNUNET_SYSERR; + } + (void)close(nullfd); /* Detach from controlling terminal */ - pid = setsid (); + pid = setsid(); if (-1 == pid) - LOG_STRERROR (GNUNET_ERROR_TYPE_ERROR, "setsid"); + LOG_STRERROR(GNUNET_ERROR_TYPE_ERROR, "setsid"); sctx->ready_confirm_fd = filedes[1]; #else /* FIXME: we probably need to do something else * elsewhere in order to fork the process itself... */ - FreeConsole (); + FreeConsole(); #endif return GNUNET_OK; } @@ -1338,45 +1343,45 @@ detach_terminal (struct LEGACY_SERVICE_Context *sctx) * @return #GNUNET_OK on success, #GNUNET_SYSERR on error */ static int -set_user_id (struct LEGACY_SERVICE_Context *sctx) +set_user_id(struct LEGACY_SERVICE_Context *sctx) { char *user; - if (NULL == (user = get_user_name (sctx))) + if (NULL == (user = get_user_name(sctx))) return GNUNET_OK; /* keep */ #ifndef MINGW struct passwd *pws; errno = 0; - pws = getpwnam (user); + pws = getpwnam(user); if (NULL == pws) - { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Cannot obtain information about user `%s': %s\n"), - user, - errno == 0 ? _ ("No such user") : strerror (errno)); - GNUNET_free (user); - return GNUNET_SYSERR; - } - if ((0 != setgid (pws->pw_gid)) || (0 != setegid (pws->pw_gid)) || + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Cannot obtain information about user `%s': %s\n"), + user, + errno == 0 ? _("No such user") : strerror(errno)); + GNUNET_free(user); + return GNUNET_SYSERR; + } + if ((0 != setgid(pws->pw_gid)) || (0 != setegid(pws->pw_gid)) || #if HAVE_INITGROUPS - (0 != initgroups (user, pws->pw_gid)) || + (0 != initgroups(user, pws->pw_gid)) || #endif - (0 != setuid (pws->pw_uid)) || (0 != seteuid (pws->pw_uid))) - { - if ((0 != setregid (pws->pw_gid, pws->pw_gid)) || - (0 != setreuid (pws->pw_uid, pws->pw_uid))) + (0 != setuid(pws->pw_uid)) || (0 != seteuid(pws->pw_uid))) { - LOG (GNUNET_ERROR_TYPE_ERROR, - _ ("Cannot change user/group to `%s': %s\n"), - user, - strerror (errno)); - GNUNET_free (user); - return GNUNET_SYSERR; + if ((0 != setregid(pws->pw_gid, pws->pw_gid)) || + (0 != setreuid(pws->pw_uid, pws->pw_uid))) + { + LOG(GNUNET_ERROR_TYPE_ERROR, + _("Cannot change user/group to `%s': %s\n"), + user, + strerror(errno)); + GNUNET_free(user); + return GNUNET_SYSERR; + } } - } #endif - GNUNET_free (user); + GNUNET_free(user); return GNUNET_OK; } @@ -1387,15 +1392,15 @@ set_user_id (struct LEGACY_SERVICE_Context *sctx) * @param sctx service context */ static void -pid_file_delete (struct LEGACY_SERVICE_Context *sctx) +pid_file_delete(struct LEGACY_SERVICE_Context *sctx) { - char *pif = get_pid_file_name (sctx); + char *pif = get_pid_file_name(sctx); if (NULL == pif) return; /* no PID file */ - if (0 != unlink (pif)) - LOG_STRERROR_FILE (GNUNET_ERROR_TYPE_WARNING, "unlink", pif); - GNUNET_free (pif); + if (0 != unlink(pif)) + LOG_STRERROR_FILE(GNUNET_ERROR_TYPE_WARNING, "unlink", pif); + GNUNET_free(pif); } @@ -1413,19 +1418,19 @@ pid_file_delete (struct LEGACY_SERVICE_Context *sctx) * if we shutdown nicely */ int -LEGACY_SERVICE_run (int argc, - char *const *argv, - const char *service_name, - enum LEGACY_SERVICE_Options options, - LEGACY_SERVICE_Main task, - void *task_cls) +LEGACY_SERVICE_run(int argc, + char *const *argv, + const char *service_name, + enum LEGACY_SERVICE_Options options, + LEGACY_SERVICE_Main task, + void *task_cls) { #define HANDLE_ERROR \ do \ - { \ - GNUNET_break (0); \ - goto shutdown; \ - } while (0) + { \ + GNUNET_break(0); \ + goto shutdown; \ + } while (0) int err; int ret; @@ -1443,32 +1448,32 @@ LEGACY_SERVICE_run (int argc, const char *xdg; struct GNUNET_GETOPT_CommandLineOption service_options[] = - {GNUNET_GETOPT_option_cfgfile (&opt_cfg_fn), - GNUNET_GETOPT_option_flag ('d', - "daemonize", - gettext_noop ( - "do daemonize (detach from terminal)"), - &do_daemonize), - GNUNET_GETOPT_option_help (NULL), - GNUNET_GETOPT_option_loglevel (&loglev), - GNUNET_GETOPT_option_logfile (&logfile), - GNUNET_GETOPT_option_version (PACKAGE_VERSION " " VCS_VERSION), - GNUNET_GETOPT_OPTION_END}; + { GNUNET_GETOPT_option_cfgfile(&opt_cfg_fn), + GNUNET_GETOPT_option_flag('d', + "daemonize", + gettext_noop( + "do daemonize (detach from terminal)"), + &do_daemonize), + GNUNET_GETOPT_option_help(NULL), + GNUNET_GETOPT_option_loglevel(&loglev), + GNUNET_GETOPT_option_logfile(&logfile), + GNUNET_GETOPT_option_version(PACKAGE_VERSION " " VCS_VERSION), + GNUNET_GETOPT_OPTION_END }; err = 1; do_daemonize = 0; logfile = NULL; loglev = NULL; opt_cfg_fn = NULL; - xdg = getenv ("XDG_CONFIG_HOME"); + xdg = getenv("XDG_CONFIG_HOME"); if (NULL != xdg) - GNUNET_asprintf (&cfg_fn, - "%s%s%s", - xdg, - DIR_SEPARATOR_STR, - GNUNET_OS_project_data_get ()->config_file); + GNUNET_asprintf(&cfg_fn, + "%s%s%s", + xdg, + DIR_SEPARATOR_STR, + GNUNET_OS_project_data_get()->config_file); else - cfg_fn = GNUNET_strdup (GNUNET_OS_project_data_get ()->user_config_file); - memset (&sctx, 0, sizeof (sctx)); + cfg_fn = GNUNET_strdup(GNUNET_OS_project_data_get()->user_config_file); + memset(&sctx, 0, sizeof(sctx)); sctx.options = options; sctx.ready_confirm_fd = -1; sctx.ret = GNUNET_OK; @@ -1476,117 +1481,117 @@ LEGACY_SERVICE_run (int argc, sctx.task = task; sctx.task_cls = task_cls; sctx.service_name = service_name; - sctx.cfg = cfg = GNUNET_CONFIGURATION_create (); + sctx.cfg = cfg = GNUNET_CONFIGURATION_create(); /* setup subsystems */ - ret = GNUNET_GETOPT_run (service_name, service_options, argc, argv); + ret = GNUNET_GETOPT_run(service_name, service_options, argc, argv); if (GNUNET_SYSERR == ret) goto shutdown; if (GNUNET_NO == ret) - { - err = 0; - goto shutdown; - } - if (GNUNET_OK != GNUNET_log_setup (service_name, loglev, logfile)) + { + err = 0; + goto shutdown; + } + if (GNUNET_OK != GNUNET_log_setup(service_name, loglev, logfile)) HANDLE_ERROR; if (NULL == opt_cfg_fn) - opt_cfg_fn = GNUNET_strdup (cfg_fn); - if (GNUNET_YES == GNUNET_DISK_file_test (opt_cfg_fn)) - { - if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, opt_cfg_fn)) + opt_cfg_fn = GNUNET_strdup(cfg_fn); + if (GNUNET_YES == GNUNET_DISK_file_test(opt_cfg_fn)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - _ ("Malformed configuration file `%s', exit ...\n"), - opt_cfg_fn); - goto shutdown; + if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load(cfg, opt_cfg_fn)) + { + GNUNET_log(GNUNET_ERROR_TYPE_ERROR, + _("Malformed configuration file `%s', exit ...\n"), + opt_cfg_fn); + goto shutdown; + } } - } else - { - if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, NULL)) { - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - _ ("Malformed configuration, exit ...\n")); - goto shutdown; + if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load(cfg, NULL)) + { + GNUNET_log(GNUNET_ERROR_TYPE_ERROR, + _("Malformed configuration, exit ...\n")); + goto shutdown; + } + if (0 != strcmp(opt_cfg_fn, cfg_fn)) + GNUNET_log(GNUNET_ERROR_TYPE_ERROR, + _("Could not access configuration file `%s'\n"), + opt_cfg_fn); } - if (0 != strcmp (opt_cfg_fn, cfg_fn)) - GNUNET_log (GNUNET_ERROR_TYPE_ERROR, - _ ("Could not access configuration file `%s'\n"), - opt_cfg_fn); - } - if (GNUNET_OK != setup_service (&sctx)) + if (GNUNET_OK != setup_service(&sctx)) goto shutdown; - if ((1 == do_daemonize) && (GNUNET_OK != detach_terminal (&sctx))) + if ((1 == do_daemonize) && (GNUNET_OK != detach_terminal(&sctx))) HANDLE_ERROR; - if (GNUNET_OK != set_user_id (&sctx)) + if (GNUNET_OK != set_user_id(&sctx)) goto shutdown; - LOG (GNUNET_ERROR_TYPE_DEBUG, - "Service `%s' runs with configuration from `%s'\n", - service_name, - opt_cfg_fn); - if ((GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (sctx.cfg, - "TESTING", - "SKEW_OFFSET", - &skew_offset)) && - (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number (sctx.cfg, - "TESTING", - "SKEW_VARIANCE", - &skew_variance))) - { - clock_offset = skew_offset - skew_variance; - GNUNET_TIME_set_offset (clock_offset); - LOG (GNUNET_ERROR_TYPE_DEBUG, "Skewing clock by %dll ms\n", clock_offset); - } + LOG(GNUNET_ERROR_TYPE_DEBUG, + "Service `%s' runs with configuration from `%s'\n", + service_name, + opt_cfg_fn); + if ((GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(sctx.cfg, + "TESTING", + "SKEW_OFFSET", + &skew_offset)) && + (GNUNET_OK == GNUNET_CONFIGURATION_get_value_number(sctx.cfg, + "TESTING", + "SKEW_VARIANCE", + &skew_variance))) + { + clock_offset = skew_offset - skew_variance; + GNUNET_TIME_set_offset(clock_offset); + LOG(GNUNET_ERROR_TYPE_DEBUG, "Skewing clock by %dll ms\n", clock_offset); + } /* actually run service */ err = 0; - GNUNET_SCHEDULER_run (&service_task, &sctx); + GNUNET_SCHEDULER_run(&service_task, &sctx); /* shutdown */ if ((1 == do_daemonize) && (NULL != sctx.server)) - pid_file_delete (&sctx); - GNUNET_free_non_null (sctx.my_handlers); + pid_file_delete(&sctx); + GNUNET_free_non_null(sctx.my_handlers); shutdown: if (-1 != sctx.ready_confirm_fd) - { - if (1 != write (sctx.ready_confirm_fd, err ? "I" : "S", 1)) - LOG_STRERROR (GNUNET_ERROR_TYPE_WARNING, "write"); - GNUNET_break (0 == close (sctx.ready_confirm_fd)); - } + { + if (1 != write(sctx.ready_confirm_fd, err ? "I" : "S", 1)) + LOG_STRERROR(GNUNET_ERROR_TYPE_WARNING, "write"); + GNUNET_break(0 == close(sctx.ready_confirm_fd)); + } #if HAVE_MALLINFO { char *counter; - if ((GNUNET_YES == GNUNET_CONFIGURATION_have_value (sctx.cfg, - service_name, - "GAUGER_HEAP")) && - (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (sctx.cfg, - service_name, - "GAUGER_HEAP", - &counter))) - { - struct mallinfo mi; + if ((GNUNET_YES == GNUNET_CONFIGURATION_have_value(sctx.cfg, + service_name, + "GAUGER_HEAP")) && + (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string(sctx.cfg, + service_name, + "GAUGER_HEAP", + &counter))) + { + struct mallinfo mi; - mi = mallinfo (); - GAUGER (service_name, counter, mi.usmblks, "blocks"); - GNUNET_free (counter); - } + mi = mallinfo(); + GAUGER(service_name, counter, mi.usmblks, "blocks"); + GNUNET_free(counter); + } } #endif - GNUNET_CONFIGURATION_destroy (cfg); + GNUNET_CONFIGURATION_destroy(cfg); i = 0; if (NULL != sctx.addrs) while (NULL != sctx.addrs[i]) - GNUNET_free (sctx.addrs[i++]); - GNUNET_free_non_null (sctx.addrs); - GNUNET_free_non_null (sctx.addrlens); - GNUNET_free_non_null (logfile); - GNUNET_free_non_null (loglev); - GNUNET_free (cfg_fn); - GNUNET_free_non_null (opt_cfg_fn); - GNUNET_free_non_null (sctx.v4_denied); - GNUNET_free_non_null (sctx.v6_denied); - GNUNET_free_non_null (sctx.v4_allowed); - GNUNET_free_non_null (sctx.v6_allowed); + GNUNET_free(sctx.addrs[i++]); + GNUNET_free_non_null(sctx.addrs); + GNUNET_free_non_null(sctx.addrlens); + GNUNET_free_non_null(logfile); + GNUNET_free_non_null(loglev); + GNUNET_free(cfg_fn); + GNUNET_free_non_null(opt_cfg_fn); + GNUNET_free_non_null(sctx.v4_denied); + GNUNET_free_non_null(sctx.v6_denied); + GNUNET_free_non_null(sctx.v4_allowed); + GNUNET_free_non_null(sctx.v6_allowed); return err ? GNUNET_SYSERR : sctx.ret; } @@ -1602,14 +1607,14 @@ shutdown: * @return NULL on error, service handle */ struct LEGACY_SERVICE_Context * -LEGACY_SERVICE_start (const char *service_name, - const struct GNUNET_CONFIGURATION_Handle *cfg, - enum LEGACY_SERVICE_Options options) +LEGACY_SERVICE_start(const char *service_name, + const struct GNUNET_CONFIGURATION_Handle *cfg, + enum LEGACY_SERVICE_Options options) { int i; struct LEGACY_SERVICE_Context *sctx; - sctx = GNUNET_new (struct LEGACY_SERVICE_Context); + sctx = GNUNET_new(struct LEGACY_SERVICE_Context); sctx->ready_confirm_fd = -1; /* no daemonizing */ sctx->ret = GNUNET_OK; sctx->timeout = GNUNET_TIME_UNIT_FOREVER_REL; @@ -1618,47 +1623,47 @@ LEGACY_SERVICE_start (const char *service_name, sctx->options = options; /* setup subsystems */ - if (GNUNET_OK != setup_service (sctx)) - { - LEGACY_SERVICE_stop (sctx); - return NULL; - } + if (GNUNET_OK != setup_service(sctx)) + { + LEGACY_SERVICE_stop(sctx); + return NULL; + } if (NULL != sctx->lsocks) - sctx->server = GNUNET_SERVER_create_with_sockets (&check_access, - sctx, - sctx->lsocks, - sctx->timeout, - sctx->require_found); + sctx->server = GNUNET_SERVER_create_with_sockets(&check_access, + sctx, + sctx->lsocks, + sctx->timeout, + sctx->require_found); else - sctx->server = GNUNET_SERVER_create (&check_access, - sctx, - sctx->addrs, - sctx->addrlens, - sctx->timeout, - sctx->require_found); + sctx->server = GNUNET_SERVER_create(&check_access, + sctx, + sctx->addrs, + sctx->addrlens, + sctx->timeout, + sctx->require_found); if (NULL == sctx->server) - { - LEGACY_SERVICE_stop (sctx); - return NULL; - } + { + LEGACY_SERVICE_stop(sctx); + return NULL; + } #ifndef WINDOWS if (NULL != sctx->addrs) for (i = 0; NULL != sctx->addrs[i]; i++) if ((AF_UNIX == sctx->addrs[i]->sa_family) && - ('\0' != ((const struct sockaddr_un *) sctx->addrs[i])->sun_path[0])) - GNUNET_DISK_fix_permissions (((const struct sockaddr_un *) - sctx->addrs[i]) - ->sun_path, - sctx->match_uid, - sctx->match_gid); + ('\0' != ((const struct sockaddr_un *)sctx->addrs[i])->sun_path[0])) + GNUNET_DISK_fix_permissions(((const struct sockaddr_un *) + sctx->addrs[i]) + ->sun_path, + sctx->match_uid, + sctx->match_gid); #endif - sctx->my_handlers = GNUNET_malloc (sizeof (defhandlers)); - GNUNET_memcpy (sctx->my_handlers, defhandlers, sizeof (defhandlers)); + sctx->my_handlers = GNUNET_malloc(sizeof(defhandlers)); + GNUNET_memcpy(sctx->my_handlers, defhandlers, sizeof(defhandlers)); i = 0; while ((sctx->my_handlers[i].callback != NULL)) sctx->my_handlers[i++].callback_cls = sctx; - GNUNET_SERVER_add_handlers (sctx->server, sctx->my_handlers); + GNUNET_SERVER_add_handlers(sctx->server, sctx->my_handlers); return sctx; } @@ -1671,7 +1676,7 @@ LEGACY_SERVICE_start (const char *service_name, * @return handle to the server for this service, NULL if there is none */ struct GNUNET_SERVER_Handle * -LEGACY_SERVICE_get_server (struct LEGACY_SERVICE_Context *ctx) +LEGACY_SERVICE_get_server(struct LEGACY_SERVICE_Context *ctx) { return ctx->server; } @@ -1685,7 +1690,7 @@ LEGACY_SERVICE_get_server (struct LEGACY_SERVICE_Context *ctx) * array of listen sockets. */ struct GNUNET_NETWORK_Handle *const * -LEGACY_SERVICE_get_listen_sockets (struct LEGACY_SERVICE_Context *ctx) +LEGACY_SERVICE_get_listen_sockets(struct LEGACY_SERVICE_Context *ctx) { return ctx->lsocks; } @@ -1697,7 +1702,7 @@ LEGACY_SERVICE_get_listen_sockets (struct LEGACY_SERVICE_Context *ctx) * @param sctx the service context returned from the start function */ void -LEGACY_SERVICE_stop (struct LEGACY_SERVICE_Context *sctx) +LEGACY_SERVICE_stop(struct LEGACY_SERVICE_Context *sctx) { unsigned int i; @@ -1705,43 +1710,43 @@ LEGACY_SERVICE_stop (struct LEGACY_SERVICE_Context *sctx) { char *counter; - if ((GNUNET_YES == GNUNET_CONFIGURATION_have_value (sctx->cfg, - sctx->service_name, - "GAUGER_HEAP")) && - (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (sctx->cfg, - sctx->service_name, - "GAUGER_HEAP", - &counter))) - { - struct mallinfo mi; + if ((GNUNET_YES == GNUNET_CONFIGURATION_have_value(sctx->cfg, + sctx->service_name, + "GAUGER_HEAP")) && + (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string(sctx->cfg, + sctx->service_name, + "GAUGER_HEAP", + &counter))) + { + struct mallinfo mi; - mi = mallinfo (); - GAUGER (sctx->service_name, counter, mi.usmblks, "blocks"); - GNUNET_free (counter); - } + mi = mallinfo(); + GAUGER(sctx->service_name, counter, mi.usmblks, "blocks"); + GNUNET_free(counter); + } } #endif if (NULL != sctx->shutdown_task) - { - GNUNET_SCHEDULER_cancel (sctx->shutdown_task); - sctx->shutdown_task = NULL; - } + { + GNUNET_SCHEDULER_cancel(sctx->shutdown_task); + sctx->shutdown_task = NULL; + } if (NULL != sctx->server) - GNUNET_SERVER_destroy (sctx->server); - GNUNET_free_non_null (sctx->my_handlers); + GNUNET_SERVER_destroy(sctx->server); + GNUNET_free_non_null(sctx->my_handlers); if (NULL != sctx->addrs) - { - i = 0; - while (NULL != sctx->addrs[i]) - GNUNET_free (sctx->addrs[i++]); - GNUNET_free (sctx->addrs); - } - GNUNET_free_non_null (sctx->addrlens); - GNUNET_free_non_null (sctx->v4_denied); - GNUNET_free_non_null (sctx->v6_denied); - GNUNET_free_non_null (sctx->v4_allowed); - GNUNET_free_non_null (sctx->v6_allowed); - GNUNET_free (sctx); + { + i = 0; + while (NULL != sctx->addrs[i]) + GNUNET_free(sctx->addrs[i++]); + GNUNET_free(sctx->addrs); + } + GNUNET_free_non_null(sctx->addrlens); + GNUNET_free_non_null(sctx->v4_denied); + GNUNET_free_non_null(sctx->v6_denied); + GNUNET_free_non_null(sctx->v4_allowed); + GNUNET_free_non_null(sctx->v6_allowed); + GNUNET_free(sctx); } -- cgit v1.2.3