diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-06-28 20:39:05 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-06-28 20:40:02 +0200 |
commit | f529a1851a257d9586310f8c8190b2dcd69087a0 (patch) | |
tree | c49f63a662552aacf39bcb7e5f485ab704ded3f9 | |
parent | 959f3aa980c6dc4a9d39b311638ca471d7ff310d (diff) |
static-services: unescape host name when using it in static service names
-rw-r--r-- | avahi-daemon/static-services.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c index 588ff8a..4c3491f 100644 --- a/avahi-daemon/static-services.c +++ b/avahi-daemon/static-services.c @@ -42,6 +42,7 @@ #include <avahi-common/malloc.h> #include <avahi-common/alternative.h> #include <avahi-common/error.h> +#include <avahi-common/domain.h> #include <avahi-core/log.h> #include <avahi-core/publish.h> @@ -231,9 +232,15 @@ static void add_static_service_group_to_server(StaticServiceGroup *g) { avahi_free(g->chosen_name); - if (g->replace_wildcards) - g->chosen_name = replacestr(g->name, "%h", avahi_server_get_host_name(avahi_server)); - else + if (g->replace_wildcards) { + char label[AVAHI_LABEL_MAX]; + const char *p; + + p = avahi_server_get_host_name(avahi_server); + avahi_unescape_label(&p, label, sizeof(label)); + + g->chosen_name = replacestr(g->name, "%h", label); + } else g->chosen_name = avahi_strdup(g->name); } |