chiark / gitweb /
udev: move global property handling from libudev to udevd
[elogind.git] / src / udev / udevd.c
index e03297de5baa7dcf499eaa6c01183d42465b324f..6335b6c75af4ffd0ed569f96a033ca5f54ae5b03 100644 (file)
 #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();