2011-08-11 15:54:39

by Dmitriy Paliy

[permalink] [raw]
Subject: [PATCH BlueZ v2 0/3] Remove paired and bonded from btd_device structure

Hi,

Compilation error is fixed comparing to previous submission.

BR,
Dmitriy



2011-08-11 15:54:40

by Dmitriy Paliy

[permalink] [raw]
Subject: [PATCH BlueZ v2 1/3] Remove paired and bonded from btd_device structure

paired and bonded device properties are replaced by pairing_status.
---
src/device.c | 43 ++++++++++++++++++++++++++++++-------------
1 files changed, 30 insertions(+), 13 deletions(-)

diff --git a/src/device.c b/src/device.c
index 9dd657c..7ff26c1 100644
--- a/src/device.c
+++ b/src/device.c
@@ -114,6 +114,12 @@ struct attio_data {
gpointer user_data;
};

+typedef enum {
+ DEVICE_PAIRING_STATUS_NONE,
+ DEVICE_PAIRING_STATUS_PAIRED,
+ DEVICE_PAIRING_STATUS_BONDED
+} pairing_status_t;
+
struct btd_device {
bdaddr_t bdaddr;
device_type_t type;
@@ -144,9 +150,8 @@ struct btd_device {
sdp_list_t *tmp_records;

gboolean trusted;
- gboolean paired;
gboolean blocked;
- gboolean bonded;
+ pairing_status_t pairing_status;

gboolean authorizing;
gint ref;
@@ -247,12 +252,13 @@ static void device_free(gpointer user_data)

gboolean device_is_paired(struct btd_device *device)
{
- return device->paired;
+ return (device->pairing_status == DEVICE_PAIRING_STATUS_PAIRED) ||
+ (device->pairing_status == DEVICE_PAIRING_STATUS_BONDED);
}

gboolean device_is_bonded(struct btd_device *device)
{
- return device->bonded;
+ return device->pairing_status == DEVICE_PAIRING_STATUS_BONDED;
}

gboolean device_is_trusted(struct btd_device *device)
@@ -855,7 +861,7 @@ void device_remove_connection(struct btd_device *device, DBusConnection *conn)
device->disconnects = g_slist_remove(device->disconnects, msg);
}

- if (device_is_paired(device) && !device_is_bonded(device))
+ if (!device_is_bonded(device))
device_set_paired(device, FALSE);

emit_property_changed(conn, device->path,
@@ -941,7 +947,6 @@ struct btd_device *device_create(DBusConnection *conn,
device_block(conn, device);

if (read_link_key(&src, &device->bdaddr, NULL, NULL) == 0) {
- device_set_paired(device, TRUE);
device_set_bonded(device, TRUE);
}

@@ -992,7 +997,6 @@ static void device_remove_stored(struct btd_device *device)
delete_entry(&src, "linkkeys", addr);
delete_entry(&src, "aliases", addr);
device_set_bonded(device, FALSE);
- device_set_paired(device, FALSE);
btd_adapter_remove_bonding(device->adapter, &device->bdaddr);
}
delete_entry(&src, "profiles", addr);
@@ -1912,12 +1916,20 @@ void device_set_temporary(struct btd_device *device, gboolean temporary)

void device_set_bonded(struct btd_device *device, gboolean bonded)
{
- if (!device)
+ DBusConnection *conn = get_dbus_connection();
+
+ if (device_is_bonded(device) == bonded)
return;

- DBG("bonded %d", bonded);
+ DBG("%s", bonded ? "TRUE" : "FALSE");

- device->bonded = bonded;
+ if (bonded)
+ device->pairing_status = DEVICE_PAIRING_STATUS_BONDED;
+ else
+ device->pairing_status = DEVICE_PAIRING_STATUS_NONE;
+
+ emit_property_changed(conn, device->path, DEVICE_INTERFACE, "Paired",
+ DBUS_TYPE_BOOLEAN, &bonded);
}

void device_set_type(struct btd_device *device, device_type_t type)
@@ -2035,10 +2047,15 @@ void device_set_paired(struct btd_device *device, gboolean value)
{
DBusConnection *conn = get_dbus_connection();

- if (device->paired == value)
+ if (device_is_paired(device) == value)
return;

- device->paired = value;
+ DBG("%s", value ? "TRUE" : "FALSE");
+
+ if (value)
+ device->pairing_status = DEVICE_PAIRING_STATUS_PAIRED;
+ else
+ device->pairing_status = DEVICE_PAIRING_STATUS_NONE;

emit_property_changed(conn, device->path, DEVICE_INTERFACE, "Paired",
DBUS_TYPE_BOOLEAN, &value);
@@ -2198,7 +2215,7 @@ void device_bonding_complete(struct btd_device *device, uint8_t status)
device_auth_req_free(device);

/* If we're already paired nothing more is needed */
- if (device->paired)
+ if (device_is_paired(device) && !bonding)
return;

device_set_paired(device, TRUE);
--
1.7.4.1


2011-08-11 15:54:41

by Dmitriy Paliy

[permalink] [raw]
Subject: [PATCH BlueZ v2 2/3] Code clean-up: value is used in set paired and bonded

Prototype for device_set_paired is updated accordingly to its function
definition.

In order to make code consistent, variable value is to be used in
device_set_paired and device_set_bonded instead of paired and bonded
respectively.
---
src/device.c | 10 +++++-----
src/device.h | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/device.c b/src/device.c
index 7ff26c1..b3f3e98 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1914,22 +1914,22 @@ void device_set_temporary(struct btd_device *device, gboolean temporary)
device->temporary = temporary;
}

-void device_set_bonded(struct btd_device *device, gboolean bonded)
+void device_set_bonded(struct btd_device *device, gboolean value)
{
DBusConnection *conn = get_dbus_connection();

- if (device_is_bonded(device) == bonded)
+ if (device_is_bonded(device) == value)
return;

- DBG("%s", bonded ? "TRUE" : "FALSE");
+ DBG("%s", value ? "TRUE" : "FALSE");

- if (bonded)
+ if (value)
device->pairing_status = DEVICE_PAIRING_STATUS_BONDED;
else
device->pairing_status = DEVICE_PAIRING_STATUS_NONE;

emit_property_changed(conn, device->path, DEVICE_INTERFACE, "Paired",
- DBUS_TYPE_BOOLEAN, &bonded);
+ DBUS_TYPE_BOOLEAN, &value);
}

void device_set_type(struct btd_device *device, device_type_t type)
diff --git a/src/device.h b/src/device.h
index 6efcf63..0f3e857 100644
--- a/src/device.h
+++ b/src/device.h
@@ -70,10 +70,10 @@ gboolean device_is_temporary(struct btd_device *device);
gboolean device_is_paired(struct btd_device *device);
gboolean device_is_bonded(struct btd_device *device);
gboolean device_is_trusted(struct btd_device *device);
-void device_set_paired(struct btd_device *device, gboolean paired);
+void device_set_paired(struct btd_device *device, gboolean value);
void device_set_temporary(struct btd_device *device, gboolean temporary);
void device_set_type(struct btd_device *device, device_type_t type);
-void device_set_bonded(struct btd_device *device, gboolean bonded);
+void device_set_bonded(struct btd_device *device, gboolean value);
gboolean device_is_connected(struct btd_device *device);
DBusMessage *device_create_bonding(struct btd_device *device,
DBusConnection *conn, DBusMessage *msg,
--
1.7.4.1


2011-08-11 15:54:42

by Dmitriy Paliy

[permalink] [raw]
Subject: [PATCH BlueZ v2 3/3] Code clean-up: remove unnecessary brackets

---
src/device.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/device.c b/src/device.c
index b3f3e98..3cc5298 100644
--- a/src/device.c
+++ b/src/device.c
@@ -946,9 +946,8 @@ struct btd_device *device_create(DBusConnection *conn,
if (read_blocked(&src, &device->bdaddr))
device_block(conn, device);

- if (read_link_key(&src, &device->bdaddr, NULL, NULL) == 0) {
+ if (read_link_key(&src, &device->bdaddr, NULL, NULL) == 0)
device_set_bonded(device, TRUE);
- }

return btd_device_ref(device);
}
--
1.7.4.1