#include "main.h"
#include "simple-protocol.h"
#include "static-services.h"
+#include "static-hosts.h"
#include "ini-file-parser.h"
#ifdef HAVE_DBUS
AvahiServer *avahi_server = NULL;
AvahiSimplePoll *simple_poll_api = NULL;
static char *argv0 = NULL;
+int nss_support = 0;
typedef enum {
DAEMON_RUN,
avahi_set_proc_title("%s: running [%s]", argv0, avahi_server_get_host_name_fqdn(s));
static_service_add_to_server();
+ static_hosts_add_to_server();
remove_dns_server_entry_groups();
char *n;
static_service_remove_from_server();
+ static_hosts_remove_from_server();
remove_dns_server_entry_groups();
avahi_log_info("Got SIGHUP, reloading.");
#ifdef ENABLE_CHROOT
static_service_load(config.use_chroot);
+ static_hosts_load(config.use_chroot);
#else
static_service_load(0);
+ static_hosts_load(0);
#endif
static_service_add_to_server();
+ static_service_remove_from_server();
if (resolv_conf_entry_group)
avahi_s_entry_group_reset(resolv_conf_entry_group);
}
}
+/* Imported from ../avahi-client/nss-check.c */
+int avahi_nss_support(void);
static int run_server(DaemonConfig *c) {
int r = -1;
assert(c);
+ if (!(nss_support = avahi_nss_support()))
+ avahi_log_warn("WARNING: No NSS support for mDNS detected, consider installing nss-mdns!");
+
if (!(simple_poll_api = avahi_simple_poll_new())) {
avahi_log_error("Failed to create main loop object.");
goto finish;
load_resolv_conf();
#ifdef ENABLE_CHROOT
static_service_load(config.use_chroot);
+ static_hosts_load(config.use_chroot);
#else
static_service_load(0);
+ static_hosts_load(0);
#endif
if (!(avahi_server = avahi_server_new(poll_api, &c->server_config, server_callback, c, &error))) {
static_service_remove_from_server();
static_service_free_all();
+
+ static_hosts_remove_from_server();
+ static_hosts_free_all();
+
remove_dns_server_entry_groups();
simple_protocol_shutdown();