Re: [PATCH 3/5] android/gatt: Fix write commands being not handled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jakub,

On Mon, Dec 8, 2014 at 10:55 AM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> Hi Jakub,
>
> On Mon, Dec 8, 2014 at 10:22 AM, Jakub Tyszkowski
> <jakub.tyszkowski@xxxxxxxxx> wrote:
>> Registering for GATTRIB_ALL_REQS now means only requests and not commands
>> or other type of att operations. Those needs their own handlers to be
>> registered.
>
> Is this something we break while with the internal changes to use
> bt_gatt* internally? Maybe we should have it fixed there instead since
> it perhaps breaks the core daemon as well. Going forward this code
> will transition to use bt_gatt* directly.

Looks like this code is to blame:

opcode_match:

if (opcode == BT_ATT_ALL_REQUESTS &&
   get_op_type(test_opcode) == ATT_OP_TYPE_REQ)
return true;

Id say this turn BT_ATT_ALL_REQUESTS not that convenient for server
since, and looking at gatt-server.c you can clearly see how many
handlers we end up doing, perhaps we could something like this:

diff --git a/src/shared/att.c b/src/shared/att.c
index bc01827..3b52607 100644
--- a/src/shared/att.c
+++ b/src/shared/att.c
@@ -661,7 +661,7 @@ struct notify_data {
 static bool opcode_match(uint8_t opcode, uint8_t test_opcode)
 {
        if (opcode == BT_ATT_ALL_REQUESTS &&
-                                   get_op_type(test_opcode) == ATT_OP_TYPE_REQ)
+                                   get_op_type(test_opcode) != ATT_OP_TYPE_RSP)
                return true;

        return opcode == test_opcode;
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux