chiark / gitweb /
sd-bus: export sd_bus_error_set_errnofv()
[elogind.git] / src / libsystemd / sd-bus / bus-message.c
index 23076d25ddb3360b4a6848485633f79bed77a05c..da14a28c9adeaf188eb67e25633b96e5d94a89ce 100644 (file)
@@ -129,14 +129,8 @@ static void message_free(sd_bus_message *m) {
 
         message_reset_parts(m);
 
-        if (m->release_kdbus) {
-                struct kdbus_cmd_free cmd_free = { };
-
-                cmd_free.size = sizeof(cmd_free);
-                cmd_free.flags = 0;
-                cmd_free.offset = (uint8_t *)m->kdbus - (uint8_t *)m->bus->kdbus_buffer;
-                (void) ioctl(m->bus->input_fd, KDBUS_CMD_FREE, &cmd_free);
-        }
+        if (m->release_kdbus)
+                bus_kernel_cmd_free(m->bus, (uint8_t *) m->kdbus - (uint8_t *) m->bus->kdbus_buffer);
 
         if (m->free_kdbus)
                 free(m->kdbus);
@@ -748,7 +742,7 @@ _public_ int sd_bus_message_new_method_errnof(
         va_list ap;
 
         va_start(ap, format);
-        bus_error_set_errnofv(&berror, error, format, ap);
+        sd_bus_error_set_errnofv(&berror, error, format, ap);
         va_end(ap);
 
         return sd_bus_message_new_method_error(call, m, &berror);
@@ -2350,8 +2344,7 @@ int bus_message_append_ap(
                 }
 
                 case SD_BUS_TYPE_INT64:
-                case SD_BUS_TYPE_UINT64:
-                case SD_BUS_TYPE_DOUBLE: {
+                case SD_BUS_TYPE_UINT64: {
                         uint64_t x;
 
                         x = va_arg(ap, uint64_t);
@@ -2359,6 +2352,14 @@ int bus_message_append_ap(
                         break;
                 }
 
+                case SD_BUS_TYPE_DOUBLE: {
+                        double x;
+
+                        x = va_arg(ap, double);
+                        r = sd_bus_message_append_basic(m, *t, &x);
+                        break;
+                }
+
                 case SD_BUS_TYPE_STRING:
                 case SD_BUS_TYPE_OBJECT_PATH:
                 case SD_BUS_TYPE_SIGNATURE: {