sd-bus: publicize sd_bus_message_readv()
authorViolet Halo <hal0@tuta.io>
Fri, 15 Jun 2018 08:18:07 +0000 (01:18 -0700)
committerLennart Poettering <lennart@poettering.net>
Fri, 29 Jun 2018 09:45:40 +0000 (11:45 +0200)
The D-Bus library supplies a va_list variant of
`sd_bus_message_append()` called `sd_bus_message_appendv()`,
but failed to provide a va_list variant of its opposite,
`sd_bus_message_read()`. This commit publicizes a previously static
function as `sd_bus_message_readv()`.

src/libsystemd/libsystemd.sym
src/libsystemd/sd-bus/bus-message.c
src/systemd/sd-bus.h

index 1eec17d..969a86a 100644 (file)
@@ -570,3 +570,7 @@ global:
         sd_event_source_set_destroy_callback;
         sd_event_source_get_destroy_callback;
 } LIBSYSTEMD_238;
+
+LIBSYSTEMD_240 {
+        sd_bus_message_readv;
+} LIBSYSTEMD_239;
index 6331a5e..c402f18 100644 (file)
@@ -4315,7 +4315,7 @@ _public_ int sd_bus_message_rewind(sd_bus_message *m, int complete) {
         return !isempty(c->signature);
 }
 
-static int message_read_ap(
+_public_ int sd_bus_message_readv(
                 sd_bus_message *m,
                 const char *types,
                 va_list ap) {
@@ -4326,7 +4326,9 @@ static int message_read_ap(
         unsigned n_loop = 0;
         int r;
 
-        assert(m);
+        assert_return(m, -EINVAL);
+        assert_return(m->sealed, -EPERM);
+        assert_return(types, -EINVAL);
 
         if (isempty(types))
                 return 0;
@@ -4522,7 +4524,7 @@ _public_ int sd_bus_message_read(sd_bus_message *m, const char *types, ...) {
         assert_return(types, -EINVAL);
 
         va_start(ap, types);
-        r = message_read_ap(m, types, ap);
+        r = sd_bus_message_readv(m, types, ap);
         va_end(ap);
 
         return r;
index 3ede01a..ce12b7f 100644 (file)
@@ -305,6 +305,7 @@ int sd_bus_message_close_container(sd_bus_message *m);
 int sd_bus_message_copy(sd_bus_message *m, sd_bus_message *source, int all);
 
 int sd_bus_message_read(sd_bus_message *m, const char *types, ...);
+int sd_bus_message_readv(sd_bus_message *m, const char *types, va_list ap);
 int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p);
 int sd_bus_message_read_array(sd_bus_message *m, char type, const void **ptr, size_t *size);
 int sd_bus_message_read_strv(sd_bus_message *m, char ***l); /* free the result! */