* limitations under the License.
*/
-#if defined(WITH_DBUS_TRANSPARENCY)
+#if WITH_DBUS_TRANSPARENCY
#define _GNU_SOURCE
#include <afb/afb-event-x2.h>
-#include "afb-systemd.h"
-
#include "afb-session.h"
#include "afb-msg-json.h"
#include "afb-api.h"
#include "afb-cred.h"
#include "afb-evt.h"
#include "afb-xreq.h"
-#include "verbose.h"
+#include "verbose.h"
+#include "systemd.h"
+#include "jobs.h"
static const char DEFAULT_PATH_PREFIX[] = "/org/agl/afb/api/";
}
/* choose the bus */
- sdbus = (system ? afb_systemd_get_system_bus : afb_systemd_get_user_bus)();
+ jobs_acquire_event_manager();
+ sdbus = (system ? systemd_get_system_bus : systemd_get_user_bus)();
if (sdbus == NULL)
goto error2;
static void afb_api_dbus_server_event_add(void *closure, const char *event, int eventid);
static void afb_api_dbus_server_event_remove(void *closure, const char *event, int eventid);
static void afb_api_dbus_server_event_push(void *closure, const char *event, int eventid, struct json_object *object);
-static void afb_api_dbus_server_event_broadcast(void *closure, const char *event, int eventid, struct json_object *object);
+static void afb_api_dbus_server_event_broadcast(void *closure, const char *event, struct json_object *object, const char *uuid);
/* the interface for events broadcasting */
static const struct afb_evt_itf evt_broadcast_itf = {
struct afb_cred *cred;
/* the origin */
- char name[1];
+ char name[];
};
/* get the credentials for the message */
}
/* not found, create it */
- origin = malloc(strlen(sender) + sizeof *origin);
+ origin = malloc(strlen(sender) + 1 + sizeof *origin);
if (origin == NULL)
errno = ENOMEM;
else {
json_object_put(object);
}
-static void afb_api_dbus_server_event_broadcast(void *closure, const char *event, int eventid, struct json_object *object)
+static void afb_api_dbus_server_event_broadcast(void *closure, const char *event, struct json_object *object, const char *uuid)
{
int rc;
struct api_dbus *api;