diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2015-05-29 00:13:44 +0200 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2015-06-01 11:33:35 +0300 |
commit | ef6242970281932ec1bec328b62b0d957902c575 (patch) | |
tree | 0d3d67995a4c2e223cc7119c46bab321be248c41 /monitor/l2cap.c | |
parent | e1f8ee81067a6e63d41dc7441358302eddee471b (diff) | |
download | bluez-ef6242970281932ec1bec328b62b0d957902c575.tar.gz |
monitor: Decode ATT Signed Write Command
Signed Write Command data is as follow:
Attribute Handle (2 octets)
Data (0 or more octets)
Signature (12 octets).
> ACL Data RX: Handle 64 flags 0x02 dlen 20
ATT: Signed Write Command (0xd2) len 15
Handle: 0x001f
Data: 00
Signature: 00000000df559de6549e1757
Diffstat (limited to 'monitor/l2cap.c')
-rw-r--r-- | monitor/l2cap.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/monitor/l2cap.c b/monitor/l2cap.c index 409f5f4e2..725a156df 100644 --- a/monitor/l2cap.c +++ b/monitor/l2cap.c @@ -2319,6 +2319,13 @@ static void att_write_command(const struct l2cap_frame *frame) print_hex_field(" Data", frame->data + 2, frame->size - 2); } +static void att_signed_write_command(const struct l2cap_frame *frame) +{ + print_field("Handle: 0x%4.4x", get_le16(frame->data)); + print_hex_field(" Data", frame->data + 2, frame->size - 2 - 12); + print_hex_field(" Signature", frame->data + frame->size - 12, 12); +} + struct att_opcode_data { uint8_t opcode; const char *str; @@ -2380,7 +2387,7 @@ static const struct att_opcode_data att_opcode_table[] = { att_handle_value_conf, 0, true }, { 0x52, "Write Command", att_write_command, 2, false }, - { 0xd2, "Signed Write Command" }, + { 0xd2, "Signed Write Command", att_signed_write_command, 14, false }, { } }; |