X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=avahi-daemon%2Fsimple-protocol.c;h=04b07c77fbff083a45183ac7b11fd5348d26dea2;hb=f16fb5b323ef49cec531a817a66c88503c32fc46;hp=6c6f125974b32d79bbb1233e515503776bf47ccb;hpb=263515cd1d7b52ce2ad3dc55a93b9d6f730133f1;p=catta diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c index 6c6f125..04b07c7 100644 --- a/avahi-daemon/simple-protocol.c +++ b/avahi-daemon/simple-protocol.c @@ -25,12 +25,14 @@ #include #include +#include #include #include #include #include #include #include +#include #include #include @@ -43,6 +45,17 @@ #include "simple-protocol.h" #include "main.h" +#ifdef ENABLE_CHROOT +#include "chroot.h" +#endif + +#ifndef AF_LOCAL +#define AF_LOCAL AF_UNIX +#endif +#ifndef PF_LOCAL +#define PF_LOCAL PF_UNIX +#endif + #define BUFFER_SIZE (20*1024) #define CLIENTS_MAX 50 @@ -167,13 +180,13 @@ static void client_output_printf(Client *c, const char *format, ...) { } static void host_name_resolver_callback( - AvahiSHostNameResolver *r, + AVAHI_GCC_UNUSED AvahiSHostNameResolver *r, AvahiIfIndex iface, AvahiProtocol protocol, AvahiResolverEvent event, const char *hostname, const AvahiAddress *a, - AvahiLookupResultFlags flags, + AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void* userdata) { Client *c = userdata; @@ -192,13 +205,13 @@ static void host_name_resolver_callback( } static void address_resolver_callback( - AvahiSAddressResolver *r, + AVAHI_GCC_UNUSED AvahiSAddressResolver *r, AvahiIfIndex iface, AvahiProtocol protocol, AvahiResolverEvent event, - const AvahiAddress *a, + AVAHI_GCC_UNUSED const AvahiAddress *a, const char *hostname, - AvahiLookupResultFlags flags, + AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void* userdata) { Client *c = userdata; @@ -214,14 +227,14 @@ static void address_resolver_callback( } static void dns_server_browser_callback( - AvahiSDNSServerBrowser *b, + AVAHI_GCC_UNUSED AvahiSDNSServerBrowser *b, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, - const char *host_name, + AVAHI_GCC_UNUSED const char *host_name, const AvahiAddress *a, uint16_t port, - AvahiLookupResultFlags flags, + AVAHI_GCC_UNUSED AvahiLookupResultFlags flags, void* userdata) { Client *c = userdata; @@ -319,7 +332,7 @@ static void handle_line(Client *c, const char *s) { goto fail; client_output_printf(c, "+ Browsing ...\n"); - avahi_log_debug(__FILE__": Got %s request for '%s'.", cmd, arg); + avahi_log_debug(__FILE__": Got %s request.", cmd); } else if (strcmp(cmd, "BROWSE-DNS-SERVERS-IPV6") == 0 && n_args == 1) { c->state = CLIENT_BROWSE_DNS_SERVERS; @@ -327,7 +340,7 @@ static void handle_line(Client *c, const char *s) { goto fail; client_output_printf(c, "+ Browsing ...\n"); - avahi_log_debug(__FILE__": Got %s request for '%s'.", cmd, arg); + avahi_log_debug(__FILE__": Got %s request.", cmd); } else if (strcmp(cmd, "BROWSE-DNS-SERVERS") == 0 && n_args == 1) { c->state = CLIENT_BROWSE_DNS_SERVERS; @@ -335,7 +348,7 @@ static void handle_line(Client *c, const char *s) { goto fail; client_output_printf(c, "+ Browsing ...\n"); - avahi_log_debug(__FILE__": Got %s request for '%s'.", cmd, arg); + avahi_log_debug(__FILE__": Got %s request.", cmd); } else { client_output_printf(c, "%+i Invalid command \"%s\", try \"HELP\".\n", AVAHI_ERR_INVALID_OPERATION, cmd); @@ -370,7 +383,7 @@ static void handle_input(Client *c) { } } -static void client_work(AvahiWatch *watch, int fd, AvahiWatchEvent events, void *userdata) { +static void client_work(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AvahiWatchEvent events, void *userdata) { Client *c = userdata; assert(c); @@ -418,7 +431,7 @@ static void client_work(AvahiWatch *watch, int fd, AvahiWatchEvent events, void (c->inbuf_length < sizeof(c->inbuf) ? AVAHI_WATCH_IN : 0)); } -static void server_work(AvahiWatch *watch, int fd, AvahiWatchEvent events, void *userdata) { +static void server_work(AVAHI_GCC_UNUSED AvahiWatch *watch, int fd, AvahiWatchEvent events, void *userdata) { Server *s = userdata; assert(s); @@ -465,7 +478,7 @@ int simple_protocol_setup(const AvahiPoll *poll_api) { unlink(AVAHI_SOCKET); - if (bind(server->fd, &sa, sizeof(sa)) < 0) { + if (bind(server->fd, (struct sockaddr*) &sa, sizeof(sa)) < 0) { avahi_log_warn("bind(): %s", strerror(errno)); goto fail; } @@ -496,7 +509,11 @@ void simple_protocol_shutdown(void) { if (server) { if (server->bind_successful) +#ifdef ENABLE_CHROOT + avahi_chroot_helper_unlink(AVAHI_SOCKET); +#else unlink(AVAHI_SOCKET); +#endif while (server->clients) client_free(server->clients);