chiark / gitweb /
bus: add convenience functions for constructing and sending method calls/signals...
[elogind.git] / src / libsystemd-bus / bus-message.c
index c7cc32ec15db8cb10f6bb0f7d55ba23b28ac75ee..7acab50979336b4e464dc9f0b403bac6a221af05 100644 (file)
@@ -302,6 +302,7 @@ int bus_message_from_malloc(
         m->n_iovec = 1;
         m->iovec[0].iov_base = buffer;
         m->iovec[0].iov_len = length;
+        m->size = length;
 
         r = message_parse_fields(m);
         if (r < 0)
@@ -1240,7 +1241,7 @@ int sd_bus_message_close_container(sd_bus_message *m) {
         return 0;
 }
 
-static int message_append_ap(
+int bus_message_append_ap(
                 sd_bus_message *m,
                 const char *types,
                 va_list ap) {
@@ -1326,7 +1327,7 @@ static int message_append_ap(
 
                                 n = va_arg(ap, unsigned);
                                 for (i = 0; i < n; i++) {
-                                        r = message_append_ap(m, s, ap);
+                                        r = bus_message_append_ap(m, s, ap);
                                         if (r < 0)
                                                 return r;
                                 }
@@ -1348,7 +1349,7 @@ static int message_append_ap(
                         if (r < 0)
                                 return r;
 
-                        r = message_append_ap(m, s, ap);
+                        r = bus_message_append_ap(m, s, ap);
                         if (r < 0)
                                 return r;
 
@@ -1376,7 +1377,7 @@ static int message_append_ap(
 
                                 t += k - 1;
 
-                                r = message_append_ap(m, s, ap);
+                                r = bus_message_append_ap(m, s, ap);
                                 if (r < 0)
                                         return r;
 
@@ -1406,10 +1407,10 @@ int sd_bus_message_append(sd_bus_message *m, const char *types, ...) {
         if (m->sealed)
                 return -EPERM;
         if (!types)
-                return -EINVAL;
+                return 0;
 
         va_start(ap, types);
-        r = message_append_ap(m, types, ap);
+        r = bus_message_append_ap(m, types, ap);
         va_end(ap);
 
         return r;