Linux bluetooth development
 help / color / mirror / Atom feed
* RE: [PATCH v2 3/6] Bluetooth: Map sec_level to link key requirements
From: Waldemar.Rymarkiewicz @ 2011-04-21 10:02 UTC (permalink / raw)
  To: johan.hedberg, linux-bluetooth; +Cc: padovan
In-Reply-To: <1303372461-11848-3-git-send-email-waldemar.rymarkiewicz@tieto.com>

Hi Johan, 

> /* Enable security */
> int hci_conn_security(struct hci_conn *conn, __u8 sec_level, 
>__u8 auth_type)  {

Just to clarify. This change modifies hciops behaviour, but it's not visible for the user.
In case of re-auth an extra authentication request is generated, but hciops will link_key_request_replay (key already exists, no check against pin len) on link_key_request.

As a result, connection will be accepted without any user notification.


Thanks,
Waldek

^ permalink raw reply

* RE: [PATCH v2 5/6] Bluetooth: Double check sec req for pre 2.1 device
From: Waldemar.Rymarkiewicz @ 2011-04-21  9:53 UTC (permalink / raw)
  To: johan.hedberg; +Cc: linux-bluetooth, padovan
In-Reply-To: <1303372461-11848-5-git-send-email-waldemar.rymarkiewicz@tieto.com>

Hi Johan, 

>+static int rfcomm_accept_secure(struct hci_conn *conn, struct 
>+rfcomm_dlc *d) {
>+	BT_DBG("");
>+
>+	if (d->sec_level != BT_SECURITY_HIGH)
>+		return 1; /* Accept */
>+
>+	if (conn->key_type == HCI_LK_AUTH_COMBINATION ||
>+			(conn->key_type == HCI_LK_COMBINATION &&
>+			conn->pin_length == 16))
>+		return 1;
>+
>+	return 0; /* Reject */
>+}
>+

I don't know what's your approach to changing hciops behaviour, but I can guess we should not change it.
If it so, I would add

>+static int rfcomm_accept_secure(struct hci_conn *conn, struct 
>+rfcomm_dlc *d) {
>+	BT_DBG("");
>+
	/* Secure link is not supported in non mgmtops */
	if (!test_bit(HCI_MGMT, &hdev->flags))
		return 1;

>+	if (d->sec_level != BT_SECURITY_HIGH)
>+		return 1; /* Accept */
...

This way SECURITY_HIGH  for hciops will behave as it's now (pin code less then 16 digit will be accepted). 

Do you agree?

/Waldek

^ permalink raw reply

* RE: [PATCH v2 6/6] Bluetooth: Respect local MITM req in io_cap reply
From: Waldemar.Rymarkiewicz @ 2011-04-21  8:24 UTC (permalink / raw)
  To: johan.hedberg; +Cc: linux-bluetooth, padovan
In-Reply-To: <20110421081048.GA23120@jh-x301>

Hi Johan, 

>> --- a/net/bluetooth/hci_event.c
>> +++ b/net/bluetooth/hci_event.c
>> @@ -2369,7 +2369,7 @@ static inline u8 hci_get_auth_req(struct 
>> hci_conn *conn)
>>  
>>  	/* If remote requests no-bonding follow that lead */
>>  	if (conn->remote_auth == 0x00 || conn->remote_auth == 0x01)
>> -		return 0x00;
>> +		return conn->auth_type & 0x01;
>>  
>>  	return conn->auth_type;
>>  }
>
>Your other patches seem ok to me, but have you verified this 
>one with the BITE tester? This logic is directly copied from 
>how it is in user space right now and that's something we have 
>arrived at after multiple iterations with the BITE tester over 
>the last few years. So I'd be very careful when changing it.
>

No, I did not. I don't have an access to BITE directly, but I will see if I can verify this.

I simply did some combination of manual tests with three different dongles (2.0 and two 2.1), with sspmode on/off , with auth and encrypt on/off, with required sec_level 1,2,3 in security mode 2 and 4.

Waldek

^ permalink raw reply

* Re: [PATCH v2 6/6] Bluetooth: Respect local MITM req in io_cap reply
From: Johan Hedberg @ 2011-04-21  8:10 UTC (permalink / raw)
  To: Waldemar Rymarkiewicz; +Cc: linux-bluetooth, padovan
In-Reply-To: <1303372461-11848-6-git-send-email-waldemar.rymarkiewicz@tieto.com>

Hi Waldek,

On Thu, Apr 21, 2011, Waldemar Rymarkiewicz wrote:
> If host requires MITM protection notify that to controller in
> io capabilities reply even if the remote device requires no bonding.
> 
> If it is not respected, host can get an unauthenticated link key while
> it expects authenticated one.
> 
> Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
> ---
>  net/bluetooth/hci_event.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 087953e..3ee0060 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -2369,7 +2369,7 @@ static inline u8 hci_get_auth_req(struct hci_conn *conn)
>  
>  	/* If remote requests no-bonding follow that lead */
>  	if (conn->remote_auth == 0x00 || conn->remote_auth == 0x01)
> -		return 0x00;
> +		return conn->auth_type & 0x01;
>  
>  	return conn->auth_type;
>  }

Your other patches seem ok to me, but have you verified this one with
the BITE tester? This logic is directly copied from how it is in user
space right now and that's something we have arrived at after multiple
iterations with the BITE tester over the last few years. So I'd be very
careful when changing it.

Johan

^ permalink raw reply

* [PATCH v2 6/6] Bluetooth: Respect local MITM req in io_cap reply
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz
In-Reply-To: <1303372461-11848-1-git-send-email-waldemar.rymarkiewicz@tieto.com>

