[systemd-commits] 3 commits - Makefile.am src/bus-driverd src/libsystemd src/timedate

Kay Sievers kay at kemper.freedesktop.org
Thu Apr 10 12:29:00 PDT 2014


 Makefile.am                         |    2 
 src/bus-driverd/bus-driverd.c       |    6 -
 src/libsystemd/sd-bus/bus-control.c |    2 
 src/libsystemd/sd-bus/kdbus.h       |  123 ++++++++++++++++++++----------------
 src/timedate/timedate-sntp.c        |   10 ++
 5 files changed, 81 insertions(+), 62 deletions(-)

New commits:
commit 862bbf89c6e3db0a3ec265310eb6a92e0f1c375d
Author: Kay Sievers <kay at vrfy.org>
Date:   Thu Apr 10 13:27:23 2014 -0700

    bus: catch up with kdbus changes (ABI break)

diff --git a/src/bus-driverd/bus-driverd.c b/src/bus-driverd/bus-driverd.c
index 3284d62..4756c48 100644
--- a/src/bus-driverd/bus-driverd.c
+++ b/src/bus-driverd/bus-driverd.c
@@ -375,7 +375,7 @@ static int get_creds_by_name(sd_bus *bus, const char *name, uint64_t mask, sd_bu
         assert_return(service_name_is_valid(name), -EINVAL);
 
         r = sd_bus_get_owner(bus, name, mask, &c);
-        if (r == -ENOENT || r == -ENXIO)
+        if (r == -ESRCH || r == -ENXIO)
                 return sd_bus_error_setf(error, SD_BUS_ERROR_NAME_HAS_NO_OWNER, "Name %s is currently not owned by anyone.", name);
         if (r < 0)
                 return r;
@@ -585,7 +585,7 @@ static int driver_name_has_owner(sd_bus *bus, sd_bus_message *m, void *userdata,
         assert_return(service_name_is_valid(name), -EINVAL);
 
         r = sd_bus_get_owner(bus, name, 0, NULL);
-        if (r < 0 && r != -ENOENT && r != -ENXIO)
+        if (r < 0 && r != -ESRCH && r != -ENXIO)
                 return r;
 
         return sd_bus_reply_method_return(m, "b", r >= 0);
@@ -694,7 +694,7 @@ static int driver_start_service_by_name(sd_bus *bus, sd_bus_message *m, void *us
         r = sd_bus_get_owner(bus, name, 0, NULL);
         if (r >= 0)
                 return sd_bus_reply_method_return(m, "u", BUS_START_REPLY_ALREADY_RUNNING);
-        if (r != -ENOENT)
+        if (r != -ESRCH)
                 return r;
 
         u = strappenda(name, ".busname");
diff --git a/src/libsystemd/sd-bus/bus-control.c b/src/libsystemd/sd-bus/bus-control.c
index bd392a2..8eb0232 100644
--- a/src/libsystemd/sd-bus/bus-control.c
+++ b/src/libsystemd/sd-bus/bus-control.c
@@ -395,7 +395,7 @@ static int bus_get_owner_kdbus(
 
         /* Non-activated names are considered not available */
         if (conn_info->flags & KDBUS_HELLO_ACTIVATOR)
-                return name[0] == ':' ? -ENXIO : -ENOENT;
+                return name[0] == ':' ? -ENXIO : -ESRCH;
 
         c = bus_creds_new();
         if (!c)

commit dec51b29f9c7bd63b3c0555b486d163fb94981c9
Author: Kay Sievers <kay at vrfy.org>
Date:   Thu Apr 10 13:02:35 2014 -0700

    bus: update kdbus.h

diff --git a/Makefile.am b/Makefile.am
index 683f3f0..5d84605 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5052,7 +5052,7 @@ hwdb-update:
 
 .PHONY: kdbus-update
 kdbus-update:
-	( cd $(top_srcdir)/src/libsystemd/ && \
+	( cd $(top_srcdir)/src/libsystemd/sd-bus/ && \
 	wget -N https://d-bus.googlecode.com/git/kdbus.h )
 
 .PHONY: git-tag
diff --git a/src/libsystemd/sd-bus/kdbus.h b/src/libsystemd/sd-bus/kdbus.h
index 6bb6777..174a1c3 100644
--- a/src/libsystemd/sd-bus/kdbus.h
+++ b/src/libsystemd/sd-bus/kdbus.h
@@ -23,7 +23,7 @@
 #include <linux/types.h>
 #endif
 
-#define KDBUS_IOC_MAGIC			0x95
+#define KDBUS_IOCTL_MAGIC		0x95
 #define KDBUS_SRC_ID_KERNEL		(0)
 #define KDBUS_DST_ID_NAME		(0)
 #define KDBUS_MATCH_ID_ANY		(~0ULL)
@@ -343,15 +343,15 @@ struct kdbus_item {
  *					respective reply carries the cookie
  *					in cookie_reply
  * @KDBUS_MSG_FLAGS_SYNC_REPLY:		Wait for destination connection to
- * 					reply to this message. The
- * 					KDBUS_CMD_MSG_SEND ioctl() will block
- * 					until the reply is received, and
- * 					offset_reply in struct kdbus_msg will
- * 					yield the offset in the sender's pool
- * 					where the reply can be found.
- * 					This flag is only valid if
- * 					@KDBUS_MSG_FLAGS_EXPECT_REPLY is set as
- * 					well.
+ *					reply to this message. The
+ *					KDBUS_CMD_MSG_SEND ioctl() will block
+ *					until the reply is received, and
+ *					offset_reply in struct kdbus_msg will
+ *					yield the offset in the sender's pool
+ *					where the reply can be found.
+ *					This flag is only valid if
+ *					@KDBUS_MSG_FLAGS_EXPECT_REPLY is set as
+ *					well.
  * @KDBUS_MSG_FLAGS_NO_AUTO_START:	Do not start a service, if the addressed
  *					name is not currently active
  */
@@ -388,7 +388,7 @@ enum kdbus_payload_type {
  * @cookie_reply:	A reply to the requesting message with the same
  *			cookie. The requesting connection can match its
  *			request and the reply with this value
- * @offset_reply:	If KDBUS_MSG_FLAGS_WAIT_FOR_REPLY, this field will
+ * @offset_reply:	If KDBUS_MSG_FLAGS_EXPECT_REPLY, this field will
  *			contain the offset in the sender's pool where the
  *			reply is stored.
  * @items:		A list of kdbus_items containing the message payload
@@ -419,8 +419,8 @@ struct kdbus_msg {
  * @KDBUS_RECV_DROP:		Drop and free the next queued message and all
  *				its resources without actually receiving it.
  * @KDBUS_RECV_USE_PRIORITY:	Only de-queue messages with the specified or
- * 				higher priority (lowest values); if not set,
- * 				the priority value is ignored.
+ *				higher priority (lowest values); if not set,
+ *				the priority value is ignored.
  */
 enum kdbus_recv_flags {
 	KDBUS_RECV_PEEK		= 1 <<  0,
@@ -434,8 +434,8 @@ enum kdbus_recv_flags {
  * @priority:		Minimum priority of the messages to de-queue. Lowest
  *			values have the highest priority.
  * @offset:		Returned offset in the pool where the message is
- * 			stored. The user must use KDBUS_CMD_FREE to free
- * 			the allocated memory.
+ *			stored. The user must use KDBUS_CMD_FREE to free
+ *			the allocated memory.
  *
  * This struct is used with the KDBUS_CMD_MSG_RECV ioctl.
  */
@@ -507,6 +507,7 @@ enum kdbus_hello_flags {
  * @KDBUS_ATTACH_SECLABEL:	The security label
  * @KDBUS_ATTACH_AUDIT:		The audit IDs
  * @KDBUS_ATTACH_CONN_NAME:	The human-readable connection name
+ * @_KDBUS_ATTACH_ALL:		All of the above
  */
 enum kdbus_attach_flags {
 	KDBUS_ATTACH_TIMESTAMP		=  1 <<  0,
@@ -756,7 +757,7 @@ struct kdbus_cmd_memfd_make {
  *				name. The bus is immediately shut down and
  *				cleaned up when the opened "control" device node
  *				is closed.
- * @KDBUS_CMD_DOMAIN_MAKE:		Similar to KDBUS_CMD_BUS_MAKE, but it creates a
+ * @KDBUS_CMD_DOMAIN_MAKE:	Similar to KDBUS_CMD_BUS_MAKE, but it creates a
  *				new kdbus domain.
  * @KDBUS_CMD_EP_MAKE:		Creates a new named special endpoint to talk to
  *				the bus. Such endpoints usually carry a more
@@ -775,8 +776,8 @@ struct kdbus_cmd_memfd_make {
  * @KDBUS_CMD_MSG_RECV:		Receive a message from the kernel which is
  *				placed in the receiver's pool.
  * @KDBUS_CMD_MSG_CANCEL:	Cancel a pending request of a message that
- * 				blocks while waiting for a reply. The parameter
- * 				denotes the cookie of the message in flight.
+ *				blocks while waiting for a reply. The parameter
+ *				denotes the cookie of the message in flight.
  * @KDBUS_CMD_FREE:		Release the allocated memory in the receiver's
  *				pool.
  * @KDBUS_CMD_NAME_ACQUIRE:	Request a well-known bus name to associate with
@@ -792,13 +793,13 @@ struct kdbus_cmd_memfd_make {
  *				necessarily represent the connected process or
  *				the actual state of the process.
  * @KDBUS_CMD_CONN_UPDATE:	Update the properties of a connection. Used to
- *				update the metadata subscription.
+ *				update the metadata subscription mask and
+ *				policy.
+ * @KDBUS_CMD_EP_UPDATE:	Update the properties of a custom enpoint. Used
+ *				to update the policy.
  * @KDBUS_CMD_MATCH_ADD:	Install a match which broadcast messages should
  *				be delivered to the connection.
  * @KDBUS_CMD_MATCH_REMOVE:	Remove a current match for broadcast messages.
- * @KDBUS_CMD_EP_POLICY_SET:	Set the policy of an endpoint. It is used to
- *				restrict the access for endpoints created with
- *				KDBUS_CMD_EP_MAKE.
  * @KDBUS_CMD_MEMFD_NEW:	Return a new file descriptor which provides an
  *				anonymous shared memory file and which can be
  *				used to pass around larger chunks of data.
@@ -827,35 +828,50 @@ struct kdbus_cmd_memfd_make {
  *				be changed as long as the file is shared.
  */
 enum kdbus_ioctl_type {
-	KDBUS_CMD_BUS_MAKE =		_IOW (KDBUS_IOC_MAGIC, 0x00, struct kdbus_cmd_make),
-	KDBUS_CMD_DOMAIN_MAKE =		_IOW (KDBUS_IOC_MAGIC, 0x10, struct kdbus_cmd_make),
-	KDBUS_CMD_EP_MAKE =		_IOW (KDBUS_IOC_MAGIC, 0x20, struct kdbus_cmd_make),
-
-	KDBUS_CMD_HELLO =		_IOWR(KDBUS_IOC_MAGIC, 0x30, struct kdbus_cmd_hello),
-	KDBUS_CMD_BYEBYE =		_IO  (KDBUS_IOC_MAGIC, 0x31),
-
-	KDBUS_CMD_MSG_SEND =		_IOWR(KDBUS_IOC_MAGIC, 0x40, struct kdbus_msg),
-	KDBUS_CMD_MSG_RECV =		_IOWR(KDBUS_IOC_MAGIC, 0x41, struct kdbus_cmd_recv),
-	KDBUS_CMD_MSG_CANCEL =		_IOW (KDBUS_IOC_MAGIC, 0x42, __u64 *),
-	KDBUS_CMD_FREE =		_IOW (KDBUS_IOC_MAGIC, 0x43, __u64 *),
-
-	KDBUS_CMD_NAME_ACQUIRE =	_IOWR(KDBUS_IOC_MAGIC, 0x50, struct kdbus_cmd_name),
-	KDBUS_CMD_NAME_RELEASE =	_IOW (KDBUS_IOC_MAGIC, 0x51, struct kdbus_cmd_name),
-	KDBUS_CMD_NAME_LIST =		_IOWR(KDBUS_IOC_MAGIC, 0x52, struct kdbus_cmd_name_list),
-
-	KDBUS_CMD_CONN_INFO =		_IOWR(KDBUS_IOC_MAGIC, 0x60, struct kdbus_cmd_conn_info),
-	KDBUS_CMD_CONN_UPDATE =		_IOW (KDBUS_IOC_MAGIC, 0x61, struct kdbus_cmd_update),
-
-	KDBUS_CMD_EP_UPDATE =		_IOW (KDBUS_IOC_MAGIC, 0x71, struct kdbus_cmd_update),
-
-	KDBUS_CMD_MATCH_ADD =		_IOW (KDBUS_IOC_MAGIC, 0x80, struct kdbus_cmd_match),
-	KDBUS_CMD_MATCH_REMOVE =	_IOW (KDBUS_IOC_MAGIC, 0x81, struct kdbus_cmd_match),
-
-	KDBUS_CMD_MEMFD_NEW =		_IOWR(KDBUS_IOC_MAGIC, 0xc0, struct kdbus_cmd_memfd_make),
-	KDBUS_CMD_MEMFD_SIZE_GET =	_IOR (KDBUS_IOC_MAGIC, 0xc1, __u64 *),
-	KDBUS_CMD_MEMFD_SIZE_SET =	_IOW (KDBUS_IOC_MAGIC, 0xc2, __u64 *),
-	KDBUS_CMD_MEMFD_SEAL_GET =	_IOR (KDBUS_IOC_MAGIC, 0xc3, int *),
-	KDBUS_CMD_MEMFD_SEAL_SET =	_IO  (KDBUS_IOC_MAGIC, 0xc4),
+	KDBUS_CMD_BUS_MAKE =		_IOW(KDBUS_IOCTL_MAGIC, 0x00,
+					     struct kdbus_cmd_make),
+	KDBUS_CMD_DOMAIN_MAKE =		_IOW(KDBUS_IOCTL_MAGIC, 0x10,
+					     struct kdbus_cmd_make),
+	KDBUS_CMD_EP_MAKE =		_IOW(KDBUS_IOCTL_MAGIC, 0x20,
+					     struct kdbus_cmd_make),
+
+	KDBUS_CMD_HELLO =		_IOWR(KDBUS_IOCTL_MAGIC, 0x30,
+					      struct kdbus_cmd_hello),
+	KDBUS_CMD_BYEBYE =		_IO(KDBUS_IOCTL_MAGIC, 0x31),
+
+	KDBUS_CMD_MSG_SEND =		_IOWR(KDBUS_IOCTL_MAGIC, 0x40,
+					      struct kdbus_msg),
+	KDBUS_CMD_MSG_RECV =		_IOWR(KDBUS_IOCTL_MAGIC, 0x41,
+					      struct kdbus_cmd_recv),
+	KDBUS_CMD_MSG_CANCEL =		_IOW(KDBUS_IOCTL_MAGIC, 0x42, __u64 *),
+	KDBUS_CMD_FREE =		_IOW(KDBUS_IOCTL_MAGIC, 0x43, __u64 *),
+
+	KDBUS_CMD_NAME_ACQUIRE =	_IOWR(KDBUS_IOCTL_MAGIC, 0x50,
+					      struct kdbus_cmd_name),
+	KDBUS_CMD_NAME_RELEASE =	_IOW(KDBUS_IOCTL_MAGIC, 0x51,
+					     struct kdbus_cmd_name),
+	KDBUS_CMD_NAME_LIST =		_IOWR(KDBUS_IOCTL_MAGIC, 0x52,
+					     struct kdbus_cmd_name_list),
+
+	KDBUS_CMD_CONN_INFO =		_IOWR(KDBUS_IOCTL_MAGIC, 0x60,
+					      struct kdbus_cmd_conn_info),
+	KDBUS_CMD_CONN_UPDATE =		_IOW(KDBUS_IOCTL_MAGIC, 0x61,
+					     struct kdbus_cmd_update),
+
+	KDBUS_CMD_EP_UPDATE =		_IOW(KDBUS_IOCTL_MAGIC, 0x71,
+					     struct kdbus_cmd_update),
+
+	KDBUS_CMD_MATCH_ADD =		_IOW(KDBUS_IOCTL_MAGIC, 0x80,
+					     struct kdbus_cmd_match),
+	KDBUS_CMD_MATCH_REMOVE =	_IOW(KDBUS_IOCTL_MAGIC, 0x81,
+					     struct kdbus_cmd_match),
+
+	KDBUS_CMD_MEMFD_NEW =		_IOWR(KDBUS_IOCTL_MAGIC, 0xc0,
+					      struct kdbus_cmd_memfd_make),
+	KDBUS_CMD_MEMFD_SIZE_GET =	_IOR(KDBUS_IOCTL_MAGIC, 0xc1, __u64 *),
+	KDBUS_CMD_MEMFD_SIZE_SET =	_IOW(KDBUS_IOCTL_MAGIC, 0xc2, __u64 *),
+	KDBUS_CMD_MEMFD_SEAL_GET =	_IOR(KDBUS_IOCTL_MAGIC, 0xc3, int *),
+	KDBUS_CMD_MEMFD_SEAL_SET =	_IO(KDBUS_IOCTL_MAGIC, 0xc4),
 };
 
 /*
@@ -906,11 +922,10 @@ enum kdbus_ioctl_type {
  *			size.
  * @ENOBUFS:		There is no space left for the submitted data to fit
  *			into the receiver's pool.
- * @ENOENT:		The name to query information about is currently not on
- *			the bus.
+ * @ENOENT:		The to be canceled message was not found.
  * @ENOMEM:		Out of memory.
  * @ENOMSG:		The queue is not empty, but no message with a matching
- * 			priority is currently queued.
+ *			priority is currently queued.
  * @ENOSYS:		The requested functionality is not available.
  * @ENOTSUPP:		The feature negotiation failed, a not supported feature
  *			was requested, or an unknown item type was received.

commit d8c21348dfe8abd6557366f7982886248544e87a
Author: Kay Sievers <kay at vrfy.org>
Date:   Thu Apr 10 12:58:10 2014 -0700

    timedated: ignore initial delta in history data

diff --git a/src/timedate/timedate-sntp.c b/src/timedate/timedate-sntp.c
index b5d60c6..a85b377 100644
--- a/src/timedate/timedate-sntp.c
+++ b/src/timedate/timedate-sntp.c
@@ -399,6 +399,12 @@ static bool sntp_sample_spike_detection(SNTPContext *sntp, double offset, double
         double jitter;
         double j;
 
+        sntp->packet_count++;
+
+        /* ignore initial sample */
+        if (sntp->packet_count == 1)
+                return false;
+
         /* store the current data in our samples array */
         idx_cur = sntp->samples_idx;
         idx_new = (idx_cur + 1) % ELEMENTSOF(sntp->samples);
@@ -406,10 +412,8 @@ static bool sntp_sample_spike_detection(SNTPContext *sntp, double offset, double
         sntp->samples[idx_new].offset = offset;
         sntp->samples[idx_new].delay = delay;
 
-        sntp->packet_count++;
-        jitter = sntp->samples_jitter;
-
         /* calculate new jitter value from the RMS differences relative to the lowest delay sample */
+        jitter = sntp->samples_jitter;
         for (idx_min = idx_cur, i = 0; i < ELEMENTSOF(sntp->samples); i++)
                 if (sntp->samples[i].delay > 0 && sntp->samples[i].delay < sntp->samples[idx_min].delay)
                         idx_min = i;



More information about the systemd-commits mailing list