[systemd-commits] src/libsystemd-bus src/libudev

Kay Sievers kay at kemper.freedesktop.org
Wed Dec 18 12:18:45 PST 2013


 src/libsystemd-bus/bus-kernel.c |    6 +++---
 src/libsystemd-bus/kdbus.h      |   11 +++++------
 src/libudev/libudev-monitor.c   |    8 ++++++++
 3 files changed, 16 insertions(+), 9 deletions(-)

New commits:
commit ec76ec1fde7da753676b18ff45926740fcd08072
Author: Kay Sievers <kay at vrfy.org>
Date:   Wed Dec 18 21:16:35 2013 +0100

    bus: catch up with kdbus changes

diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c
index 7d51461..369eac4 100644
--- a/src/libsystemd-bus/bus-kernel.c
+++ b/src/libsystemd-bus/bus-kernel.c
@@ -636,7 +636,7 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
 
                 case KDBUS_ITEM_PAYLOAD_OFF:
                         if (!h) {
-                                h = (struct bus_header *)((uint8_t *)bus->kdbus_buffer + d->vec.offset);
+                                h = (struct bus_header *)((uint8_t *)k + d->vec.offset);
 
                                 if (!bus_header_is_complete(h, d->vec.size))
                                         return -EBADMSG;
@@ -721,11 +721,11 @@ static int bus_kernel_make_message(sd_bus *bus, struct kdbus_msg *k) {
 
                                 if (idx >= begin_body) {
                                         if (!part->is_zero)
-                                                part->data = (uint8_t *)bus->kdbus_buffer + d->vec.offset;
+                                                part->data = (uint8_t *)k + d->vec.offset;
                                         part->size = d->vec.size;
                                 } else {
                                         if (!part->is_zero)
-                                                part->data = (uint8_t *)bus->kdbus_buffer + d->vec.offset + (begin_body - idx);
+                                                part->data = (uint8_t *)k + d->vec.offset + (begin_body - idx);
                                         part->size = d->vec.size - (begin_body - idx);
                                 }
 
diff --git a/src/libsystemd-bus/kdbus.h b/src/libsystemd-bus/kdbus.h
index f570c0d..4896c38 100644
--- a/src/libsystemd-bus/kdbus.h
+++ b/src/libsystemd-bus/kdbus.h
@@ -45,10 +45,8 @@ struct kdbus_notify_id_change {
 
 /**
  * struct kdbus_notify_name_change - name registry change message
- * @old_id:		Former owner of a name
- * @new_id:		New owner of a name
- * @old_flags:		flags from KDBUS_NAME_* the name entry used to have
- * @new_flags:		flags from KDBUS_NAME_* the name entry has now
+ * @old:		ID and flags of former owner of a name
+ * @new:		ID and flags of new owner of a name
  * @name:		Well-known name
  *
  * Sent from kernel to userspace when the owner or activator of
@@ -119,7 +117,8 @@ struct kdbus_timestamp {
  * struct kdbus_vec - I/O vector for kdbus payload items
  * @size:		The size of the vector
  * @address:		Memory address for memory addresses
- * @offset:		Offset in the in-message payload memory
+ * @offset:		Offset in the in-message payload memory,
+ * 			relative to the message head
  *
  * Attached to:
  *   KDBUS_ITEM_PAYLOAD_VEC
@@ -195,7 +194,7 @@ struct kdbus_policy {
 /**
  * enum kdbus_item_type - item types to chain data in a list
  * @KDBUS_ITEM_PAYLOAD_VEC:	Vector to data
- * @KDBUS_ITEM_PAYLOAD_OFF:	Data at returned offset in the pool
+ * @KDBUS_ITEM_PAYLOAD_OFF:	Data at returned offset to message head
  * @KDBUS_ITEM_PAYLOAD_MEMFD:	Data as sealed memfd
  * @KDBUS_ITEM_FDS:		Attached file descriptors
  * @KDBUS_ITEM_BLOOM:		For broadcasts, carries bloom filter
diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c
index a6dba89..e07e462 100644
--- a/src/libudev/libudev-monitor.c
+++ b/src/libudev/libudev-monitor.c
@@ -122,6 +122,14 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c
         else
                 return NULL;
 
+        /*
+         * We do not support subscribing to uevents if no instance of udev
+         * is running. Uevents would otherwise broadcast the processing data
+         * of the host into containers, which is not acceptable. Containers
+         * will currently just not get any uevents.
+         */
+        
+
         udev_monitor = udev_monitor_new(udev);
         if (udev_monitor == NULL)
                 return NULL;



More information about the systemd-commits mailing list