summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKay Sievers <kay@vrfy.org>2014-11-13 13:50:01 +0100
committerKay Sievers <kay@vrfy.org>2014-11-13 13:50:01 +0100
commit41b848b0ea674dba135d5d5f82b87d126d967fcf (patch)
treeefae88229c6d8a0b7a0f7350bd9035e7876001ed
parent25e773eeb4f853804e1bf0dbd9a184f23e9b2a97 (diff)
downloadsystemd-41b848b0ea674dba135d5d5f82b87d126d967fcf.tar.gz
udev: move global property handling from libudev to udevd
-rw-r--r--src/libudev/libudev-device.c7
-rw-r--r--src/libudev/libudev-private.h5
-rw-r--r--src/libudev/libudev.c20
-rw-r--r--src/test/test-udev.c4
-rw-r--r--src/udev/udev-builtin-kmod.c2
-rw-r--r--src/udev/udev.h5
-rw-r--r--src/udev/udevadm.c6
-rw-r--r--src/udev/udevd.c14
8 files changed, 8 insertions, 55 deletions
diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
index 506798f22e..37e75d280f 100644
--- a/src/libudev/libudev-device.c
+++ b/src/libudev/libudev-device.c
@@ -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;
}
diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h
index 2bad13997f..64f132f91d 100644
--- a/src/libudev/libudev-private.h
+++ b/src/libudev/libudev-private.h
@@ -34,12 +34,7 @@
#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);
diff --git a/src/libudev/libudev.c b/src/libudev/libudev.c
index 64fe7c42fd..c237db5e96 100644
--- a/src/libudev/libudev.c
+++ b/src/libudev/libudev.c
@@ -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);
-}
diff --git a/src/test/test-udev.c b/src/test/test-udev.c
index 8a51473419..7c011f81f7 100644
--- a/src/test/test-udev.c
+++ b/src/test/test-udev.c
@@ -35,10 +35,6 @@
#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;
diff --git a/src/udev/udev-builtin-kmod.c b/src/udev/udev-builtin-kmod.c
index 454ee2edff..66807b381b 100644
--- a/src/udev/udev-builtin-kmod.c
+++ b/src/udev/udev-builtin-kmod.c
@@ -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) {
diff --git a/src/udev/udev.h b/src/udev/udev.h
index 765ba9e86d..7668a27ae8 100644
--- a/src/udev/udev.h
+++ b/src/udev/udev.h
@@ -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;
diff --git a/src/udev/udevadm.c b/src/udev/udevadm.c
index daa9387bf1..d9bd69742c 100644
--- a/src/udev/udevadm.c
+++ b/src/udev/udevadm.c
@@ -26,12 +26,6 @@
#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;
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index e03297de5b..6335b6c75a 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();