If host requires MITM protection notify that to controller in
io capabilities reply even if the remote device requires no bonding.

If it is not respected, host can get an unauthenticated link key while
it expects authenticated one.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 net/bluetooth/hci_event.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 087953e..3ee0060 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -2369,7 +2369,7 @@ static inline u8 hci_get_auth_req(struct hci_conn *conn)
 
 	/* If remote requests no-bonding follow that lead */
 	if (conn->remote_auth == 0x00 || conn->remote_auth == 0x01)
-		return 0x00;
+		return conn->auth_type & 0x01;
 
 	return conn->auth_type;
 }
-- 
1.7.1


^ permalink raw reply related

* [PATCH v2 5/6] Bluetooth: Double check sec req for pre 2.1 device
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz
In-Reply-To: <1303372461-11848-1-git-send-email-waldemar.rymarkiewicz@tieto.com>

In case of pre v2.1 devices authentication request will return
success immediately if the link key already exists without any
authentication process.

That means, it's not possible to re-authenticate the link if you
already have combination key and for instance want to re-authenticate
to get the high security (use 16 digit pin).

Therefore, it's necessary to check security requirements on auth
complete event to prevent not enough secure connection.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 net/bluetooth/rfcomm/core.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index c997393..75535cc 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -2054,6 +2054,21 @@ static int rfcomm_run(void *unused)
 	return 0;
 }
 
+static int rfcomm_accept_secure(struct hci_conn *conn, struct rfcomm_dlc *d)
+{
+	BT_DBG("");
+
+	if (d->sec_level != BT_SECURITY_HIGH)
+		return 1; /* Accept */
+
+	if (conn->key_type == HCI_LK_AUTH_COMBINATION ||
+			(conn->key_type == HCI_LK_COMBINATION &&
+			conn->pin_length == 16))
+		return 1;
+
+	return 0; /* Reject */
+}
+
 static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt)
 {
 	struct rfcomm_session *s;
@@ -2093,7 +2108,7 @@ static void rfcomm_security_cfm(struct hci_conn *conn, u8 status, u8 encrypt)
 		if (!test_and_clear_bit(RFCOMM_AUTH_PENDING, &d->flags))
 			continue;
 
-		if (!status)
+		if (!status && rfcomm_accept_secure(conn, d))
 			set_bit(RFCOMM_AUTH_ACCEPT, &d->flags);
 		else
 			set_bit(RFCOMM_AUTH_REJECT, &d->flags);
-- 
1.7.1


^ permalink raw reply related

* [PATCH v2 4/6] Bluetooth: Ignore key unauthenticated for high security
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz
In-Reply-To: <1303372461-11848-1-git-send-email-waldemar.rymarkiewicz@tieto.com>

High security level for pre v2.1 devices requires combination link key
authenticated by at least 16 digit PIN code.

It's also necessary to update key_type and pin_length when the key
exists and is sufficently secured for the connection as there will be
no link key notify event in that case.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 net/bluetooth/hci_event.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 1610e5f..087953e 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -2043,11 +2043,23 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
 	}
 
 	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
+	if (conn) {
+		if (key->type == HCI_LK_UNAUTH_COMBINATION &&
+				conn->auth_type != 0xff &&
+				(conn->auth_type & 0x01)) {
+			BT_DBG("%s ignoring unauthenticated key", hdev->name);
+			goto not_found;
+		}
 
-	if (key->type == HCI_LK_UNAUTH_COMBINATION && conn &&
-			conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
-		BT_DBG("%s ignoring unauthenticated key", hdev->name);
-		goto not_found;
+		if (key->type == HCI_LK_COMBINATION && key->pin_len < 16 &&
+				conn->pending_sec_level == BT_SECURITY_HIGH) {
+			BT_DBG("%s ignoring key unauthenticated for high \
+							security", hdev->name);
+			goto not_found;
+		}
+
+		conn->key_type = key->type;
+		conn->pin_length = key->pin_len;
 	}
 
 	bacpy(&cp.bdaddr, &ev->bdaddr);
-- 
1.7.1


^ permalink raw reply related

* [PATCH v2 3/6] Bluetooth: Map sec_level to link key requirements
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz
In-Reply-To: <1303372461-11848-1-git-send-email-waldemar.rymarkiewicz@tieto.com>

Keep the link key type together with connection and use it to
map security level to link key requirements. Authenticate and/or
encrypt connection if the link is insufficiently secure.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 include/net/bluetooth/hci_core.h |    1 +
 net/bluetooth/hci_conn.c         |   61 +++++++++++++++++++++++++++++++------
 net/bluetooth/hci_event.c        |    4 ++
 3 files changed, 56 insertions(+), 10 deletions(-)

diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 4093133..02e7256 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -226,6 +226,7 @@ struct hci_conn {
 	__u16		pkt_type;
 	__u16		link_policy;
 	__u32		link_mode;
+	__u8		key_type;
 	__u8		auth_type;
 	__u8		sec_level;
 	__u8		pending_sec_level;
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index 7a6f56b..74cd755 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -287,6 +287,7 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
 	conn->auth_type = HCI_AT_GENERAL_BONDING;
 	conn->io_capability = hdev->io_capability;
 	conn->remote_auth = 0xff;
+	conn->key_type = 0xff;
 
 	conn->power_save = 1;
 	conn->disc_timeout = HCI_DISCONN_TIMEOUT;
@@ -535,32 +536,72 @@ static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
 	return 0;
 }
 
+/* Encrypt the the link */
+static void hci_conn_encrypt(struct hci_conn *conn)
+{
+	BT_DBG("conn %p", conn);
+
+	if (!test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend)) {
+		struct hci_cp_set_conn_encrypt cp;
+		cp.handle  = cpu_to_le16(conn->handle);
+		cp.encrypt = 0x01;
+		hci_send_cmd(conn->hdev, HCI_OP_SET_CONN_ENCRYPT, sizeof(cp),
+									&cp);
+	}
+}
+
 /* Enable security */
 int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
 {
 	BT_DBG("conn %p", conn);
 
+	/* For sdp we don't need the link key. */
 	if (sec_level == BT_SECURITY_SDP)
 		return 1;
 
+	/* For non 2.1 devices and low security level we don't need the link
+	   key. */
 	if (sec_level == BT_SECURITY_LOW &&
 				(!conn->ssp_mode || !conn->hdev->ssp_mode))
 		return 1;
 
-	if (conn->link_mode & HCI_LM_ENCRYPT)
-		return hci_conn_auth(conn, sec_level, auth_type);
-
+	/* For other security levels we need the link key. */
+	if (!(conn->link_mode & HCI_LM_AUTH))
+		goto auth;
+
+	/* An authenticated combination key has sufficient security for any
+	   security level. */
+	if (conn->key_type == HCI_LK_AUTH_COMBINATION)
+		goto encrypt;
+
+	/* An unauthenticated combination key has sufficient security for
+	   security level 1 and 2. */
+	if (conn->key_type == HCI_LK_UNAUTH_COMBINATION &&
+			(sec_level == BT_SECURITY_MEDIUM ||
+			sec_level == BT_SECURITY_LOW))
+		goto encrypt;
+
+	/* A combination key has always sufficient security for the security
+	   levels 1 or 2. High security level requires the combination key
+	   is generated using maximum PIN code length (16).
+	   For pre 2.1 units. */
+	if (conn->key_type == HCI_LK_COMBINATION &&
+			(sec_level != BT_SECURITY_HIGH ||
+			conn->pin_length == 16))
+		goto encrypt;
+
+auth:
 	if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend))
 		return 0;
 
