mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-11-01 01:56:10 +00:00
NimBLE: Added support for writing data more than BLE_ATT_ATTR_MAX_LEN
This commit is contained in:
@@ -799,10 +799,17 @@ ble_att_clt_tx_prep_write(uint16_t conn_handle, uint16_t cid, uint16_t handle,
|
||||
goto err;
|
||||
}
|
||||
|
||||
#if MYNEWT_VAL(BLE_GATT_BLOB_TRANSFER)
|
||||
if (OS_MBUF_PKTLEN(txom) > BLE_ATT_ATTR_MAX_LEN) {
|
||||
rc = BLE_HS_EINVAL;
|
||||
goto err;
|
||||
}
|
||||
#else
|
||||
if (offset + OS_MBUF_PKTLEN(txom) > BLE_ATT_ATTR_MAX_LEN) {
|
||||
rc = BLE_HS_EINVAL;
|
||||
goto err;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (OS_MBUF_PKTLEN(txom) >
|
||||
ble_att_mtu_by_cid(conn_handle, cid) - BLE_ATT_PREP_WRITE_CMD_BASE_SZ) {
|
||||
|
||||
@@ -2348,12 +2348,13 @@ ble_att_svr_prep_validate(struct ble_att_prep_entry_list *prep_list,
|
||||
}
|
||||
}
|
||||
|
||||
#if !MYNEWT_VAL(BLE_GATT_BLOB_TRANSFER)
|
||||
cur_len = entry->bape_offset + OS_MBUF_PKTLEN(entry->bape_value);
|
||||
if (cur_len > BLE_ATT_ATTR_MAX_LEN) {
|
||||
*err_handle = entry->bape_handle;
|
||||
return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN;
|
||||
}
|
||||
|
||||
#endif
|
||||
prev = entry;
|
||||
}
|
||||
|
||||
|
||||
@@ -141,6 +141,10 @@ syscfg.defs:
|
||||
description: >
|
||||
This enables LE Connection Subrating feature
|
||||
value: 0
|
||||
BLE_GATT_BLOB_TRANSFER:
|
||||
description: >
|
||||
This enables write blob feature
|
||||
value: 1
|
||||
|
||||
BLE_PHY_2M:
|
||||
description: >
|
||||
|
||||
@@ -955,6 +955,10 @@
|
||||
#define MYNEWT_VAL_BLE_GATT_WRITE_RELIABLE (MYNEWT_VAL_BLE_ROLE_CENTRAL)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER
|
||||
#define MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER (0)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_HOST
|
||||
#define MYNEWT_VAL_BLE_HOST (1)
|
||||
#endif
|
||||
|
||||
@@ -955,6 +955,10 @@
|
||||
#define MYNEWT_VAL_BLE_GATT_WRITE_RELIABLE (MYNEWT_VAL_BLE_ROLE_CENTRAL)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER
|
||||
#define MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER (0)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_HOST
|
||||
#define MYNEWT_VAL_BLE_HOST (1)
|
||||
#endif
|
||||
|
||||
@@ -955,6 +955,10 @@
|
||||
#define MYNEWT_VAL_BLE_GATT_WRITE_RELIABLE (MYNEWT_VAL_BLE_ROLE_CENTRAL)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER
|
||||
#define MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER (0)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_HOST
|
||||
#define MYNEWT_VAL_BLE_HOST (1)
|
||||
#endif
|
||||
|
||||
@@ -908,6 +908,10 @@
|
||||
#define MYNEWT_VAL_BLE_GATT_WRITE_RELIABLE (MYNEWT_VAL_BLE_ROLE_CENTRAL)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER
|
||||
#define MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER (0)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_HOST
|
||||
#define MYNEWT_VAL_BLE_HOST (1)
|
||||
#endif
|
||||
|
||||
@@ -1751,6 +1751,10 @@
|
||||
#define MYNEWT_VAL_BLE_GAP_MAX_PENDING_CONN_PARAM_UPDATE (1)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER
|
||||
#define MYNEWT_VAL_BLE_GATT_BLOB_TRANSFER (0)
|
||||
#endif
|
||||
|
||||
#ifndef MYNEWT_VAL_BLE_GATT_DISC_ALL_CHRS
|
||||
#define MYNEWT_VAL_BLE_GATT_DISC_ALL_CHRS (MYNEWT_VAL_BLE_ROLE_CENTRAL)
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user