2024-01-31 08:19:25

by Frédéric Danis

[permalink] [raw]
Subject: [PATCH BlueZ v2 1/2] gatt-server: Add support for signed write command

GAP/SEC/CSIGN/BV-02-C request the ability to check that signed write has
been performed successfully.
---
src/shared/gatt-server.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/shared/gatt-server.c b/src/shared/gatt-server.c
index c7ce3ec1f..0e399ceb1 100644
--- a/src/shared/gatt-server.c
+++ b/src/shared/gatt-server.c
@@ -106,6 +106,7 @@ struct bt_gatt_server {
unsigned int read_multiple_vl_id;
unsigned int prep_write_id;
unsigned int exec_write_id;
+ unsigned int signed_write_cmd_id;

uint8_t min_enc_size;

@@ -155,6 +156,7 @@ static void bt_gatt_server_free(struct bt_gatt_server *server)
bt_att_unregister(server->att, server->read_multiple_vl_id);
bt_att_unregister(server->att, server->prep_write_id);
bt_att_unregister(server->att, server->exec_write_id);
+ bt_att_unregister(server->att, server->signed_write_cmd_id);

queue_destroy(server->prep_queue, prep_write_data_destroy);

@@ -777,7 +779,8 @@ static void write_complete_cb(struct gatt_db_attribute *attr, int err,
struct bt_gatt_server *server = op->server;
uint16_t handle;

- if (op->opcode == BT_ATT_OP_WRITE_CMD) {
+ if (op->opcode == BT_ATT_OP_WRITE_CMD ||
+ op->opcode == BT_ATT_OP_SIGNED_WRITE_CMD) {
async_write_op_destroy(op);
return;
}
@@ -1628,6 +1631,14 @@ static bool gatt_server_register_att_handlers(struct bt_gatt_server *server)
if (!server->exec_write_id)
return NULL;

+ /* Signed Write Command */
+ server->signed_write_cmd_id = bt_att_register(server->att,
+ BT_ATT_OP_SIGNED_WRITE_CMD,
+ write_cb,
+ server, NULL);
+ if (!server->signed_write_cmd_id)
+ return false;
+
return true;
}

--
2.34.1



2024-01-31 09:41:54

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,v2,1/2] gatt-server: Add support for signed write command

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=821585

---Test result---

Test Summary:
CheckPatch PASS 0.73 seconds
GitLint PASS 0.46 seconds
BuildEll PASS 24.15 seconds
BluezMake PASS 721.20 seconds
MakeCheck PASS 12.11 seconds
MakeDistcheck PASS 161.18 seconds
CheckValgrind PASS 226.24 seconds
CheckSmatch WARNING 329.55 seconds
bluezmakeextell PASS 106.90 seconds
IncrementalBuild PASS 1324.62 seconds
ScanBuild PASS 931.03 seconds

Details
##############################
Test: CheckSmatch - WARNING
Desc: Run smatch tool with source
Output:
src/shared/gatt-server.c:278:25: warning: Variable length array is used.src/shared/gatt-server.c:621:25: warning: Variable length array is used.src/shared/gatt-server.c:720:25: warning: Variable length array is used.src/shared/gatt-server.c:278:25: warning: Variable length array is used.src/shared/gatt-server.c:621:25: warning: Variable length array is used.src/shared/gatt-server.c:720:25: warning: Variable length array is used.src/shared/gatt-server.c:278:25: warning: Variable length array is used.src/shared/gatt-server.c:621:25: warning: Variable length array is used.src/shared/gatt-server.c:720:25: warning: Variable length array is used.


---
Regards,
Linux Bluetooth