From e2f7e83d25a5f0966938163c18b1fd8c399393b1 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 3 Nov 2005 23:36:25 +0000 Subject: * allow the user to specify a static browse domain list in the configuration file * remove "drop-root" configuration variable * move the configuration variable "add-service-cookie" from [server] to [publish] * reorder AVAHI_DOMAIN_BROWSER_xx defs git-svn-id: file:///home/lennart/svn/public/avahi/trunk@926 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-daemon/avahi-daemon.conf | 3 ++- avahi-daemon/ini-file-parser.c | 12 ++++++++++-- avahi-daemon/main.c | 27 ++++++++++++++++++++++----- 3 files changed, 34 insertions(+), 8 deletions(-) (limited to 'avahi-daemon') diff --git a/avahi-daemon/avahi-daemon.conf b/avahi-daemon/avahi-daemon.conf index b812d37..ce6b0a2 100644 --- a/avahi-daemon/avahi-daemon.conf +++ b/avahi-daemon/avahi-daemon.conf @@ -1,18 +1,19 @@ [server] #host-name=foo #domain-name=local +browse-domains=0pointer.de, zeroconf.org, dns-sd.org use-ipv4=yes use-ipv6=no check-response-ttl=no use-iff-running=no enable-dbus=yes -add-service-cookie=yes disallow-other-stacks=no [wide-area] enable-wide-area=yes [publish] +add-service-cookie=yes publish-addresses=yes publish-hinfo=yes publish-workstation=yes diff --git a/avahi-daemon/ini-file-parser.c b/avahi-daemon/ini-file-parser.c index 03a3f8b..135876e 100644 --- a/avahi-daemon/ini-file-parser.c +++ b/avahi-daemon/ini-file-parser.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -155,9 +156,16 @@ char** avahi_split_csv(const char *t) { i = r = avahi_new(char*, n_comma+2); for (;;) { - size_t l = strcspn(t, ","); + size_t n, l = strcspn(t, ","); + const char *c; - *(i++) = avahi_strndup(t, l); + /* Ignore leading blanks */ + for (c = t, n = l; isblank(*c); c++, n--); + + /* Ignore trailing blanks */ + for (; n > 0 && isblank(c[n-1]); n--); + + *(i++) = avahi_strndup(c, n); t += l; diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c index 45c4f59..a903e63 100644 --- a/avahi-daemon/main.c +++ b/avahi-daemon/main.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -457,6 +458,24 @@ static int load_config_file(DaemonConfig *c) { } else if (strcasecmp(p->key, "domain-name") == 0) { avahi_free(c->server_config.domain_name); c->server_config.domain_name = avahi_strdup(p->value); + } else if (strcasecmp(p->key, "browse-domains") == 0) { + char **e, **t; + + e = avahi_split_csv(p->value); + + for (t = e; *t; t++) { + char cleaned[AVAHI_DOMAIN_NAME_MAX]; + + if (!avahi_normalize_name(*t, cleaned, sizeof(cleaned))) { + avahi_log_error("Invalid domain name \"%s\" for key \"%s\" in group \"%s\"\n", *t, p->key, g->name); + avahi_strfreev(e); + goto finish; + } + + c->server_config.browse_domains = avahi_string_list_add(c->server_config.browse_domains, cleaned); + } + + avahi_strfreev(e); } else if (strcasecmp(p->key, "use-ipv4") == 0) c->server_config.use_ipv4 = is_yes(p->value); else if (strcasecmp(p->key, "use-ipv6") == 0) @@ -481,10 +500,6 @@ static int load_config_file(DaemonConfig *c) { } } #endif - else if (strcasecmp(p->key, "drop-root") == 0) - c->drop_root = is_yes(p->value); - else if (strcasecmp(p->key, "add-service-cookie") == 0) - c->server_config.add_service_cookie = is_yes(p->value); else { avahi_log_error("Invalid configuration key \"%s\" in group \"%s\"\n", p->key, g->name); goto finish; @@ -506,9 +521,11 @@ static int load_config_file(DaemonConfig *c) { c->server_config.publish_domain = is_yes(p->value); else if (strcasecmp(p->key, "publish-resolv-conf-dns-servers") == 0) c->publish_resolv_conf = is_yes(p->value); + else if (strcasecmp(p->key, "add-service-cookie") == 0) + c->server_config.add_service_cookie = is_yes(p->value); else if (strcasecmp(p->key, "publish-dns-servers") == 0) { avahi_strfreev(c->publish_dns_servers); - c->publish_dns_servers = avahi_split_csv(p->value); + c->publish_dns_servers = avahi_split_csv(p->value); } else { avahi_log_error("Invalid configuration key \"%s\" in group \"%s\"\n", p->key, g->name); goto finish; -- cgit v1.2.1