X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fafm-main-plugin%2Fafm-main-plugin.c;h=705efcb0917ac5d1a5b015f654b0bbdd687ca3ef;hb=06382af9092babedbf56aa1c00b3bd7cb0b86cda;hp=21e27e82afb4aca6d7b8049459ff7f17be332d7f;hpb=f262b0f726ac0577f40525038b779185f144873f;p=src%2Fapp-framework-binder.git diff --git a/plugins/afm-main-plugin/afm-main-plugin.c b/plugins/afm-main-plugin/afm-main-plugin.c index 21e27e82..705efcb0 100644 --- a/plugins/afm-main-plugin/afm-main-plugin.c +++ b/plugins/afm-main-plugin/afm-main-plugin.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 "IoT.bzh" + * Copyright (C) 2015, 2016 "IoT.bzh" * Author "Fulup Ar Foll" * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,11 +19,10 @@ #include #include #include -#include +#include -#include "afb-plugin.h" +#include -#include "utils-sbus.h" #include "utils-jbus.h" static const char _added_[] = "added"; @@ -63,6 +62,7 @@ static struct memo *make_memo(struct afb_req request, const char *method) if (memo != NULL) { memo->request = request; memo->method = method; + afb_req_addref(request); } return memo; } @@ -110,6 +110,7 @@ static void embed_call_void_callback(int status, struct json_object *obj, struct afb_req_success(memo->request, obj, NULL); } } + afb_req_unref(memo->request); free(memo); } @@ -135,6 +136,7 @@ static void call_appid_callback(int status, struct json_object *obj, struct memo obj = json_object_get(obj); afb_req_success(memo->request, obj, NULL); } + afb_req_unref(memo->request); free(memo); } @@ -331,39 +333,23 @@ static const struct AFB_plugin plug_desc = { .apis = plug_apis }; -static struct sbus_itf sbusitf; - const struct AFB_plugin *pluginRegister(const struct AFB_interface *itf) { int rc; - struct afb_pollmgr pollmgr; - struct sbus *sbus; + struct sd_bus *sbus; /* records the interface */ assert (interface == NULL); interface = itf; evmgr = afb_daemon_get_evmgr(itf->daemon); - /* creates the sbus for session */ - pollmgr = afb_daemon_get_pollmgr(itf->daemon); - sbusitf.wait = pollmgr.itf->wait; - sbusitf.open = pollmgr.itf->open; - sbusitf.on_readable = pollmgr.itf->on_readable; - sbusitf.on_writable = pollmgr.itf->on_writable; - sbusitf.on_hangup = pollmgr.itf->on_hangup; - sbusitf.close = pollmgr.itf->close; - sbus = sbus_session(&sbusitf, pollmgr.closure); - if (sbus == NULL) { - fprintf(stderr, "ERROR: %s:%d: can't connect to DBUS session\n", __FILE__, __LINE__); - return NULL; - } - /* creates the jbus for accessing afm-user-daemon */ + sbus = afb_daemon_get_user_bus(itf->daemon); + if (sbus == NULL) + return NULL; jbus = create_jbus(sbus, "/org/AGL/afm/user"); - if (jbus == NULL) { - sbus_unref(sbus); + if (jbus == NULL) return NULL; - } /* records the signal handler */ rc = jbus_on_signal_s(jbus, _changed_, application_list_changed, NULL);