]> git.meshlink.io Git - catta/blobdiff - avahi-daemon/static-services.c
fix avahi_netlink_new to allow multiple netlinks per process
[catta] / avahi-daemon / static-services.c
index 0c160f2d564f7efbdcd33e972e0336a6d3d383b0..4c3491f025fdf7b9436328f632ca48753144e22d 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /***
   This file is part of avahi.
 
@@ -44,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>
 
@@ -233,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);
 
     }