X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-daemon%2Fstatic-services.c;h=b9a852cc362b0e685ba8d075c4d46d52c95b8296;hb=41f897e018ee55395441504c0cf3aef584527dd9;hp=1a58cc4138589fefc35bcb23719984f2fbb4b797;hpb=e73e377dd5d15a6c31c04e977517a909cad7b5b1;p=catta diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c index 1a58cc4..b9a852c 100644 --- a/avahi-daemon/static-services.c +++ b/avahi-daemon/static-services.c @@ -222,7 +222,9 @@ static void add_static_service_group_to_server(StaticServiceGroup *g) { /* This service group is already registered in the server */ return; - if (!g->chosen_name) { + if (!g->chosen_name || (g->replace_wildcards && strstr(g->name, "%h"))) { + + avahi_free(g->chosen_name); if (g->replace_wildcards) g->chosen_name = replacestr(g->name, "%h", avahi_server_get_host_name(avahi_server)); @@ -682,20 +684,25 @@ void static_service_load(int in_chroot) { } memset(&globbuf, 0, sizeof(globbuf)); + if ((globret = glob(in_chroot ? "/services/*.service" : AVAHI_SERVICE_DIR "/*.service", GLOB_ERR, NULL, &globbuf)) != 0) + switch (globret) { +#ifdef GLOB_NOSPACE case GLOB_NOSPACE: - avahi_log_error("Not enough memory to read service directory."); + avahi_log_error("Not enough memory to read service directory "AVAHI_SERVICE_DIR"."); break; - - case GLOB_ABORTED: - avahi_log_error("Failed to read %s.", AVAHI_SERVICE_DIR); - break; - +#endif +#ifdef GLOB_NOMATCH case GLOB_NOMATCH: - avahi_log_error("No service found in %s.", AVAHI_SERVICE_DIR); + avahi_log_info("No service file found in "AVAHI_SERVICE_DIR"."); + break; +#endif + default: + avahi_log_error("Failed to read "AVAHI_SERVICE_DIR"."); break; - } + } + else { for (p = globbuf.gl_pathv; *p; p++) load_file(*p);