/*
- * Copyright (C) 2015, 2016, 2017 "IoT.bzh"
+ * Copyright (C) 2015-2018 "IoT.bzh"
* Author José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
#include <afb/afb-event.h>
-#include "afb-common.h"
+#include "afb-systemd.h"
#include "afb-session.h"
#include "afb-msg-json.h"
goto error2;
}
api->api++;
- if (!afb_api_is_valid_name(api->api)) {
+ if (!afb_api_is_valid_name(api->api, 1)) {
errno = EINVAL;
goto error2;
}
}
/* choose the bus */
- sdbus = (system ? afb_common_get_system_bus : afb_common_get_user_bus)();
+ sdbus = (system ? afb_systemd_get_system_bus : afb_systemd_get_user_bus)();
if (sdbus == NULL)
goto error2;
return rc;
}
+static void dbus_req_subcall(
+ struct afb_xreq *xreq,
+ const char *api,
+ const char *verb,
+ struct json_object *args,
+ void (*callback)(void*, int, struct json_object*),
+ void *cb_closure)
+{
+ ERROR("DBUS API doesn't support subcalls, info: %s/%s(%s)", api, verb, json_object_to_json_string(args));
+ callback(cb_closure, 1, afb_msg_json_reply_error("error", "subcall isn't supported", NULL, NULL));
+ json_object_put(args);
+}
+
const struct afb_xreq_query_itf afb_api_dbus_xreq_itf = {
.json = dbus_req_json,
.success = dbus_req_success,
.fail = dbus_req_fail,
.unref = dbus_req_destroy,
.subscribe = dbus_req_subscribe,
- .unsubscribe = dbus_req_unsubscribe
+ .unsubscribe = dbus_req_unsubscribe,
+ .subcall = dbus_req_subcall
};
/******************* server part **********************************/