-	if (hci_conn_auth(conn, sec_level, auth_type)) {
-		struct hci_cp_set_conn_encrypt cp;
-		cp.handle  = cpu_to_le16(conn->handle);
-		cp.encrypt = 1;
-		hci_send_cmd(conn->hdev, HCI_OP_SET_CONN_ENCRYPT,
-							sizeof(cp), &cp);
-	}
+	hci_conn_auth(conn, sec_level, auth_type);
+	return 0;
+
+encrypt:
+	if (conn->link_mode & HCI_LM_ENCRYPT)
+		return 1;
 
+	hci_conn_encrypt(conn);
 	return 0;
 }
 EXPORT_SYMBOL(hci_conn_security);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0ceecd7..1610e5f 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -2079,6 +2079,10 @@ static inline void hci_link_key_notify_evt(struct hci_dev *hdev, struct sk_buff
 		hci_conn_hold(conn);
 		conn->disc_timeout = HCI_DISCONN_TIMEOUT;
 		pin_len = conn->pin_length;
+
+		if (ev->key_type != HCI_LK_CHANGED_COMBINATION)
+			conn->key_type = ev->key_type;
+
 		hci_conn_put(conn);
 	}
 
-- 
1.7.1


^ permalink raw reply related

* [PATCH v2 2/6] Bluetooth: Don't modify sec_level if auth failed
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz
In-Reply-To: <1303372461-11848-1-git-send-email-waldemar.rymarkiewicz@tieto.com>

If authentication fails the security level should stay as it was set
before the process has started. Setting BT_SECURITY_LOW can hide real
security level on a link eg. having BT_SECURITY_MEDIUM on the link,
re-authenticate with failure to get BT_SECURITY_HIGH, as  a result we
get BT_SECURITY_LOW on the link while the real security is still medium.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 net/bluetooth/hci_event.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 36eb062..0ceecd7 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1443,7 +1443,6 @@ static inline void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *s
 			conn->sec_level = conn->pending_sec_level;
 		} else {
 			mgmt_auth_failed(hdev->id, &conn->dst, ev->status);
-			conn->sec_level = BT_SECURITY_LOW;
 		}
 
 		clear_bit(HCI_CONN_AUTH_PEND, &conn->pend);
-- 
1.7.1


^ permalink raw reply related

* [PATCH v2 1/6] Bluetooth: Add definitions for link key types
From: Waldemar Rymarkiewicz @ 2011-04-21  7:54 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Johan Hedberg, padovan, Waldemar Rymarkiewicz

Introduce the link key types defs and use them instead of magic numbers.

