summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-02-13 18:27:05 +0100
committerSven Eden <yamakuzure@gmx.net>2018-05-30 07:59:08 +0200
commit1a07732212ebf11d6f517efb3721dfc00aef6fe0 (patch)
treee2a3819a42e044f514061761821a459bf189f9ce /src
parentd177b5ffe6a5a5273d8e075dca1716cc926839c4 (diff)
sd-bus: add APIs to query the current read and write queue size
Diffstat (limited to 'src')
-rw-r--r--src/libelogind/libelogind.sym6
-rw-r--r--src/libelogind/sd-bus/sd-bus.c20
2 files changed, 26 insertions, 0 deletions
diff --git a/src/libelogind/libelogind.sym b/src/libelogind/libelogind.sym
index 107f5d14b..8343864bf 100644
--- a/src/libelogind/libelogind.sym
+++ b/src/libelogind/libelogind.sym
@@ -555,3 +555,9 @@ global:
sd_event_source_get_io_fd_own;
sd_event_source_set_io_fd_own;
} LIBSYSTEMD_236;
+
+LIBSYSTEMD_238 {
+global:
+ sd_bus_get_n_queued_read;
+ sd_bus_get_n_queued_write;
+} LIBSYSTEMD_237;
diff --git a/src/libelogind/sd-bus/sd-bus.c b/src/libelogind/sd-bus/sd-bus.c
index 157f0ed25..c42af08dd 100644
--- a/src/libelogind/sd-bus/sd-bus.c
+++ b/src/libelogind/sd-bus/sd-bus.c
@@ -4119,3 +4119,23 @@ _public_ int sd_bus_get_sender(sd_bus *bus, const char **ret) {
*ret = bus->patch_sender;
return 0;
}
+
+_public_ int sd_bus_get_n_queued_read(sd_bus *bus, uint64_t *ret) {
+ assert_return(bus, -EINVAL);
+ assert_return(bus = bus_resolve(bus), -ENOPKG);
+ assert_return(!bus_pid_changed(bus), -ECHILD);
+ assert_return(ret, -EINVAL);
+
+ *ret = bus->rqueue_size;
+ return 0;
+}
+
+_public_ int sd_bus_get_n_queued_write(sd_bus *bus, uint64_t *ret) {
+ assert_return(bus, -EINVAL);
+ assert_return(bus = bus_resolve(bus), -ENOPKG);
+ assert_return(!bus_pid_changed(bus), -ECHILD);
+ assert_return(ret, -EINVAL);
+
+ *ret = bus->wqueue_size;
+ return 0;
+}