chiark / gitweb /
udev: fix gcc warnings showing up after adding $(AM_CFLAGS)
[elogind.git] / src / udev / udev-event.c
index 703581a8b351382bdbf3c113ad9073748648a599..debda61eed653ec7d561720a742fcf535a6361ae 100644 (file)
@@ -86,8 +86,8 @@ size_t udev_event_apply_format(struct udev_event *event, const char *src, char *
                 SUBST_SYS,
         };
         static const struct subst_map {
-                char *name;
-                char fmt;
+                const char *name;
+                const char fmt;
                 enum subst_type type;
         } map[] = {
                 { .name = "devnode",        .fmt = 'N',        .type = SUBST_DEVNODE },
@@ -386,7 +386,6 @@ static int spawn_exec(struct udev_event *event,
                       const char *cmd, char *const argv[], char **envp, const sigset_t *sigmask,
                       int fd_stdout, int fd_stderr)
 {
-        struct udev *udev = event->udev;
         int err;
         int fd;
 
@@ -433,7 +432,6 @@ static void spawn_read(struct udev_event *event,
                       int fd_stdout, int fd_stderr,
                       char *result, size_t ressize)
 {
-        struct udev *udev = event->udev;
         size_t respos = 0;
         int fd_ep = -1;
         struct epoll_event ep_outpipe, ep_errpipe;
@@ -553,7 +551,6 @@ out:
 
 static int spawn_wait(struct udev_event *event, const char *cmd, pid_t pid)
 {
-        struct udev *udev = event->udev;
         struct pollfd pfd[1];
         int err = 0;
 
@@ -939,26 +936,22 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
                 udev_device_unref(event->dev_db);
                 event->dev_db = NULL;
         }
-out:
         return err;
 }
 
-int udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
+void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
 {
         struct udev_list_entry *list_entry;
-        int err = 0;
 
         udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) {
                 const char *cmd = udev_list_entry_get_name(list_entry);
+                enum udev_builtin_cmd builtin_cmd = udev_list_entry_get_num(list_entry);
 
-                if (strncmp(cmd, "socket:", strlen("socket:")) == 0) {
-                        struct udev_monitor *monitor;
+                if (builtin_cmd < UDEV_BUILTIN_MAX) {
+                        char command[UTIL_PATH_SIZE];
 
-                        monitor = udev_monitor_new_from_socket(event->udev, &cmd[strlen("socket:")]);
-                        if (monitor == NULL)
-                                continue;
-                        udev_monitor_send_device(monitor, NULL, event->dev);
-                        udev_monitor_unref(monitor);
+                        udev_event_apply_format(event, cmd, command, sizeof(command));
+                        udev_builtin_run(event->dev, builtin_cmd, command, false);
                 } else {
                         char program[UTIL_PATH_SIZE];
                         char **envp;
@@ -970,11 +963,7 @@ int udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
 
                         udev_event_apply_format(event, cmd, program, sizeof(program));
                         envp = udev_device_get_properties_envp(event->dev);
-                        if (udev_event_spawn(event, program, envp, sigmask, NULL, 0) < 0) {
-                                if (udev_list_entry_get_num(list_entry))
-                                        err = -1;
-                        }
+                        udev_event_spawn(event, program, envp, sigmask, NULL, 0);
                 }
         }
-        return err;
 }