2013-01-31 15:33:50

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 1/3] hcidump: Distinct Control and Browsing AVCTP channels

From: Luiz Augusto von Dentz <[email protected]>

This prints the respective channel of the trafic
---
tools/parser/avctp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/parser/avctp.c b/tools/parser/avctp.c
index 60a5f69..58b181d 100644
--- a/tools/parser/avctp.c
+++ b/tools/parser/avctp.c
@@ -60,7 +60,8 @@ void avctp_dump(int level, struct frame *frm, uint16_t psm)
hdr = get_u8(frm);
pid = get_u16(frm);

- printf("AVCTP: %s %s: pt 0x%02x transaction %d pid 0x%04x \n",
+ printf("AVCTP %s: %s %s: pt 0x%02x transaction %d pid 0x%04x\n",
+ psm == 23 ? "Control" : "Browsing",
hdr & 0x02 ? "Response" : "Command",
pt2str(hdr), hdr & 0x0c, hdr >> 4, pid);

--
1.8.1



2013-01-31 23:03:47

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ 1/3] hcidump: Distinct Control and Browsing AVCTP channels

Hi Vinicius,

On Thu, Jan 31, 2013 at 4:07 PM, Vinicius Costa Gomes
<[email protected]> wrote:
> Hi Luiz,
>
> On 09:33 Thu 31 Jan, Luiz Augusto von Dentz wrote:
>> From: Luiz Augusto von Dentz <[email protected]>
>>
>> This prints the respective channel of the trafic
>
> These (three?) series got all mixed in the list.
>
> Could you send them again?
>
>
> Cheers,
> --
> Vinicius

They are applied already, sorry for the mess.

--
Luiz Augusto von Dentz

2013-01-31 22:07:26

by Vinicius Costa Gomes

[permalink] [raw]
Subject: Re: [PATCH BlueZ 1/3] hcidump: Distinct Control and Browsing AVCTP channels

Hi Luiz,

On 09:33 Thu 31 Jan, Luiz Augusto von Dentz wrote:
> From: Luiz Augusto von Dentz <[email protected]>
>
> This prints the respective channel of the trafic

These (three?) series got all mixed in the list.

Could you send them again?


Cheers,
--
Vinicius

2013-01-31 15:33:53

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 2/2 v2] attrib: Don't attempt to unregister event id 0

From: Luiz Augusto von Dentz <[email protected]>

Id 0 is considered invalid so the code should not even try to lookup for
it in the event list instead print a warning and return FALSE
immediatelly.
---
attrib/gattrib.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/attrib/gattrib.c b/attrib/gattrib.c
index 58f19d0..01c19f9 100644
--- a/attrib/gattrib.c
+++ b/attrib/gattrib.c
@@ -719,6 +719,11 @@ gboolean g_attrib_unregister(GAttrib *attrib, guint id)
struct event *evt;
GSList *l;

+ if (id == 0) {
+ warn("%s: invalid id", __FUNCTION__);
+ return FALSE;
+ }
+
l = g_slist_find_custom(attrib->events, GUINT_TO_POINTER(id),
event_cmp_by_id);
if (l == NULL)
--
1.8.1


2013-01-31 15:33:55

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 2/2] tools: Fix mpris-player creating busname starting with digit

From: Luiz Augusto von Dentz <[email protected]>