Signed-off-by: Waldemar Rymarkiewicz <waldemar.rymarkiewicz@tieto.com>
---
 include/net/bluetooth/hci.h |    9 +++++++++
 net/bluetooth/hci_core.c    |    2 +-
 net/bluetooth/hci_event.c   |    7 ++++---
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index 6138e31..e0a3cf1 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -246,6 +246,15 @@ enum {
 #define HCI_AT_GENERAL_BONDING		0x04
 #define HCI_AT_GENERAL_BONDING_MITM	0x05
 
+/* Link Key types */
+#define HCI_LK_COMBINATION		0x00
+#define HCI_LK_LOCAL_UNIT		0x01
+#define HCI_LK_REMOTE_UNIT		0x02
+#define HCI_LK_DEBUG_COMBINATION	0x03
+#define HCI_LK_UNAUTH_COMBINATION	0x04
+#define HCI_LK_AUTH_COMBINATION		0x05
+#define HCI_LK_CHANGED_COMBINATION	0x06
+
 /* -----  HCI Commands ---- */
 #define HCI_OP_NOP			0x0000
 
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index a80bc1c..cfa5621 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1049,7 +1049,7 @@ int hci_add_link_key(struct hci_dev *hdev, int new_key, bdaddr_t *bdaddr,
 	if (new_key)
 		mgmt_new_key(hdev->id, key, old_key_type);
 
-	if (type == 0x06)
+	if (type == HCI_LK_CHANGED_COMBINATION)
 		key->type = old_key_type;
 
 	return 0;
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index c7eb073..36eb062 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -2037,15 +2037,16 @@ static inline void hci_link_key_request_evt(struct hci_dev *hdev, struct sk_buff
 	BT_DBG("%s found key type %u for %s", hdev->name, key->type,
 							batostr(&ev->bdaddr));
 
-	if (!test_bit(HCI_DEBUG_KEYS, &hdev->flags) && key->type == 0x03) {
+	if (!test_bit(HCI_DEBUG_KEYS, &hdev->flags) &&
+				key->type == HCI_LK_DEBUG_COMBINATION) {
 		BT_DBG("%s ignoring debug key", hdev->name);
 		goto not_found;
 	}
 
 	conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr);
 
-	if (key->type == 0x04 && conn && conn->auth_type != 0xff &&
-						(conn->auth_type & 0x01)) {
+	if (key->type == HCI_LK_UNAUTH_COMBINATION && conn &&
+			conn->auth_type != 0xff && (conn->auth_type & 0x01)) {
 		BT_DBG("%s ignoring unauthenticated key", hdev->name);
 		goto not_found;
 	}
-- 
1.7.1


^ permalink raw reply related

* Re: Announcement: Antidote, an IEEE 11073 library
From: Marcel Holtmann @ 2011-04-21  3:39 UTC (permalink / raw)
  To: Elvis Pfützenreuter; +Cc: linux-bluetooth
In-Reply-To: <A3EC7A9A-8F49-4E71-8927-3B251AFD6A1B@signove.com>

Hi Elvis,

> Since the time we worked on BlueZ HDP support, we missed a free implementation
> for the "upper part" of health protocol stack, namely the IEEE 11073-20601
> standard.
> 
> Well, not anymore. Signove has released its implementation as free software:
> 
> http://oss.signove.com/index.php/Antidote_release_announcement

sounds great, but can be get a GIT tree that hosts the source code as
well. I was not able to find it. Shipping source code as tarballs is so
90ties ;)

Regards

Marcel



^ permalink raw reply

* Re: Read RSSI through Management Interface?
From: Marcel Holtmann @ 2011-04-21  3:36 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: BlueZ development, Gustavo F. Padovan, Johan Hedberg
In-Reply-To: <BANLkTinpSJeozeWCcYCBeQ=sxKU5SJSrSQ@mail.gmail.com>

Hi Claudio,

> we need to read the RSSI of LE and basic rate connections to implement
> the Proximity profile. RSSI included in the advertising packets can't
> be used for Proximity, it requires an "active" connection.
> 
> Here are some suggestions:
> 
> 1. Add a new command to mgmt interface to add a given address into a
> RSSI "monitoring list".
>    When the connection is established the kernel will automatically
> track the RSSI of the connection on regular intervals sending
> HCI_Read_RSSI. Read RSSI value can be reported through a new event in
> the management interface

the HCI_Read_RSSI on basic rate is a useless command since it depends
highly on the power control. Especially since all Bluetooth chips try to
keep this one optimized.

The RSSI from an active connection does not really give us much. And in
addition we have a lot of legacy BR chips just plain failing this
command and returning static data. How do you plan to address this?

Regards

Marcel



^ permalink raw reply

* Re: Read RSSI through Management Interface?
From: Gustavo F. Padovan @ 2011-04-21  1:18 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: BlueZ development, Marcel Holtmann, Johan Hedberg
In-Reply-To: <BANLkTinpSJeozeWCcYCBeQ=sxKU5SJSrSQ@mail.gmail.com>

Hi Claudio,

* Claudio Takahasi <claudio.takahasi@openbossa.org> [2011-04-20 19:20:57 -0300]:

> Hi guys,
> 
> we need to read the RSSI of LE and basic rate connections to implement
> the Proximity profile. RSSI included in the advertising packets can't
> be used for Proximity, it requires an "active" connection.
> 
> Here are some suggestions:
> 
> 1. Add a new command to mgmt interface to add a given address into a
> RSSI "monitoring list".
>    When the connection is established the kernel will automatically
> track the RSSI of the connection on regular intervals sending
> HCI_Read_RSSI. Read RSSI value can be reported through a new event in
> the management interface
> 
> Forgetting SMP, we can keep the hciops compatibility implementing the
> same logic inside the hciops plugin.

I'm against this in hciops. Let's add the new features only to mgmtopts, so we
force people to use it and deprecate hciops.

> 
> 2. Add a new command to mgmt interface to actively read the RSSI of a
> given connection/address

If the user use this in the wrong way it will waste power. Let's
do (1) and not give him this option to actively read RSSI.

-- 
Gustavo F. Padovan
http://profusion.mobi

^ permalink raw reply

* Announcement: Antidote, an IEEE 11073 library
From: Elvis Pfützenreuter @ 2011-04-21  1:09 UTC (permalink / raw)
  To: linux-bluetooth

Since the time we worked on BlueZ HDP support, we missed a free implementation
for the "upper part" of health protocol stack, namely the IEEE 11073-20601
standard.

Well, not anymore. Signove has released its implementation as free software:

http://oss.signove.com/index.php/Antidote_release_announcement

Antidote contains:

1) a library that can be statically or dynamically liked by any application that
needs to use the IEEE protocol;

2) a set of transport plug-ins that save the core library from most platform
dependencies. The most well-tested, by now, is the BlueZ HDP plugin. (Currently,
plug-ins are linked along with library.)

3) a sample health D-Bus service that allows applications to communicate with
health devices without having to link with Antidote library. This service is
perfectly functional and doubles as a complete example of how to use the
Antidote API.

