chiark / gitweb /
udev: move global property handling from libudev to udevd
authorKay Sievers <kay@vrfy.org>
Thu, 13 Nov 2014 12:50:01 +0000 (13:50 +0100)
committerKay Sievers <kay@vrfy.org>
Thu, 13 Nov 2014 12:50:01 +0000 (13:50 +0100)
src/libudev/libudev-device.c
src/libudev/libudev-private.h
src/libudev/libudev.c
src/test/test-udev.c
src/udev/udev-builtin-kmod.c
src/udev/udev.h
src/udev/udevadm.c
src/udev/udevd.c

index 506798f22e14c7f7029d6d2f1a590f6d5105daaa..37e75d280fa6ed440610036916e0c14b6b1a101d 100644 (file)
@@ -642,7 +642,6 @@ void udev_device_set_info_loaded(struct udev_device *device)
 struct udev_device *udev_device_new(struct udev *udev)
 {
         struct udev_device *udev_device;
-        struct udev_list_entry *list_entry;
 
         if (udev == NULL) {
                 errno = EINVAL;
@@ -662,11 +661,7 @@ struct udev_device *udev_device_new(struct udev *udev)
         udev_list_init(udev, &udev_device->sysattr_list, false);
         udev_list_init(udev, &udev_device->tags_list, true);
         udev_device->watch_handle = -1;
-        /* copy global properties */
-        udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
-                udev_device_add_property(udev_device,
-                                         udev_list_entry_get_name(list_entry),
-                                         udev_list_entry_get_value(list_entry));
+
         return udev_device;
 }
 
index 2bad13997faca62f3b21482be24dcedf099c3538..64f132f91dc00c0063423d8e9f55a778c7e8faf9 100644 (file)
 #define WRITE_END 1
 
 /* libudev.c */
-void udev_log(struct udev *udev,
-              int priority, const char *file, int line, const char *fn,
-              const char *format, ...) _printf_(6, 7);
 int udev_get_rules_path(struct udev *udev, char **path[], usec_t *ts_usec[]);
-struct udev_list_entry *udev_add_property(struct udev *udev, const char *key, const char *value);
-struct udev_list_entry *udev_get_properties_list_entry(struct udev *udev);
 
 /* libudev-device.c */
 struct udev_device *udev_device_new(struct udev *udev);
index 64fe7c42fd1f317ac4430aac514f5d88f1f70388..c237db5e9652a802c90edeff56fd4a6341a84b8e 100644 (file)
@@ -50,7 +50,6 @@ struct udev {
                        int priority, const char *file, int line, const char *fn,
                        const char *format, va_list args);
         void *userdata;
-        struct udev_list properties_list;
 };
 
 /**
@@ -100,7 +99,6 @@ _public_ struct udev *udev_new(void) {
         if (udev == NULL)
                 return NULL;
         udev->refcount = 1;
-        udev_list_init(udev, &udev->properties_list, true);
 
         f = fopen("/etc/udev/udev.conf", "re");
         if (f != NULL) {
@@ -211,7 +209,6 @@ _public_ struct udev *udev_unref(struct udev *udev) {
         udev->refcount--;
         if (udev->refcount > 0)
                 return udev;
-        udev_list_cleanup(&udev->properties_list);
         free(udev);
         return NULL;
 }
@@ -253,20 +250,3 @@ _public_ int udev_get_log_priority(struct udev *udev) {
 _public_ void udev_set_log_priority(struct udev *udev, int priority) {
         log_set_max_level(priority);
 }
-
-struct udev_list_entry *udev_add_property(struct udev *udev, const char *key, const char *value) {
-        if (value == NULL) {
-                struct udev_list_entry *list_entry;
-
-                list_entry = udev_get_properties_list_entry(udev);
-                list_entry = udev_list_entry_get_by_name(list_entry, key);
-                if (list_entry != NULL)
-                        udev_list_entry_delete(list_entry);
-                return NULL;
-        }
-        return udev_list_entry_add(&udev->properties_list, key, value);
-}
-
-struct udev_list_entry *udev_get_properties_list_entry(struct udev *udev) {
-        return udev_list_get_entry(&udev->properties_list);
-}
index 8a51473419da1989341118364cb5d23f7f5fe846..7c011f81f774142162207ab6936c7f5ca05c9ce4 100644 (file)
 #include "udev.h"
 #include "udev-util.h"
 
-void udev_main_log(struct udev *udev, int priority,
-                   const char *file, int line, const char *fn,
-                   const char *format, va_list args) {}
-
 static int fake_filesystems(void) {
         static const struct fakefs {
                 const char *src;
index 454ee2edff4e9266cc52c2a9ca0d0a9b513baefd..66807b381bd857520c4607508c99552e00668acc 100644 (file)
@@ -66,7 +66,7 @@ static int load_module(struct udev *udev, const char *alias) {
 _printf_(6,0)
 static void udev_kmod_log(void *data, int priority, const char *file, int line,
                           const char *fn, const char *format, va_list args) {
-        udev_main_log(data, priority, file, line, fn, format, args);
+        log_metav(priority, file, line, fn, format, args);
 }
 
 static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool test) {
index 765ba9e86d6a5c3502d5c2d4eb6e8850bfe3b5aa..7668a27ae8a71f374e9b220575bf12a1ce8a8e99 100644 (file)
@@ -197,11 +197,6 @@ int udev_builtin_add_property(struct udev_device *dev, bool test, const char *ke
 int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *prefix, const char *modalias,
                              const char *filter, bool test);
 
-/* udev logging */
-void udev_main_log(struct udev *udev, int priority,
-                   const char *file, int line, const char *fn,
-                   const char *format, va_list args) _printf_(6, 0);
-
 /* udevadm commands */
 struct udevadm_cmd {
         const char *name;
index daa9387bf17c9be75da4844928db30a44512ea14..d9bd69742c1bd2a0024a413499330f99054b3371 100644 (file)
 
 #include "udev.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 int adm_version(struct udev *udev, int argc, char *argv[]) {
         printf("%s\n", VERSION);
         return 0;
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();