summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--udev/test-udev.c2
-rw-r--r--udev/udev-event.c33
-rw-r--r--udev/udev-rules.c33
-rw-r--r--udev/udev.h2
-rw-r--r--udev/udevd.c2
5 files changed, 36 insertions, 36 deletions
diff --git a/udev/test-udev.c b/udev/test-udev.c
index d304a1cc15..1cc83c4a69 100644
--- a/udev/test-udev.c
+++ b/udev/test-udev.c
@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
alarm(udev_device_get_event_timeout(dev));
if (err == 0 && !event->ignore_device && udev_get_run(udev))
- udev_rules_run(event);
+ udev_event_execute_run(event);
udev_event_unref(event);
udev_device_unref(dev);
diff --git a/udev/udev-event.c b/udev/udev-event.c
index fe4dcec4e1..b7c3ff142a 100644
--- a/udev/udev-event.c
+++ b/udev/udev-event.c
@@ -282,3 +282,36 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
exit:
return err;
}
+
+int udev_event_execute_run(struct udev_event *event)
+{
+ struct udev_list_entry *list_entry;
+ int err = 0;
+
+ dbg(event->udev, "executing run list\n");
+ udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) {
+ const char *cmd = udev_list_entry_get_name(list_entry);
+
+ if (strncmp(cmd, "socket:", strlen("socket:")) == 0) {
+ struct udev_monitor *monitor;
+
+ monitor = udev_monitor_new_from_socket(event->udev, &cmd[strlen("socket:")]);
+ if (monitor == NULL)
+ continue;
+ udev_monitor_send_device(monitor, event->dev);
+ udev_monitor_unref(monitor);
+ } else {
+ char program[UTIL_PATH_SIZE];
+ char **envp;
+
+ util_strlcpy(program, cmd, sizeof(program));
+ udev_rules_apply_format(event, program, sizeof(program));
+ envp = udev_device_get_properties_envp(event->dev);
+ if (run_program(event->udev, program, envp, NULL, 0, NULL) != 0) {
+ if (!udev_list_entry_get_flag(list_entry))
+ err = -1;
+ }
+ }
+ }
+ return err;
+}
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
index 62624bbc85..978581fb50 100644
--- a/udev/udev-rules.c
+++ b/udev/udev-rules.c
@@ -374,39 +374,6 @@ static int import_parent_into_env(struct udev_device *dev, const char *filter)
return 0;
}
-int udev_rules_run(struct udev_event *event)
-{
- struct udev_list_entry *list_entry;
- int err = 0;
-
- dbg(event->udev, "executing run list\n");
- udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) {
- const char *cmd = udev_list_entry_get_name(list_entry);
-
- if (strncmp(cmd, "socket:", strlen("socket:")) == 0) {
- struct udev_monitor *monitor;
-
- monitor = udev_monitor_new_from_socket(event->udev, &cmd[strlen("socket:")]);
- if (monitor == NULL)
- continue;
- udev_monitor_send_device(monitor, event->dev);
- udev_monitor_unref(monitor);
- } else {
- char program[UTIL_PATH_SIZE];
- char **envp;
-
- util_strlcpy(program, cmd, sizeof(program));
- udev_rules_apply_format(event, program, sizeof(program));
- envp = udev_device_get_properties_envp(event->dev);
- if (run_program(event->udev, program, envp, NULL, 0, NULL) != 0) {
- if (!udev_list_entry_get_flag(list_entry))
- err = -1;
- }
- }
- }
- return err;
-}
-
#define WAIT_LOOP_PER_SECOND 50
static int wait_for_file(struct udev_event *event, const char *file, int timeout)
{
diff --git a/udev/udev.h b/udev/udev.h
index d0ffb6cb31..c8425f768f 100644
--- a/udev/udev.h
+++ b/udev/udev.h
@@ -90,13 +90,13 @@ struct udev_rules;
extern struct udev_event *udev_event_new(struct udev_device *dev);
extern void udev_event_unref(struct udev_event *event);
extern int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules);
+extern int udev_event_execute_run(struct udev_event *event);
/* udev-rules.c */
extern struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names);
extern void udev_rules_unref(struct udev_rules *rules);
extern int udev_rules_get_name(struct udev_rules *rules, struct udev_event *event);
extern int udev_rules_get_run(struct udev_rules *rules, struct udev_event *event);
-extern int udev_rules_run(struct udev_event *event);
extern void udev_rules_apply_format(struct udev_event *event, char *string, size_t maxsize);
/* udev-node.c */
diff --git a/udev/udevd.c b/udev/udevd.c
index 111f120006..f812940364 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -220,7 +220,7 @@ static void event_fork(struct udev_event *event)
/* execute RUN= */
if (err == 0 && !event->ignore_device && udev_get_run(event->udev))
- udev_rules_run(event);
+ udev_event_execute_run(event);
info(event->udev, "seq %llu exit with %i\n", udev_device_get_seqnum(event->dev), err);
logging_close();
if (err != 0)