X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-daemon%2Fstatic-services.c;h=e402a9853de94b07c70118e340b5d25554718282;hb=9f55e3e3af8c4b8913d19475f3e9e9be8c6f76ae;hp=d4198c44ca9fdccd5357112cde8eb7b2c7590d91;hpb=c08b2340a6a4a2f176672d692a41a75153c35f0e;p=catta diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c index d4198c4..e402a98 100644 --- a/avahi-daemon/static-services.c +++ b/avahi-daemon/static-services.c @@ -35,6 +35,8 @@ #include #include +#include +#include #include #include "main.h" @@ -199,14 +201,15 @@ static void add_static_service_group_to_server(StaticServiceGroup *g) { /* This service group is already registered in the server */ return; - if (g->chosen_name) - avahi_free(g->chosen_name); - - if (g->replace_wildcards) - g->chosen_name = replacestr(g->name, "%h", avahi_server_get_host_name(avahi_server)); - else - g->chosen_name = avahi_strdup(g->name); + if (!g->chosen_name) { + + if (g->replace_wildcards) + g->chosen_name = replacestr(g->name, "%h", avahi_server_get_host_name(avahi_server)); + else + g->chosen_name = avahi_strdup(g->name); + } + if (!g->entry_group) g->entry_group = avahi_s_entry_group_new(avahi_server, entry_group_callback, g); @@ -395,7 +398,7 @@ static void XMLCALL xml_end(void *data, const char *el) { int protocol; assert(u->service); - if (u->buf & &strcasecmp (u->buf, "ipv4") == 0) { + if (u->buf && strcasecmp (u->buf, "ipv4") == 0) { protocol = AVAHI_PROTO_INET; } else if (u->buf && strcasecmp (u->buf, "ipv6") == 0) { protocol = AVAHI_PROTO_INET6;