summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2006-03-17 12:28:37 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2006-03-17 12:28:37 +0000
commite73e377dd5d15a6c31c04e977517a909cad7b5b1 (patch)
treefffc1bce2c3e67c5e6e2e0f35e5fce6dd0fdd32c
parentb155147d7095ee71ac3872f11d42227483d9ecce (diff)
proposed patch to close Ticket #20
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1179 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r--avahi-daemon/static-services.c17
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);