chiark / gitweb /
update Gentoo rules
[elogind.git] / extras / run_directory / run_directory.c
index 770d8d84a11b707da612221b578a7d2a943771a8..c715ca6bd337dcd7fe6032e794bcc1e5d7ac8131 100644 (file)
 #include <sys/wait.h>
 #include <sys/stat.h>
 
-#include "../../udev_utils.h"
-#include "../../list.h"
-#include "../../logging.h"
+#include "../../udev.h"
 #include "run_directory.h"
 
-static int run_program(const char *filename, const char *subsystem)
+static int exec_program(const char *filename, const char *subsystem)
 {
        pid_t pid;
 
@@ -53,13 +51,20 @@ static int run_program(const char *filename, const char *subsystem)
 int run_directory(const char *dir, const char *suffix, const char *subsystem)
 {
        struct name_entry *name_loop, *name_tmp;
+       struct stat buf;
        LIST_HEAD(name_list);
 
        dbg("looking at '%s'", dir);
+
+       if (stat(dir, &buf) != 0) {
+               dbg("directory '%s' not found", dir);
+               return 0;
+       }
+
        add_matching_files(&name_list, dir, suffix);
 
        list_for_each_entry_safe(name_loop, name_tmp, &name_list, node) {
-               run_program(name_loop->name, subsystem);
+               exec_program(name_loop->name, subsystem);
                list_del(&name_loop->node);
        }