Bluetooth: OTS: Unify object name size for client and server

Use Kconfig value for object name size also for client.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
This commit is contained in:
Asbjørn Sæbø 2022-02-04 14:54:19 +01:00 committed by Carles Cufí
commit 68745d87d5
3 changed files with 11 additions and 10 deletions

View file

@ -45,8 +45,6 @@ struct bt_date_time {
uint8_t seconds; uint8_t seconds;
}; };
#define BT_OTS_NAME_MAX_SIZE 120
#define BT_OTC_METADATA_REQ_NAME BIT(0) #define BT_OTC_METADATA_REQ_NAME BIT(0)
#define BT_OTC_METADATA_REQ_TYPE BIT(1) #define BT_OTC_METADATA_REQ_TYPE BIT(1)
#define BT_OTC_METADATA_REQ_SIZE BIT(2) #define BT_OTC_METADATA_REQ_SIZE BIT(2)
@ -91,7 +89,7 @@ struct bt_date_time {
/**@brief Metadata of an OTS Object */ /**@brief Metadata of an OTS Object */
struct bt_otc_obj_metadata { struct bt_otc_obj_metadata {
char name[BT_OTS_NAME_MAX_SIZE + 1]; char name[CONFIG_BT_OTS_OBJ_MAX_NAME_LEN + 1];
struct bt_ots_obj_type type_uuid; struct bt_ots_obj_type type_uuid;
uint32_t current_size; uint32_t current_size;
uint32_t alloc_size; uint32_t alloc_size;

View file

@ -59,11 +59,6 @@ config BT_OTS_OLCP_GO_TO_SUPPORT
bool "Support OLCP Go To Operation" bool "Support OLCP Go To Operation"
default y default y
config BT_OTS_OBJ_MAX_NAME_LEN
int "Maximum object name length"
default 120
range 1 120
config BT_OTS_OBJ_NAME_WRITE_SUPPORT config BT_OTS_OBJ_NAME_WRITE_SUPPORT
bool "Support object name write" bool "Support object name write"
@ -114,6 +109,14 @@ config BT_OTS_L2CAP_CHAN_RX_MTU
default BT_BUF_ACL_RX_SIZE default BT_BUF_ACL_RX_SIZE
range 21 BT_BUF_ACL_RX_SIZE range 21 BT_BUF_ACL_RX_SIZE
config BT_OTS_OBJ_MAX_NAME_LEN
int "Maximum object name length"
# Max name length allowed by OTS spec is 120 octets
# TODO: Set separate max name length for client, as other
# servers may use the full 120 octets.
default 120
range 1 120
module = BT_OTS module = BT_OTS
module-str = BT_OTS module-str = BT_OTS
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config" source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"

View file

@ -852,12 +852,12 @@ static uint8_t read_obj_name_cb(struct bt_conn *conn, uint8_t err,
} }
if (data) { if (data) {
if (length <= BT_OTS_NAME_MAX_SIZE) { if (length <= CONFIG_BT_OTS_OBJ_MAX_NAME_LEN) {
memcpy(inst->otc_inst->cur_object.name, data, length); memcpy(inst->otc_inst->cur_object.name, data, length);
inst->otc_inst->cur_object.name[length] = '\0'; inst->otc_inst->cur_object.name[length] = '\0';
} else { } else {
BT_WARN("Invalid length %u (expected max %u)", BT_WARN("Invalid length %u (expected max %u)",
length, BT_OTS_NAME_MAX_SIZE); length, CONFIG_BT_OTS_OBJ_MAX_NAME_LEN);
err = BT_ATT_ERR_INVALID_ATTRIBUTE_LEN; err = BT_ATT_ERR_INVALID_ATTRIBUTE_LEN;
} }
} }