#include <json-c/json.h>
#include <systemd/sd-bus.h>
+#include <systemd/sd-bus-protocol.h>
#include "utils-jbus.h"
service = jbus->services;
while (service != NULL) {
if (!strcmp(service->method, member)) {
+ sd_bus_message_ref(smsg);
if (service->oncall_s)
service->oncall_s(smsg, content, service->data);
else if (service->oncall_j) {
*/
int jbus_reply_error_s(struct sd_bus_message *smsg, const char *error)
{
- return mkerrno(sd_bus_reply_method_errorf(smsg, "error", "%s", error));
+ int rc = sd_bus_reply_method_errorf(smsg, SD_BUS_ERROR_FAILED, "%s", error);
+ sd_bus_message_unref(smsg);
+ return mkerrno(rc);
}
/*
*/
int jbus_reply_s(struct sd_bus_message *smsg, const char *reply)
{
- return mkerrno(sd_bus_reply_method_return(smsg, "s", reply));
+ int rc = sd_bus_reply_method_return(smsg, "s", reply);
+ sd_bus_message_unref(smsg);
+ return mkerrno(rc);
}
/*