summaryrefslogtreecommitdiff
path: root/monitor/l2cap.c
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2015-05-29 00:13:44 +0200
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-06-01 11:33:35 +0300
commitef6242970281932ec1bec328b62b0d957902c575 (patch)
tree0d3d67995a4c2e223cc7119c46bab321be248c41 /monitor/l2cap.c
parente1f8ee81067a6e63d41dc7441358302eddee471b (diff)
downloadbluez-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.c9
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 },
{ }
};