* [PATCH BlueZ] src/gatt-client: always check properties in WriteValue
@ 2020-04-26 1:19 David Lechner
2020-04-26 2:06 ` [BlueZ] " bluez.test.bot
0 siblings, 1 reply; 2+ messages in thread
From: David Lechner @ 2020-04-26 1:19 UTC (permalink / raw)
To: linux-bluetooth; +Cc: David Lechner
This modifies the GATT client characteristic WriteValue D-Bus method to
always check that the characteristic supports the requested type of
write by checking for the corresponding property before attempting to
write.
Before this change, if the "type" option was used and it was set to
"reliable" or "request", then BlueZ would attempt the write even if the
characteristic does not support that write type. On the other hand, if
"type" was set to "command" or was not specified, the method would
return a org.bluez.Error.NotSupported error without attempting to write.
After this change, the WriteValue method will consistently return
org.bluez.Error.NotSupported if the corresponding property flag is not
set for all types of writes.
---
src/gatt-client.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/gatt-client.c b/src/gatt-client.c
index a9bfc2802..0bfcfa692 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
@@ -1016,8 +1016,8 @@ static DBusMessage *characteristic_write_value(DBusConnection *conn,
* - If value is larger than MTU - 3: long-write
* * "write-without-response" property set -> write command.
*/
- if ((!type && (chrc->ext_props & BT_GATT_CHRC_EXT_PROP_RELIABLE_WRITE))
- || (type && !strcasecmp(type, "reliable"))) {
+ if ((!type || (type && !strcasecmp(type, "reliable"))) &&
+ chrc->ext_props & BT_GATT_CHRC_EXT_PROP_RELIABLE_WRITE) {
supported = true;
chrc->write_op = start_long_write(msg, chrc->value_handle, gatt,
true, value, value_len, offset,
@@ -1026,8 +1026,8 @@ static DBusMessage *characteristic_write_value(DBusConnection *conn,
return NULL;
}
- if ((!type && chrc->props & BT_GATT_CHRC_PROP_WRITE) ||
- (type && !strcasecmp(type, "request"))) {
+ if ((!type || (type && !strcasecmp(type, "request"))) &&
+ chrc->props & BT_GATT_CHRC_PROP_WRITE) {
uint16_t mtu;
supported = true;
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* RE: [BlueZ] src/gatt-client: always check properties in WriteValue
2020-04-26 1:19 [PATCH BlueZ] src/gatt-client: always check properties in WriteValue David Lechner
@ 2020-04-26 2:06 ` bluez.test.bot
0 siblings, 0 replies; 2+ messages in thread
From: bluez.test.bot @ 2020-04-26 2:06 UTC (permalink / raw)
To: linux-bluetooth, david
[-- Attachment #1: Type: text/plain, Size: 1124 bytes --]
This is automated email and please do not replay to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
While we are preparing for reviewing the patches, we found the following
issue/warning.
Test Result:
Checkpatch Failed
Patch Title:
[BlueZ] src/gatt-client: always check properties in WriteValue
Output:
WARNING:LONG_LINE: line over 80 characters
#32: FILE: src/gatt-client.c:1020:
+ chrc->ext_props & BT_GATT_CHRC_EXT_PROP_RELIABLE_WRITE) {
- total: 0 errors, 1 warnings, 20 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
Your patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPLIT_STRING
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
For more details about BlueZ coding style guide, please find it
in doc/coding-style.txt
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-04-26 2:06 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-26 1:19 [PATCH BlueZ] src/gatt-client: always check properties in WriteValue David Lechner
2020-04-26 2:06 ` [BlueZ] " bluez.test.bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).