License is LGPL.

^ permalink raw reply

* Re: pull request: bluetooth-2.6 2011-04-20
From: Gustavo F. Padovan @ 2011-04-21  1:00 UTC (permalink / raw)
  To: John W. Linville; +Cc: linux-wireless, linux-bluetooth
In-Reply-To: <20110421001836.GB2437@tuxdriver.com>

* John W. Linville <linville@tuxdriver.com> [2011-04-20 20:18:37 -0400]:

> On Wed, Apr 20, 2011 at 05:20:15PM -0300, Gustavo F. Padovan wrote:
> > Hi John,
> > 
> > * Gustavo F. Padovan <padovan@profusion.mobi> [2011-04-20 14:04:32 -0300]:
> > 
> > > Hi John,
> > > 
> > > Four small fixes for 2.6.39. An incorrect refcnt balance for hci connection by
> > > Ville Tervo, a warning fix in the command timer by Vinicius Gomes, an ERTM
> > > fix by Ruiyi Zhang, and SCO synchronization fix by Luiz Augusto von Dentz.
> > > 
> > > Please pull or let me know any problems. Thanks.
> > 
> > Hold on with the pull! I've found a merge conflict with -next. (I tested the
> > merge with --dry-run, but it doesn't check for check conflicts). I'll do the
> > right thing now and send a new pull request to you soon. 
> > 
> > Regards,
> > 
> > -- 
> > Gustavo F. Padovan
> > http://profusion.mobi
> 
> FWIW, I already did the pull into wireless-2.6 and pushed it out
> for some soak time.  If there is a merge conflict with -next, then
> please let me know how to fix it and I'll pull wireless-2.6 into
> wireless-next-2.6 as soon as possible to eliminate the conflict.

There was 3 conflicts. I fixed them by pulling wireless-2.6 into
bluetooth-next-2.6. Now you work is just have to pull my tree and everything
will be fine again. :-)
Here is the git pull-request output of what you are going to pull from
bluetooth-next-2.6. You are basically pulling wireless-2.6, I didn't add any 
new commit to the tree., it just wireless-2.6 with the conflict solved.

Thanks a lot!


The following changes since commit 73b48099cc265f88fa1255f3f43e52fe6a94fd5c:

  mac80211: explain padding in place of rate field (2011-04-19 15:40:09 -0400)

are available in the git repository at:
  master.kernel.org:/pub/scm/linux/kernel/git/padovan/bluetooth-next-2.6.git master

Daniel Halperin (1):
      iwlwifi: fix frame injection for HT channels

Felix Fietkau (3):
      ath9k: fix missing ath9k_ps_wakeup/ath9k_ps_restore calls
      ath9k_hw: fix stopping rx DMA during resets
      ath9k: fix the return value of ath_stoprecv

Gustavo F. Padovan (1):
      Merge master.kernel.org:/.../padovan/bluetooth-2.6

Jason Conti (1):
      p54: Initialize extra_len in p54_tx_80211

Johannes Berg (1):
      mac80211: fix SMPS debugfs locking

John W. Linville (2):
      iwlegacy: make iwl3945 and iwl4965 select IWLWIFI_LEGACY
      Merge branch 'master' of git://git.kernel.org/.../padovan/bluetooth-2.6

Luiz Augusto von Dentz (1):
      Bluetooth: fix shutdown on SCO sockets

Ruiyi Zhang (1):
      Bluetooth: Only keeping SAR bits when retransmitting one frame.

Stanislaw Gruszka (3):
      iwlegacy: fix tx_power initialization
      iwlwifi: fix skb usage after free
      iwl4965: fix skb usage after free

Sujith Manoharan (1):
      ath9k_htc: Fix ethtool reporting

Ville Tervo (1):
      Bluetooth: Fix refcount balance for hci connection