D-Bus does not allow a bus name starting with digits after . so the code
now prefix with bt_ if the device name starts with a digit.
---
tools/mpris-player.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/mpris-player.c b/tools/mpris-player.c
index b82b5df..4dbde90 100644
--- a/tools/mpris-player.c
+++ b/tools/mpris-player.c
@@ -1381,7 +1381,11 @@ static const GDBusPropertyTable mpris_properties[] = {

static char *mpris_busname(char *name)
{
- return g_strconcat(MPRIS_BUS_NAME,
+ if (g_ascii_isdigit(name[0]))
+ return g_strconcat(MPRIS_BUS_NAME, "bt_",
+ g_strcanon(name, A_Z a_z _0_9, '_'), NULL);
+ else
+ return g_strconcat(MPRIS_BUS_NAME,
g_strcanon(name, A_Z a_z _0_9, '_'), NULL);
}

--
1.8.1


2013-01-31 15:33:54

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 2/3] hcidump: Fix parsing of GetCurrentPlayerApplicationSettingValue

From: Luiz Augusto von Dentz <[email protected]>

---
tools/parser/avrcp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/parser/avrcp.c b/tools/parser/avrcp.c
index 1d4a319..1029287 100644
--- a/tools/parser/avrcp.c
+++ b/tools/parser/avrcp.c
@@ -618,7 +618,7 @@ static void avrcp_get_current_player_value_dump(int level, struct frame *frm,

p_indent(level, frm);

- if (len < 2) {
+ if (len < 1) {
printf("PDU Malformed\n");
raw_dump(level, frm);
return;
--
1.8.1


2013-01-31 15:33:56

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 3/3] hcidump: Fix parsing of SetBrowsedPlayer

From: Luiz Augusto von Dentz <[email protected]>

---
tools/parser/avrcp.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/parser/avrcp.c b/tools/parser/avrcp.c
index 1029287..4d88b41 100644
--- a/tools/parser/avrcp.c
+++ b/tools/parser/avrcp.c
@@ -1294,7 +1294,7 @@ static void avrcp_set_browsed_player_dump(int level, struct frame *frm,
}

id = get_u16(frm);
- printf("PlayerID: 0x%04x (%u)", id, id);
+ printf("PlayerID: 0x%04x (%u)\n", id, id);
return;

response:
@@ -1313,12 +1313,12 @@ response:
p_indent(level, frm);

uids = get_u16(frm);
- printf("UIDCounter: 0x%04x (%u)", uids, uids);
+ printf("UIDCounter: 0x%04x (%u)\n", uids, uids);

p_indent(level, frm);

items = get_u32(frm);
- printf("Number of Items: 0x%04x (%u)", items, items);
+ printf("Number of Items: 0x%04x (%u)\n", items, items);

p_indent(level, frm);

@@ -1328,7 +1328,7 @@ response:
p_indent(level, frm);

folders = get_u8(frm);
- printf("Folder Depth: 0x%02x (%u)", folders, folders);
+ printf("Folder Depth: 0x%02x (%u)\n", folders, folders);

for (; folders > 0; folders--) {
uint16_t len;
--
1.8.1


2013-01-31 15:33:51

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 1/2 v2] thermometer: Fix crash while unregistering adapter

From: Luiz Augusto von Dentz <[email protected]>

Invalid read of size 8
at 0x448200: g_attrib_unregister (gattrib.c:722)
by 0x440476: destroy_thermometer (thermometer.c:167)
by 0x40D849: remove_interface (object.c:656)
by 0x40DAA9: g_dbus_unregister_interface (object.c:1413)
by 0x3DF7A63C9C: g_slist_foreach (gslist.c:894)
by 0x469656: device_remove (device.c:2200)
by 0x45CDC1: adapter_remove (adapter.c:3884)
by 0x45F146: index_removed (adapter.c:5442)
by 0x46BC17: received_data (mgmt.c:252)
by 0x3DF7A47A74: g_main_context_dispatch (gmain.c:2715)
by 0x3DF7A47DA7: g_main_context_iterate.isra.24 (gmain.c:3290)
by 0x3DF7A481A1: g_main_loop_run (gmain.c:3484)
Address 0x40 is not stack'd, malloc'd or (recently) free'd
---
v2: Print a warning if invalid id is passed to g_attrib_unregister

profiles/thermometer/thermometer.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/profiles/thermometer/thermometer.c b/profiles/thermometer/thermometer.c
index 0cf14e6..1b299e7 100644
--- a/profiles/thermometer/thermometer.c
+++ b/profiles/thermometer/thermometer.c
@@ -164,12 +164,12 @@ static void destroy_thermometer(gpointer user_data)
if (t->attioid > 0)
btd_device_remove_attio_callback(t->dev, t->attioid);

- g_attrib_unregister(t->attrib, t->attio_measurement_id);
- g_attrib_unregister(t->attrib, t->attio_intermediate_id);
- g_attrib_unregister(t->attrib, t->attio_interval_id);
-
- if (t->attrib != NULL)
+ if (t->attrib != NULL) {
+ g_attrib_unregister(t->attrib, t->attio_measurement_id);
+ g_attrib_unregister(t->attrib, t->attio_intermediate_id);
+ g_attrib_unregister(t->attrib, t->attio_interval_id);
g_attrib_unref(t->attrib);
+ }

btd_device_unref(t->dev);
g_free(t->svc_range);
--
1.8.1


2013-01-31 15:33:52

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 1/2] tools: Use device Alias instead of Name

From: Luiz Augusto von Dentz <[email protected]>

User may have set a different Name using Alias, Alias should always
be set.
---
tools/mpris-player.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/mpris-player.c b/tools/mpris-player.c
index aafa142..b82b5df 100644
--- a/tools/mpris-player.c
+++ b/tools/mpris-player.c
@@ -1422,7 +1422,7 @@ static void register_player(GDBusProxy *proxy)
if (device == NULL)
return;

- if (!g_dbus_proxy_get_property(device, "Name", &iter))
+ if (!g_dbus_proxy_get_property(device, "Alias", &iter))
return;

dbus_message_iter_get_basic(&iter, &name);
--
1.8.1


2013-01-28 22:39:08

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH BlueZ 1/2 v2] thermometer: Fix crash while unregistering adapter

Hi Luiz,

On Mon, Jan 28, 2013, Luiz Augusto von Dentz wrote:
> Invalid read of size 8
> at 0x448200: g_attrib_unregister (gattrib.c:722)
> by 0x440476: destroy_thermometer (thermometer.c:167)
> by 0x40D849: remove_interface (object.c:656)
> by 0x40DAA9: g_dbus_unregister_interface (object.c:1413)
> by 0x3DF7A63C9C: g_slist_foreach (gslist.c:894)
> by 0x469656: device_remove (device.c:2200)
> by 0x45CDC1: adapter_remove (adapter.c:3884)
> by 0x45F146: index_removed (adapter.c:5442)
> by 0x46BC17: received_data (mgmt.c:252)
> by 0x3DF7A47A74: g_main_context_dispatch (gmain.c:2715)
> by 0x3DF7A47DA7: g_main_context_iterate.isra.24 (gmain.c:3290)
> by 0x3DF7A481A1: g_main_loop_run (gmain.c:3484)
> Address 0x40 is not stack'd, malloc'd or (recently) free'd
> ---
> v2: Print a warning if invalid id is passed to g_attrib_unregister
>
> profiles/thermometer/thermometer.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)

Both patches have been applied. Thanks.

Johan