diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2013-02-15 13:09:14 +0100 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-02-15 16:28:06 +0200 |
commit | 66d880d2327eef57445958a0108430ad227116c3 (patch) | |
tree | 94900dcfce2849938e594f35eaf687dc2238e683 /plugins/neard.c | |
parent | 30e2aaa3f80e77c9080e71e4a641a7df81a9958b (diff) | |
download | bluez-66d880d2327eef57445958a0108430ad227116c3.tar.gz |
neard: Use service name and not boolean to track if registered to neard
Diffstat (limited to 'plugins/neard.c')
-rw-r--r-- | plugins/neard.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/plugins/neard.c b/plugins/neard.c index a1b385ea2..650ee3e29 100644 --- a/plugins/neard.c +++ b/plugins/neard.c @@ -49,7 +49,7 @@ #define ERROR_INTERFACE "org.neard.HandoverAgent.Error" static guint watcher_id = 0; -static gboolean agent_registered = FALSE; +static char *neard_service = NULL; static gboolean agent_register_postpone = FALSE; /* For NFC mimetype limits max OOB EIR size */ @@ -115,7 +115,7 @@ static void register_agent_cb(DBusPendingCall *call, void *user_data) } dbus_message_unref(reply); - agent_registered = TRUE; + neard_service = g_strdup(dbus_message_get_sender(reply)); } static void register_agent(void) @@ -152,7 +152,8 @@ static void unregister_agent(void) DBusMessage *message; const char *path = AGENT_PATH; - agent_registered = FALSE; + g_free(neard_service); + neard_service = NULL; message = dbus_message_new_method_call(NEARD_NAME, NEARD_PATH, NEARD_MANAGER_INTERFACE, "UnregisterHandoverAgent"); @@ -237,7 +238,7 @@ static void read_local_complete(struct btd_adapter *adapter, DBG(""); - if (!agent_registered) { + if (neard_service == NULL) { dbus_message_unref(msg); if (agent_register_postpone) { @@ -269,7 +270,7 @@ static void bonding_complete(struct btd_adapter *adapter, DBG(""); - if (!agent_registered) { + if (neard_service == NULL) { dbus_message_unref(msg); if (agent_register_postpone) { @@ -777,7 +778,9 @@ static DBusMessage *release(DBusConnection *conn, DBusMessage *msg, { DBG(""); - agent_registered = FALSE; + g_free(neard_service); + neard_service = NULL; + g_dbus_unregister_interface(conn, AGENT_PATH, AGENT_INTERFACE); return g_dbus_create_reply(msg, DBUS_TYPE_INVALID); @@ -824,8 +827,10 @@ static void neard_vanished(DBusConnection *conn, void *user_data) DBG(""); /* neard existed without unregistering agent */ - if (agent_registered) { - agent_registered = FALSE; + if (neard_service != NULL) { + g_free(neard_service); + neard_service = NULL; + g_dbus_unregister_interface(conn, AGENT_PATH, AGENT_INTERFACE); } } @@ -850,7 +855,7 @@ static void neard_exit(void) g_dbus_remove_watch(btd_get_dbus_connection(), watcher_id); watcher_id = 0; - if (agent_registered) + if (neard_service != NULL) unregister_agent(); } |