Vinicius Costa Gomes (1):
      Bluetooth: Fix keeping the command timer running

 drivers/atm/solos-pci.c                           |   39 +--
 drivers/connector/cn_queue.c                      |   58 +---
 drivers/connector/connector.c                     |   47 +--
 drivers/net/atlx/atl2.c                           |   22 +-
 drivers/net/bonding/bond_alb.h                    |    2 +-
 drivers/net/irda/via-ircc.c                       |   94 ++-----
 drivers/net/mlx4/eq.c                             |    4 +-
 drivers/net/mlx4/mcg.c                            |    7 +-
 drivers/net/phy/phy_device.c                      |    8 +-
 drivers/net/starfire.c                            |    6 +-
 drivers/net/usb/Kconfig                           |   15 +
 drivers/net/usb/Makefile                          |    1 +
 drivers/net/usb/cdc_eem.c                         |    2 +-
 drivers/net/usb/cdc_ether.c                       |   23 +-
 drivers/net/usb/cdc_ncm.c                         |    2 +-
 drivers/net/usb/cdc_subset.c                      |    8 +
 drivers/net/usb/gl620a.c                          |    2 +-
 drivers/net/usb/lg-vl600.c                        |  346 +++++++++++++++++++++
 drivers/net/usb/net1080.c                         |    2 +-
 drivers/net/usb/plusb.c                           |    2 +-
 drivers/net/usb/rndis_host.c                      |    2 +-
 drivers/net/usb/usbnet.c                          |   13 +-
 drivers/net/usb/zaurus.c                          |    8 +-
 drivers/net/wireless/ath/ath9k/hif_usb.c          |    4 +-
 drivers/net/wireless/ath/ath9k/hw.c               |   10 +-
 drivers/net/wireless/ath/ath9k/mac.c              |   25 ++-
 drivers/net/wireless/ath/ath9k/mac.h              |    2 +-
 drivers/net/wireless/ath/ath9k/main.c             |   16 +-
 drivers/net/wireless/ath/ath9k/recv.c             |    6 +-
 drivers/net/wireless/ath/carl9170/carl9170.h      |    1 +
 drivers/net/wireless/ath/carl9170/main.c          |    1 +
 drivers/net/wireless/ath/carl9170/tx.c            |    7 +
 drivers/net/wireless/ath/regd_common.h            |    1 +
 drivers/net/wireless/b43/dma.c                    |    2 +-
 drivers/net/wireless/b43/dma.h                    |    2 +-
 drivers/net/wireless/iwlegacy/Kconfig             |    9 +-
 drivers/net/wireless/iwlegacy/iwl-3945-hw.h       |    2 -
 drivers/net/wireless/iwlegacy/iwl-4965-hw.h       |    3 -
 drivers/net/wireless/iwlegacy/iwl-4965-tx.c       |   10 +-
 drivers/net/wireless/iwlegacy/iwl-core.c          |   27 ++-
 drivers/net/wireless/iwlegacy/iwl-eeprom.c        |    7 -
 drivers/net/wireless/iwlegacy/iwl3945-base.c      |   11 +-
 drivers/net/wireless/iwlegacy/iwl4965-base.c      |    6 -
 drivers/net/wireless/iwlwifi/iwl-5000.c           |    3 +
 drivers/net/wireless/iwlwifi/iwl-agn-rxon.c       |    7 +-
 drivers/net/wireless/iwlwifi/iwl-agn-tx.c         |   10 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom.h         |    2 +-
 drivers/net/wireless/mwl8k.c                      |    9 +-
 drivers/net/wireless/p54/p54usb.c                 |    2 +
 drivers/net/wireless/p54/txrx.c                   |    2 +-
 drivers/net/wireless/rt2x00/rt2800usb.c           |   10 +-
 drivers/net/wireless/rt2x00/rt2x00dev.c           |    6 +-
 drivers/net/wireless/rtlwifi/efuse.c              |    2 +-
 drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c |    2 +-
 drivers/net/wireless/rtlwifi/usb.c                |    2 +-
 drivers/net/wireless/wl12xx/sdio.c                |    2 +-
 drivers/net/wireless/wl12xx/spi.c                 |    2 +-
 drivers/net/wireless/wl12xx/testmode.c            |    5 +-
 drivers/net/wireless/zd1211rw/zd_usb.c            |   20 +-
 drivers/net/wireless/zd1211rw/zd_usb.h            |    1 +
 include/linux/atmdev.h                            |    1 +
 include/linux/connector.h                         |   16 +-
 include/linux/netdevice.h                         |    4 +-
 include/linux/skbuff.h                            |    2 +-
 include/linux/usb/usbnet.h                        |    5 +
 include/net/if_inet6.h                            |   16 +
 include/net/ip.h                                  |    8 +
 include/net/mac80211.h                            |   15 +-
 include/net/sctp/structs.h                        |    2 +-
 net/appletalk/ddp.c                               |   11 +-
 net/atm/common.c                                  |    1 +
 net/bluetooth/hci_core.c                          |    1 +
 net/bluetooth/hci_event.c                         |    2 -
 net/bluetooth/l2cap_core.c                        |    1 +
 net/bluetooth/sco.c                               |    9 +
 net/bridge/br_multicast.c                         |    2 +-
 net/bridge/br_stp_if.c                            |    2 +-
 net/core/dev.c                                    |   24 ++-
 net/ipv4/arp.c                                    |    3 +
 net/ipv4/fib_frontend.c                           |    2 +
 net/ipv4/tcp_output.c                             |    3 +-
 net/ipv6/ndisc.c                                  |    2 +
 net/mac80211/cfg.c                                |    2 +
 net/mac80211/debugfs_netdev.c                     |    4 +-
 net/mac80211/key.c                                |    7 +-
 net/mac80211/rc80211_minstrel_ht.c                |   25 +-
 net/mac80211/rx.c                                 |    5 +-
 net/sctp/protocol.c                               |    4 +-
 net/sctp/sm_make_chunk.c                          |    4 +-
 net/wireless/scan.c                               |   31 ++-
 90 files changed, 803 insertions(+), 363 deletions(-)
 create mode 100644 drivers/net/usb/lg-vl600.c

-- 
Gustavo F. Padovan
http://profusion.mobi

^ permalink raw reply

* Re: pull request: bluetooth-2.6 2011-04-20
From: John W. Linville @ 2011-04-21  0:18 UTC (permalink / raw)
  To: linux-wireless, linux-bluetooth
In-Reply-To: <20110420202015.GA2311@joana>

On Wed, Apr 20, 2011 at 05:20:15PM -0300, Gustavo F. Padovan wrote:
> Hi John,
> 
> * Gustavo F. Padovan <padovan@profusion.mobi> [2011-04-20 14:04:32 -0300]:
> 
> > Hi John,
> > 
> > Four small fixes for 2.6.39. An incorrect refcnt balance for hci connection by
> > Ville Tervo, a warning fix in the command timer by Vinicius Gomes, an ERTM
> > fix by Ruiyi Zhang, and SCO synchronization fix by Luiz Augusto von Dentz.
> > 
> > Please pull or let me know any problems. Thanks.
> 
> Hold on with the pull! I've found a merge conflict with -next. (I tested the
> merge with --dry-run, but it doesn't check for check conflicts). I'll do the
> right thing now and send a new pull request to you soon. 
> 
> Regards,
> 
> -- 
> Gustavo F. Padovan
> http://profusion.mobi

