blob: a766a09795df39f4cadbc95e1a1796375d619d1a [file] [log] [blame]
From 82ef8f4b96d62e18b5a191f6aaa9d79140ca64a4 Mon Sep 17 00:00:00 2001
From: Scott James Remnant <scott@netsplit.com>
Date: Tue, 24 Jan 2012 10:36:44 -0800
Subject: [PATCH 12/13] bonding: call plugin callback on cancellation
Call the plugin callbacks when a bonding request is cancelled.
---
src/device.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/device.c b/src/device.c
index 4ad5aa0..ea0d1fb 100644
--- a/src/device.c
+++ b/src/device.c
@@ -2648,6 +2648,8 @@ void device_cancel_bonding(struct btd_device *device, uint8_t status)
struct bonding_req *bonding = device->bonding;
DBusMessage *reply;
char addr[18];
+ GSList *l;
+ btd_device_bonding_cb_t cb;
if (!bonding)
return;
@@ -2655,6 +2657,14 @@ void device_cancel_bonding(struct btd_device *device, uint8_t status)
ba2str(&device->bdaddr, addr);
DBG("Canceling bonding request for %s", addr);
+ for (l = device->bonding_callbacks; l != NULL; l = g_slist_next(l)) {
+ cb = l->data;
+ cb(device, FALSE, 0);
+ }
+
+ g_slist_free(device->bonding_callbacks);
+ device->bonding_callbacks = NULL;
+
if (device->authr)
device_cancel_authentication(device, FALSE);
--
1.7.7.3