chiark / gitweb /
bus: when we cannot bus activate a service because we go down, drop one
[elogind.git] / src / libsystemd / sd-bus / bus-kernel.c
index a33e7a323c358fe5cde59830143ab27bba91c14a..b46cada6489d8f93253b68355452d18dcb1033f2 100644 (file)
@@ -1476,3 +1476,16 @@ int bus_kernel_try_close(sd_bus *bus) {
 
         return 0;
 }
+
+int bus_kernel_drop_one(int fd) {
+        struct kdbus_cmd_recv recv = {
+                .flags = KDBUS_RECV_DROP
+        };
+
+        assert(fd >= 0);
+
+        if (ioctl(fd, KDBUS_CMD_MSG_RECV, &recv) < 0)
+                return -errno;
+
+        return 0;
+}