diff options
author | Sebastien Estienne <sebastien.estienne@gmail.com> | 2006-03-17 12:28:37 +0000 |
---|---|---|
committer | Sebastien Estienne <sebastien.estienne@gmail.com> | 2006-03-17 12:28:37 +0000 |
commit | e73e377dd5d15a6c31c04e977517a909cad7b5b1 (patch) | |
tree | fffc1bce2c3e67c5e6e2e0f35e5fce6dd0fdd32c /avahi-daemon/static-services.c | |
parent | b155147d7095ee71ac3872f11d42227483d9ecce (diff) |
proposed patch to close Ticket #20
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1179 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-daemon/static-services.c')
-rw-r--r-- | avahi-daemon/static-services.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/avahi-daemon/static-services.c b/avahi-daemon/static-services.c index a750c2f..1a58cc4 100644 --- a/avahi-daemon/static-services.c +++ b/avahi-daemon/static-services.c @@ -655,6 +655,7 @@ static void load_file(char *n) { void static_service_load(int in_chroot) { StaticServiceGroup *g, *n; glob_t globbuf; + int globret; char **p; for (g = groups; g; g = n) { @@ -681,8 +682,20 @@ void static_service_load(int in_chroot) { } memset(&globbuf, 0, sizeof(globbuf)); - if (glob(in_chroot ? "/services/*.service" : AVAHI_SERVICE_DIR "/*.service", GLOB_ERR, NULL, &globbuf) != 0) - avahi_log_error("Failed to read service directory."); + if ((globret = glob(in_chroot ? "/services/*.service" : AVAHI_SERVICE_DIR "/*.service", GLOB_ERR, NULL, &globbuf)) != 0) + switch (globret) { + case GLOB_NOSPACE: + avahi_log_error("Not enough memory to read service directory."); + break; + + case GLOB_ABORTED: + avahi_log_error("Failed to read %s.", AVAHI_SERVICE_DIR); + break; + + case GLOB_NOMATCH: + avahi_log_error("No service found in %s.", AVAHI_SERVICE_DIR); + break; + } else { for (p = globbuf.gl_pathv; *p; p++) load_file(*p); |