FWIW, I already did the pull into wireless-2.6 and pushed it out
for some soak time.  If there is a merge conflict with -next, then
please let me know how to fix it and I'll pull wireless-2.6 into
wireless-next-2.6 as soon as possible to eliminate the conflict.

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply

* Read RSSI through Management Interface?
From: Claudio Takahasi @ 2011-04-20 22:20 UTC (permalink / raw)
  To: BlueZ development, Marcel Holtmann, Gustavo F. Padovan,
	Johan Hedberg

Hi guys,

we need to read the RSSI of LE and basic rate connections to implement
the Proximity profile. RSSI included in the advertising packets can't
be used for Proximity, it requires an "active" connection.

Here are some suggestions:

1. Add a new command to mgmt interface to add a given address into a
RSSI "monitoring list".
   When the connection is established the kernel will automatically
track the RSSI of the connection on regular intervals sending
HCI_Read_RSSI. Read RSSI value can be reported through a new event in
the management interface

Forgetting SMP, we can keep the hciops compatibility implementing the
same logic inside the hciops plugin.

2. Add a new command to mgmt interface to actively read the RSSI of a
given connection/address

Approach (1) seems to be more feasible: address multiple address
asynchronously. In my opinion, approach(2) will not be transparent
enough to our use cases.

Any other idea?

Cheers,
Claudio.

^ permalink raw reply

* [PATCH] Cleanup of device class update signal
From: Sheldon Demario @ 2011-04-20 21:42 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Sheldon Demario

Adds a new device function to address the PropertyChanged
signal when the device's class changes. event.c file should
avoid sending signals that belongs to device objects.
---
 src/device.c |    8 ++++++++
 src/device.h |    1 +
 src/event.c  |    9 ++-------
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/device.c b/src/device.c
index e5451e8..bacd2c0 100644
--- a/src/device.c
+++ b/src/device.c
@@ -2445,3 +2445,11 @@ void btd_device_unref(struct btd_device *device)
 
 	g_free(path);
 }
+
+void device_set_class(struct btd_device *device, uint32_t value)
+{
+	DBusConnection *conn = get_dbus_connection();
+
+	emit_property_changed(conn, device->path, DEVICE_INTERFACE, "Class",
+				DBUS_TYPE_UINT32, &value);
+}
diff --git a/src/device.h b/src/device.h
index d59b8eb..ad7350a 100644
--- a/src/device.h
+++ b/src/device.h
@@ -99,6 +99,7 @@ guint device_add_disconnect_watch(struct btd_device *device,
 				disconnect_watch watch, void *user_data,
 				GDestroyNotify destroy);
 void device_remove_disconnect_watch(struct btd_device *device, guint id);
+void device_set_class(struct btd_device *device, uint32_t value);
 
 #define BTD_UUIDS(args...) ((const char *[]) { args, NULL } )
 
diff --git a/src/event.c b/src/event.c
index d52edf3..587f16f 100644
--- a/src/event.c
+++ b/src/event.c
@@ -540,11 +540,9 @@ void btd_event_set_legacy_pairing(bdaddr_t *local, bdaddr_t *peer,
 
 void btd_event_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class)
 {
-	uint32_t old_class = 0;
 	struct btd_adapter *adapter;
 	struct btd_device *device;
-	const gchar *dev_path;
-	DBusConnection *conn = get_dbus_connection();
+	uint32_t old_class = 0;
 
 	read_remote_class(local, peer, &old_class);
 
@@ -559,10 +557,7 @@ void btd_event_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class)
 	if (!device)
 		return;
 
