X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudevd.c;h=6335b6c75af4ffd0ed569f96a033ca5f54ae5b03;hb=41b848b0ea674dba135d5d5f82b87d126d967fcf;hp=e03297de5baa7dcf499eaa6c01183d42465b324f;hpb=25e773eeb4f853804e1bf0dbd9a184f23e9b2a97;p=elogind.git diff --git a/src/udev/udevd.c b/src/udev/udevd.c index e03297de5..6335b6c75 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -54,12 +54,6 @@ #include "dev-setup.h" #include "fileio.h" -void udev_main_log(struct udev *udev, int priority, - const char *file, int line, const char *fn, - const char *format, va_list args) { - log_metav(priority, file, line, fn, format, args); -} - static struct udev_rules *rules; static struct udev_ctrl *udev_ctrl; static struct udev_monitor *monitor; @@ -82,6 +76,7 @@ static UDEV_LIST(event_list); static UDEV_LIST(worker_list); static char *udev_cgroup; static bool udev_exit; +static struct udev_list properties_list; enum event_state { EVENT_UNDEF, @@ -676,10 +671,10 @@ static struct udev_ctrl_connection *handle_ctrl_msg(struct udev_ctrl *uctrl) { val = &val[1]; if (val[0] == '\0') { log_debug("udevd message (ENV) received, unset '%s'", key); - udev_add_property(udev, key, NULL); + udev_list_entry_add(&properties_list, key, NULL); } else { log_debug("udevd message (ENV) received, set '%s=%s'", key, val); - udev_add_property(udev, key, val); + udev_list_entry_add(&properties_list, key, val); } } else { log_error("wrong key format '%s'", key); @@ -1147,6 +1142,8 @@ int main(int argc, char *argv[]) { umask(022); + udev_list_init(udev, &properties_list, true); + r = mkdir("/run/udev", 0755); if (r < 0 && errno != EEXIST) { log_error("could not create /run/udev: %m"); @@ -1535,6 +1532,7 @@ exit_daemonize: udev_monitor_unref(monitor); udev_ctrl_connection_unref(ctrl_conn); udev_ctrl_unref(udev_ctrl); + udev_list_cleanup(&properties_list); mac_selinux_finish(); udev_unref(udev); log_close();