From 8022212b3b8e553fd83b87575f3e730e56852d5d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 14 Nov 2014 13:05:01 +0100 Subject: [PATCH] sd-bus: add sd_bus_message_is_empty() for checking whether a message carries any body --- src/libsystemd/libsystemd.sym.m4 | 1 + src/libsystemd/sd-bus/bus-message.c | 6 ++++++ src/systemd/sd-bus.h | 1 + 3 files changed, 8 insertions(+) diff --git a/src/libsystemd/libsystemd.sym.m4 b/src/libsystemd/libsystemd.sym.m4 index 0c02db7..7632942 100644 --- a/src/libsystemd/libsystemd.sym.m4 +++ b/src/libsystemd/libsystemd.sym.m4 @@ -254,6 +254,7 @@ global: sd_bus_message_get_realtime_usec; sd_bus_message_get_seqnum; sd_bus_message_get_creds; + sd_bus_message_is_empty; sd_bus_message_is_signal; sd_bus_message_is_method_call; sd_bus_message_is_method_error; diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c index 1a8c445..9d6647b 100644 --- a/src/libsystemd/sd-bus/bus-message.c +++ b/src/libsystemd/sd-bus/bus-message.c @@ -5380,6 +5380,12 @@ _public_ const char* sd_bus_message_get_signature(sd_bus_message *m, int complet return strempty(c->signature); } +_public_ int sd_bus_message_is_empty(sd_bus_message *m) { + assert_return(m, -EINVAL); + + return isempty(m->root_container.signature); +} + _public_ int sd_bus_message_copy(sd_bus_message *m, sd_bus_message *source, int all) { bool done_something = false; int r; diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h index 49d4907..58a8980 100644 --- a/src/systemd/sd-bus.h +++ b/src/systemd/sd-bus.h @@ -222,6 +222,7 @@ sd_bus_creds *sd_bus_message_get_creds(sd_bus_message *m); /* do not unref the r int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, const char *member); int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, const char *member); int sd_bus_message_is_method_error(sd_bus_message *m, const char *name); +int sd_bus_message_is_empty(sd_bus_message *m); int sd_bus_message_set_expect_reply(sd_bus_message *m, int b); int sd_bus_message_set_auto_start(sd_bus_message *m, int b); -- 2.7.4