diff options
author | 2023-04-17 17:37:04 +0000 | |
---|---|---|
committer | 2023-04-17 17:38:01 +0000 | |
commit | e7d47a730bfa86e8c9c0db69d0616216d9c98339 (patch) | |
tree | dec774c2237334fd25284dce9c01e859b3db583d | |
parent | 0fd67b0064f078e729629933ca7b09fdd684d5c5 (diff) |
[Private GATT] Rename writable -> writable_with_response
Based on comments from aosp/2503097.
Test: unit
Bug: 274945531
Change-Id: I566daa99e5ba23faac4eb0c993b9e100919c1a9e
-rw-r--r-- | system/rust/src/gatt/ffi.rs | 13 | ||||
-rw-r--r-- | system/rust/src/gatt/server/att_database.rs | 6 | ||||
-rw-r--r-- | system/rust/src/gatt/server/gatt_database.rs | 30 | ||||
-rw-r--r-- | system/rust/src/gatt/server/services/gatt.rs | 7 | ||||
-rw-r--r-- | system/rust/src/gatt/server/test/test_att_db.rs | 4 | ||||
-rw-r--r-- | system/rust/src/gatt/server/transactions/write_request.rs | 2 | ||||
-rw-r--r-- | system/rust/tests/gatt_server_test.rs | 4 |
7 files changed, 38 insertions, 28 deletions
diff --git a/system/rust/src/gatt/ffi.rs b/system/rust/src/gatt/ffi.rs index 3ab639cfa8..cae198dd05 100644 --- a/system/rust/src/gatt/ffi.rs +++ b/system/rust/src/gatt/ffi.rs @@ -328,7 +328,7 @@ fn consume_descriptors<'a>( { let mut att_permissions = AttPermissions::empty(); att_permissions.set(AttPermissions::READABLE, permissions & 0x01 != 0); - att_permissions.set(AttPermissions::WRITABLE, permissions & 0x10 != 0); + att_permissions.set(AttPermissions::WRITABLE_WITH_RESPONSE, permissions & 0x10 != 0); out.push(GattDescriptorWithHandle { handle: AttHandle(*attribute_handle), @@ -638,7 +638,7 @@ mod test { ]) .unwrap(); - assert_eq!(service.characteristics[0].permissions, AttPermissions::WRITABLE); + assert_eq!(service.characteristics[0].permissions, AttPermissions::WRITABLE_WITH_RESPONSE); } #[test] @@ -651,7 +651,7 @@ mod test { assert_eq!( service.characteristics[0].permissions, - AttPermissions::READABLE | AttPermissions::WRITABLE + AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE ); } @@ -684,10 +684,13 @@ mod test { .unwrap(); assert_eq!(service.characteristics[0].descriptors[0].permissions, AttPermissions::READABLE); - assert_eq!(service.characteristics[0].descriptors[1].permissions, AttPermissions::WRITABLE); + assert_eq!( + service.characteristics[0].descriptors[1].permissions, + AttPermissions::WRITABLE_WITH_RESPONSE + ); assert_eq!( service.characteristics[0].descriptors[2].permissions, - AttPermissions::READABLE | AttPermissions::WRITABLE + AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE ); } diff --git a/system/rust/src/gatt/server/att_database.rs b/system/rust/src/gatt/server/att_database.rs index 10274e896a..db2d731882 100644 --- a/system/rust/src/gatt/server/att_database.rs +++ b/system/rust/src/gatt/server/att_database.rs @@ -40,7 +40,7 @@ bitflags! { /// Attribute can be written to using WRITE_CMD const WRITABLE_WITHOUT_RESPONSE = 0x04; /// Attribute can be written to using WRITE_REQ - const WRITABLE = 0x08; + const WRITABLE_WITH_RESPONSE = 0x08; /// Attribute value may be sent using indications const INDICATE = 0x20; } @@ -52,8 +52,8 @@ impl AttPermissions { self.contains(AttPermissions::READABLE) } /// Attribute can be written to using WRITE_REQ - pub fn writable(&self) -> bool { - self.contains(AttPermissions::WRITABLE) + pub fn writable_with_response(&self) -> bool { + self.contains(AttPermissions::WRITABLE_WITH_RESPONSE) } /// Attribute can be written to using WRITE_CMD pub fn writable_without_response(&self) -> bool { diff --git a/system/rust/src/gatt/server/gatt_database.rs b/system/rust/src/gatt/server/gatt_database.rs index 7c0c34758a..7702d22f77 100644 --- a/system/rust/src/gatt/server/gatt_database.rs +++ b/system/rust/src/gatt/server/gatt_database.rs @@ -215,7 +215,7 @@ impl GattDatabase { .permissions .writable_without_response() .into(), - write: characteristic.permissions.writable().into(), + write: characteristic.permissions.writable_with_response().into(), notify: 0, indicate: characteristic.permissions.indicate().into(), authenticated_signed_writes: 0, @@ -399,7 +399,7 @@ impl AttDatabase for AttDatabaseImpl { let Some(attr) = services.attributes.get(&handle) else { return Err(AttErrorCode::INVALID_HANDLE); }; - if !attr.attribute.permissions.writable() { + if !attr.attribute.permissions.writable_with_response() { return Err(AttErrorCode::WRITE_NOT_PERMITTED); } Ok(attr.value.clone()) @@ -682,7 +682,7 @@ mod test { handle: CHARACTERISTIC_VALUE_HANDLE, type_: CHARACTERISTIC_TYPE, permissions: AttPermissions::READABLE - | AttPermissions::WRITABLE + | AttPermissions::WRITABLE_WITH_RESPONSE | AttPermissions::INDICATE, descriptors: vec![], }], @@ -712,7 +712,7 @@ mod test { handle: CHARACTERISTIC_VALUE_HANDLE, type_: CHARACTERISTIC_TYPE, permissions: AttPermissions::READABLE - | AttPermissions::WRITABLE + | AttPermissions::WRITABLE_WITH_RESPONSE | AttPermissions::INDICATE } ); @@ -871,7 +871,7 @@ mod test { characteristics: vec![GattCharacteristicWithHandle { handle: SERVICE_HANDLE, type_: CHARACTERISTIC_TYPE, - permissions: AttPermissions::WRITABLE, + permissions: AttPermissions::WRITABLE_WITH_RESPONSE, descriptors: vec![], }], }, @@ -923,7 +923,7 @@ mod test { characteristics: vec![GattCharacteristicWithHandle { handle: CHARACTERISTIC_VALUE_HANDLE, type_: CHARACTERISTIC_TYPE, - permissions: AttPermissions::WRITABLE, + permissions: AttPermissions::WRITABLE_WITH_RESPONSE, descriptors: vec![], }], }, @@ -977,7 +977,7 @@ mod test { characteristics: vec![GattCharacteristicWithHandle { handle: CHARACTERISTIC_VALUE_HANDLE, type_: CHARACTERISTIC_TYPE, - permissions: AttPermissions::WRITABLE, + permissions: AttPermissions::WRITABLE_WITH_RESPONSE, descriptors: vec![], }], }, @@ -1102,7 +1102,7 @@ mod test { descriptors: vec![GattDescriptorWithHandle { handle: DESCRIPTOR_HANDLE, type_: DESCRIPTOR_TYPE, - permissions: AttPermissions::WRITABLE, + permissions: AttPermissions::WRITABLE_WITH_RESPONSE, }], }], }, @@ -1163,13 +1163,13 @@ mod test { GattDescriptorWithHandle { handle: AttHandle(7), type_: DESCRIPTOR_TYPE, - permissions: AttPermissions::WRITABLE, + permissions: AttPermissions::WRITABLE_WITH_RESPONSE, }, GattDescriptorWithHandle { handle: AttHandle(8), type_: DESCRIPTOR_TYPE, permissions: AttPermissions::READABLE - | AttPermissions::WRITABLE, + | AttPermissions::WRITABLE_WITH_RESPONSE, }, ], }, @@ -1198,8 +1198,11 @@ mod test { assert_eq!(attributes[7].handle, AttHandle(8)); // assert: check the permissions of the descriptors are correct assert_eq!(attributes[3].permissions, AttPermissions::READABLE); - assert_eq!(attributes[6].permissions, AttPermissions::WRITABLE); - assert_eq!(attributes[7].permissions, AttPermissions::READABLE | AttPermissions::WRITABLE); + assert_eq!(attributes[6].permissions, AttPermissions::WRITABLE_WITH_RESPONSE); + assert_eq!( + attributes[7].permissions, + AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE + ); } #[test] @@ -1530,7 +1533,8 @@ mod test { characteristics: vec![GattCharacteristicWithHandle { handle: CHARACTERISTIC_VALUE_HANDLE, type_: CHARACTERISTIC_TYPE, - permissions: AttPermissions::READABLE | AttPermissions::WRITABLE, + permissions: AttPermissions::READABLE + | AttPermissions::WRITABLE_WITH_RESPONSE, descriptors: vec![], }], }, diff --git a/system/rust/src/gatt/server/services/gatt.rs b/system/rust/src/gatt/server/services/gatt.rs index 97fdefcfa6..eb3ba477db 100644 --- a/system/rust/src/gatt/server/services/gatt.rs +++ b/system/rust/src/gatt/server/services/gatt.rs @@ -164,7 +164,7 @@ pub fn register_gatt_service(database: &mut GattDatabase) -> Result<()> { descriptors: vec![GattDescriptorWithHandle { handle: SERVICE_CHANGE_CCC_DESCRIPTOR_HANDLE, type_: CLIENT_CHARACTERISTIC_CONFIGURATION_UUID, - permissions: AttPermissions::READABLE | AttPermissions::WRITABLE, + permissions: AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE, }], }], }, @@ -245,7 +245,10 @@ mod test { assert_eq!(attrs[3].type_, CLIENT_CHARACTERISTIC_CONFIGURATION_UUID); // assert: permissions of value attrs are correct assert_eq!(attrs[2].permissions, AttPermissions::INDICATE); - assert_eq!(attrs[3].permissions, AttPermissions::READABLE | AttPermissions::WRITABLE); + assert_eq!( + attrs[3].permissions, + AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE + ); } #[test] diff --git a/system/rust/src/gatt/server/test/test_att_db.rs b/system/rust/src/gatt/server/test/test_att_db.rs index 20642b3a8b..45b82dcfa9 100644 --- a/system/rust/src/gatt/server/test/test_att_db.rs +++ b/system/rust/src/gatt/server/test/test_att_db.rs @@ -62,7 +62,7 @@ impl AttDatabase for TestAttDatabase { ) -> Result<(), AttErrorCode> { match self.attributes.get(&handle) { Some(TestAttributeWithData { attribute: AttAttribute { permissions, .. }, .. }) - if !permissions.writable() => + if !permissions.writable_with_response() => { Err(AttErrorCode::WRITE_NOT_PERMITTED) } @@ -78,7 +78,7 @@ impl AttDatabase for TestAttDatabase { Some(TestAttributeWithData { attribute: AttAttribute { permissions, .. }, data: data_cell, - }) if !permissions.writable() => { + }) if !permissions.writable_with_response() => { data_cell.replace(data.get_raw_payload().collect()); } _ => { diff --git a/system/rust/src/gatt/server/transactions/write_request.rs b/system/rust/src/gatt/server/transactions/write_request.rs index a82b88eeac..325b9b7373 100644 --- a/system/rust/src/gatt/server/transactions/write_request.rs +++ b/system/rust/src/gatt/server/transactions/write_request.rs @@ -51,7 +51,7 @@ mod test { AttAttribute { handle: AttHandle(1), type_: Uuid::new(0x1234), - permissions: AttPermissions::READABLE | AttPermissions::WRITABLE, + permissions: AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE, }, vec![], )]); diff --git a/system/rust/tests/gatt_server_test.rs b/system/rust/tests/gatt_server_test.rs index f5f1068911..5914ed8d19 100644 --- a/system/rust/tests/gatt_server_test.rs +++ b/system/rust/tests/gatt_server_test.rs @@ -87,12 +87,12 @@ fn create_server_and_open_connection( handle: CHARACTERISTIC_HANDLE, type_: CHARACTERISTIC_TYPE, permissions: AttPermissions::READABLE - | AttPermissions::WRITABLE + | AttPermissions::WRITABLE_WITH_RESPONSE | AttPermissions::INDICATE, descriptors: vec![GattDescriptorWithHandle { handle: DESCRIPTOR_HANDLE, type_: DESCRIPTOR_TYPE, - permissions: AttPermissions::READABLE | AttPermissions::WRITABLE, + permissions: AttPermissions::READABLE | AttPermissions::WRITABLE_WITH_RESPONSE, }], }], }, |