[Adapt: HAL] Add support for 'Authorize Cancel' request from Remote 60/86060/1
authorAnupam Roy <anupam.r@samsung.com>
Mon, 1 Aug 2016 15:20:00 +0000 (20:50 +0530)
committerAnupam Roy <anupam.r@samsung.com>
Mon, 1 Aug 2016 15:20:00 +0000 (20:50 +0530)
Change-Id: I4a797ea959210a13116aeac3e90419f2cb7adf45
Signed-off-by: Anupam Roy <anupam.r@samsung.com>
bt-oal/bluez_hal/src/bt-hal-agent.c
bt-oal/bluez_hal/src/bt-hal-gap-agent.c

index 077e696..af9cb16 100644 (file)
@@ -88,6 +88,7 @@ static gboolean __bt_hal_confirm_request(GapAgentPrivate *agent, GDBusProxy *dev
                guint passkey);
 static gboolean __bt_hal_authorize_request(GapAgentPrivate *agent, GDBusProxy *device,
                                                         const char *uuid);
+static gboolean __bt_hal_authorize_cancel_request(GapAgentPrivate *agent, const char *address);
 static GVariant *__bt_hal_service_getall(GDBusProxy *device, const char *interface);
 static void __bt_hal_agent_release_memory(void);
 static inline void stack_trim(void);
@@ -126,7 +127,7 @@ void* _bt_hal_create_agent(const char *path, gboolean adapter)
        func_cb.confirm_func = __bt_hal_confirm_request;
        func_cb.authorize_func = __bt_hal_authorize_request;
        func_cb.pairing_cancel_func = NULL;
-       func_cb.authorization_cancel_func = NULL;
+       func_cb.authorization_cancel_func = __bt_hal_authorize_cancel_request;
 
        /* Allocate memory*/
        agent = g_new0(GapAgentPrivate, 1);
@@ -657,6 +658,18 @@ done:
        return TRUE;
 }
 
+static gboolean __bt_hal_authorize_cancel_request(GapAgentPrivate *agent,
+                                               const char *address)
+{
+       DBG("On Going Authorization is cancelled by remote [%s]", address);
+       gap_agent_reply_authorize(agent, GAP_AGENT_CANCEL, NULL);
+#ifdef TIZEN_SYSPOPUP_SUPPORTED
+       syspopup_destroy_all();
+#endif
+       __bt_hal_agent_release_memory();
+       return TRUE;
+}
+
 #ifdef TIZEN_SYSPOPUP_SUPPORTED
 int _bt_hal_launch_system_popup(bt_hal_agent_event_type_t event_type,
                const char *device_name,
index 41ec65b..ae0b09f 100644 (file)
@@ -745,6 +745,7 @@ static void __bt_gap_agent_method(GDBusConnection *connection,
                 */
                if (priv->cb.authorization_cancel_func &&
                                priv->exec_type == GAP_AGENT_EXEC_AUTHORZATION) {
+                       DBG("Call GAP agent cancel Authorization method.");
                        priv->cb.authorization_cancel_func(priv,
                                        priv->authorize_addr);
                        memset(priv->authorize_addr, 0x00,