summaryrefslogtreecommitdiffstats
path: root/avahi-daemon
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-06-28 20:39:05 +0200
committerLennart Poettering <lennart@poettering.net>2010-06-28 20:40:02 +0200
commitf529a1851a257d9586310f8c8190b2dcd69087a0 (patch)
treec49f63a662552aacf39bcb7e5f485ab704ded3f9 /avahi-daemon
parent959f3aa980c6dc4a9d39b311638ca471d7ff310d (diff)
static-services: unescape host name when using it in static service names
Diffstat (limited to 'avahi-daemon')
-rw-r--r--avahi-daemon/static-services.c13
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);
}