chiark / gitweb /
udevd: add timestamp to --debug output
[elogind.git] / libudev / libudev-util-private.c
index f22c04184bce280557537fcff8af673a7337023d..f7daa9460beabeca74c08a80c548f1b5b129365a 100644 (file)
@@ -20,6 +20,7 @@
 #include <pwd.h>
 #include <grp.h>
 #include <sys/wait.h>
+#include <sys/param.h>
 
 #include "libudev.h"
 #include "libudev-private.h"
@@ -248,6 +249,8 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
        int i;
        int err = 0;
 
+       info(udev, "'%s' started\n", command);
+
        /* build argv from command */
        util_strscpy(arg, sizeof(arg), command);
        i = 0;
@@ -272,7 +275,6 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
                argv[0] = arg;
                argv[1] = NULL;
        }
-       info(udev, "'%s'\n", command);
 
        /* prepare pipes from child to parent */
        if (result != NULL || udev_get_log_priority(udev) >= LOG_INFO) {
@@ -290,7 +292,7 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
 
        /* allow programs in /lib/udev/ to be called without the path */
        if (argv[0][0] != '/') {
-               util_strscpyl(program, sizeof(program), UDEV_PREFIX "/lib/udev/", argv[0], NULL);
+               util_strscpyl(program, sizeof(program), LIBEXECDIR "/", argv[0], NULL);
                argv[0] = program;
        }
 
@@ -356,7 +358,7 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
                                        FD_SET(outpipe[READ_END], &readfds);
                                if (errpipe[READ_END] > 0)
                                        FD_SET(errpipe[READ_END], &readfds);
-                               fdcount = select(UDEV_MAX(outpipe[READ_END], errpipe[READ_END])+1, &readfds, NULL, NULL, NULL);
+                               fdcount = select(MAX(outpipe[READ_END], errpipe[READ_END])+1, &readfds, NULL, NULL, NULL);
                                if (fdcount < 0) {
                                        if (errno == EINTR)
                                                continue;
@@ -434,11 +436,11 @@ int util_run_program(struct udev *udev, const char *command, char **envp,
                }
                waitpid(pid, &status, 0);
                if (WIFEXITED(status)) {
-                       info(udev, "'%s' returned with status %i\n", argv[0], WEXITSTATUS(status));
+                       info(udev, "'%s' returned with exitcode %i\n", command, WEXITSTATUS(status));
                        if (WEXITSTATUS(status) != 0)
                                err = -1;
                } else {
-                       err(udev, "'%s' abnormal exit\n", command);
+                       err(udev, "'%s' unexpected exit with status 0x%04x\n", command, status);
                        err = -1;
                }
        }