Skip to content

Commit 46dc15e

Browse files
authored
Merge pull request #10302 from paul-szczepanek-arm/fix-service-order
BLE: force mandatory services to have lowest handles
2 parents d1da622 + 20d6cd9 commit 46dc15e

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

features/FEATURE_BLE/targets/TARGET_CORDIO/CordioGattServer.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ class GattServer : public ::ble::interface::GattServer<GattServer>,
185185

186186

187187
private:
188+
void add_default_services();
189+
188190
static uint16_t compute_attributes_count(GattService& service);
189191

190192
void insert_service_attribute(
@@ -280,6 +282,8 @@ class GattServer : public ::ble::interface::GattServer<GattServer>,
280282

281283
uint16_t currentHandle;
282284

285+
bool default_services_added;
286+
283287
private:
284288
GattServer();
285289

features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioGattServer.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,21 @@ void GattServer::initialize()
7171
#if BLE_FEATURE_SECURITY
7272
AttsAuthorRegister(atts_auth_cb);
7373
#endif
74-
add_generic_access_service();
75-
add_generic_attribute_service();
74+
add_default_services();
75+
}
76+
77+
void GattServer::add_default_services()
78+
{
79+
if (!default_services_added) {
80+
default_services_added = true;
81+
add_generic_access_service();
82+
add_generic_attribute_service();
83+
}
7684
}
7785

7886
ble_error_t GattServer::addService_(GattService &service)
7987
{
88+
add_default_services();
8089
// create and fill the service structure
8190
internal_service_t *att_service = new internal_service_t;
8291
att_service->attGroup.pNext = NULL;
@@ -1344,7 +1353,8 @@ GattServer::GattServer() :
13441353
generic_attribute_service(),
13451354
registered_service(NULL),
13461355
allocated_blocks(NULL),
1347-
currentHandle(0)
1356+
currentHandle(0),
1357+
default_services_added(false)
13481358
{
13491359
}
13501360

0 commit comments

Comments
 (0)