-	dev_path = device_get_path(device);
-
-	emit_property_changed(conn, dev_path, DEVICE_INTERFACE, "Class",
-				DBUS_TYPE_UINT32, &class);
+	device_set_class(device, class);
 }
 
 void btd_event_remote_name(bdaddr_t *local, bdaddr_t *peer, uint8_t status,
-- 
1.7.1


^ permalink raw reply related

* Re: pull request: bluetooth-2.6 2011-04-20
From: Gustavo F. Padovan @ 2011-04-20 20:20 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, linux-bluetooth
In-Reply-To: <20110420170432.GA2301@joana>

Hi John,

* Gustavo F. Padovan <padovan@profusion.mobi> [2011-04-20 14:04:32 -0300]:

> Hi John,
> 
> Four small fixes for 2.6.39. An incorrect refcnt balance for hci connection by
> Ville Tervo, a warning fix in the command timer by Vinicius Gomes, an ERTM
> fix by Ruiyi Zhang, and SCO synchronization fix by Luiz Augusto von Dentz.
> 
> Please pull or let me know any problems. Thanks.

Hold on with the pull! I've found a merge conflict with -next. (I tested the
merge with --dry-run, but it doesn't check for check conflicts). I'll do the
right thing now and send a new pull request to you soon. 

Regards,

-- 
Gustavo F. Padovan
http://profusion.mobi

^ permalink raw reply

* pull request: bluetooth-2.6 2011-04-20
From: Gustavo F. Padovan @ 2011-04-20 17:04 UTC (permalink / raw)
  To: linville; +Cc: linux-wireless, linux-bluetooth

Hi John,

Four small fixes for 2.6.39. An incorrect refcnt balance for hci connection by
Ville Tervo, a warning fix in the command timer by Vinicius Gomes, an ERTM
fix by Ruiyi Zhang, and SCO synchronization fix by Luiz Augusto von Dentz.

Please pull or let me know any problems. Thanks.


The following changes since commit 332704a51498a7e29aa92c19dc03f11f80b71bfe:

  iwlegacy: fix tx_power initialization (2011-04-13 15:09:53 -0400)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth-2.6.git master
                                                                                                     
Luiz Augusto von Dentz (1):                                                                          
      Bluetooth: fix shutdown on SCO sockets                                                         
                                                                                                     
Ruiyi Zhang (1):                                                                                     
      Bluetooth: Only keeping SAR bits when retransmitting one frame.                                
                                                                                                     
Ville Tervo (1):                                                                                     
      Bluetooth: Fix refcount balance for hci connection                                             
                                                                                                     
Vinicius Costa Gomes (1):                                                                            
      Bluetooth: Fix keeping the command timer running                                               

 net/bluetooth/hci_core.c   |    5 ++---
 net/bluetooth/hci_event.c  |    2 --
 net/bluetooth/l2cap_core.c |    1 +
 net/bluetooth/sco.c        |    9 +++++++++
 4 files changed, 12 insertions(+), 5 deletions(-)

-- 
Gustavo F. Padovan
http://profusion.mobi

^ permalink raw reply

* Re: [PATCH] Cleanup: remove header declared but not defined
From: Johan Hedberg @ 2011-04-20 16:40 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: linux-bluetooth
In-Reply-To: <1303305443-24135-2-git-send-email-claudio.takahasi@openbossa.org>

Hi Claudio,

On Wed, Apr 20, 2011, Claudio Takahasi wrote:
> ---
>  src/device.h |    4 ----
>  1 files changed, 0 insertions(+), 4 deletions(-)

This one has also been pushed, thanks.

Johan

^ permalink raw reply

* Re: [PATCH] Cleanup: remove unused structure
From: Johan Hedberg @ 2011-04-20 16:39 UTC (permalink / raw)
  To: Claudio Takahasi; +Cc: linux-bluetooth
In-Reply-To: <1303305443-24135-1-git-send-email-claudio.takahasi@openbossa.org>

Hi Claudio,

On Wed, Apr 20, 2011, Claudio Takahasi wrote:
> ---
>  src/adapter.c |    5 -----
>  1 files changed, 0 insertions(+), 5 deletions(-)

Pushed upstream. Thanks.

Johan

^ permalink raw reply

* Re: [PATCH 0/4] Remove deprecated fields from struct hci_dev
From: Johan Hedberg @ 2011-04-20 16:39 UTC (permalink / raw)
  To: Bruna Moreira; +Cc: linux-bluetooth
In-Reply-To: <1303245243-12116-1-git-send-email-bruna.moreira@openbossa.org>

Hi Bruna,

On Tue, Apr 19, 2011, Bruna Moreira wrote:
> These patches remove unused fields from struct hci_dev. The adapter name is
> moved to struct btd_adapter. The entire struct hci_dev will be gone once the
> device discovery logic is moved to the hciops/mgmtops plugin.
> 
> The last patch removes the read_local_version() from struct btd_adapter_ops. It
> was being used only by code which was removed, but we left it in a separate
> patch because we don't know if it is okay to remove it completely.
> 
> Note that no removed fields are used on D-Bus API nor internally.
> 
> Bruna Moreira (4):
>   Remove ssp_mode from struct hci_dev
>   Remove LMP/HCI version and manufacturer from struct hci_dev
>   Move adapter name from struct hci_dev to struct btd_adapter
>   Remove read_local_version() from struct btd_adapter_ops
> 
>  plugins/hciops.c  |   21 ---------------------
>  plugins/mgmtops.c |   18 ------------------
>  src/adapter.c     |   52 ++++++++++++++--------------------------------------
>  src/adapter.h     |    9 ---------
>  4 files changed, 14 insertions(+), 86 deletions(-)

All four patches have been pushed upstream. Thanks.

Johan

^ permalink raw reply

* [PATCH] Cleanup: remove header declared but not defined
From: Claudio Takahasi @ 2011-04-20 13:17 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi
In-Reply-To: <1303305443-24135-1-git-send-email-claudio.takahasi@openbossa.org>

---
 src/device.h |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/src/device.h b/src/device.h
index 370382d..d59b8eb 100644
--- a/src/device.h
+++ b/src/device.h
@@ -71,11 +71,7 @@ gboolean device_is_paired(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_temporary(struct btd_device *device, gboolean temporary);
-void device_set_cap(struct btd_device *device, uint8_t cap);
 void device_set_type(struct btd_device *device, device_type_t type);
-uint8_t device_get_cap(struct btd_device *device);
-void device_set_auth(struct btd_device *device, uint8_t auth);
-uint8_t device_get_auth(struct btd_device *device);
 gboolean device_is_connected(struct btd_device *device);
 DBusMessage *device_create_bonding(struct btd_device *device,
 				DBusConnection *conn, DBusMessage *msg,
-- 
1.7.5.rc1


^ permalink raw reply related

* [PATCH] Cleanup: remove unused structure
From: Claudio Takahasi @ 2011-04-20 13:17 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Claudio Takahasi

---
 src/adapter.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/src/adapter.c b/src/adapter.c
index dbc2c93..5ee6d7f 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1320,11 +1320,6 @@ static DBusMessage *adapter_stop_discovery(DBusConnection *conn,
 	return dbus_message_new_method_return(msg);
 }
 
-struct remote_device_list_t {
-	GSList *list;
-	time_t time;
-};
-
 static DBusMessage *get_properties(DBusConnection *conn,
 					DBusMessage *msg, void *data)
 {
-- 
1.7.5.rc1


^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox