udev-event: make udev_event_new() take sd_netlink and take a reference of that

This commit is contained in:
Yu Watanabe
2018-11-07 13:35:03 +09:00
parent 0f86dc900e
commit e0bb2ff94b
5 changed files with 7 additions and 9 deletions
+1 -1
View File
@@ -82,7 +82,7 @@ int main(int argc, char *argv[]) {
goto out;
}
assert_se(event = udev_event_new(dev, 0));
assert_se(event = udev_event_new(dev, 0, NULL));
assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGTERM, SIGINT, SIGHUP, SIGCHLD, -1) >= 0);
+2 -1
View File
@@ -42,7 +42,7 @@ typedef struct Spawn {
size_t result_len;
} Spawn;
struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay) {
struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay, sd_netlink *rtnl) {
struct udev_event *event;
assert(dev);
@@ -55,6 +55,7 @@ struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay) {
.dev = dev,
.birth_usec = now(CLOCK_MONOTONIC),
.exec_delay = exec_delay,
.rtnl = sd_netlink_ref(rtnl),
};
return event;
+1 -1
View File
@@ -60,7 +60,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
int udev_rules_apply_static_dev_perms(struct udev_rules *rules);
/* udev-event.c */
struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay);
struct udev_event *udev_event_new(struct udev_device *dev, int exec_delay, sd_netlink *rtnl);
struct udev_event *udev_event_free(struct udev_event *event);
ssize_t udev_event_apply_format(struct udev_event *event,
const char *src, char *dest, size_t size,
+1 -1
View File
@@ -128,7 +128,7 @@ int test_main(int argc, char *argv[], void *userdata) {
/* don't read info from the db */
udev_device_set_info_loaded(dev);
event = udev_event_new(dev, 0);
event = udev_event_new(dev, 0, NULL);
sigfillset(&mask);
sigprocmask(SIG_SETMASK, &mask, &sigmask_orig);
+2 -5
View File
@@ -409,7 +409,7 @@ static void worker_spawn(Manager *manager, struct event *event) {
assert(dev);
log_debug("seq %llu running", udev_device_get_seqnum(dev));
udev_event = udev_event_new(dev, arg_exec_delay);
udev_event = udev_event_new(dev, arg_exec_delay, rtnl);
if (!udev_event) {
r = -ENOMEM;
goto out;
@@ -440,9 +440,6 @@ static void worker_spawn(Manager *manager, struct event *event) {
}
}
/* needed for renaming netifs */
udev_event->rtnl = rtnl;
/* apply rules, create node, symlinks */
udev_event_execute_rules(udev_event,
arg_event_timeout_usec, arg_event_timeout_warn_usec,
@@ -452,7 +449,7 @@ static void worker_spawn(Manager *manager, struct event *event) {
udev_event_execute_run(udev_event,
arg_event_timeout_usec, arg_event_timeout_warn_usec);
if (udev_event->rtnl)
if (!rtnl)
/* in case rtnl was initialized */
rtnl = sd_netlink_ref(udev_event->rtnl);