mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Merge pull request #9921 from desmond-blue/fix_Cordio-insert-characteristic-handle-error
BLE:Cordio:Fix insert characteristic not handle errorpull/10081/head
						commit
						7fa995860f
					
				| 
						 | 
				
			
			@ -196,22 +196,32 @@ ble_error_t GattServer::insert_characteristic(
 | 
			
		|||
 | 
			
		||||
    // Create Characteristic Declaration Attribute
 | 
			
		||||
    insert_characteristic_declaration_attribute(characteristic, attribute_it);
 | 
			
		||||
    insert_characteristic_value_attribute(characteristic, attribute_it);
 | 
			
		||||
    ble_error_t err = insert_characteristic_value_attribute(characteristic, attribute_it);
 | 
			
		||||
    if (err) {
 | 
			
		||||
        return err;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // insert descriptors
 | 
			
		||||
    bool cccd_created = false;
 | 
			
		||||
    for (size_t i = 0; i < characteristic->getDescriptorCount(); i++) {
 | 
			
		||||
        insert_descriptor(
 | 
			
		||||
        err = insert_descriptor(
 | 
			
		||||
            characteristic,
 | 
			
		||||
            characteristic->getDescriptor(i),
 | 
			
		||||
            attribute_it,
 | 
			
		||||
            cccd_created
 | 
			
		||||
        );
 | 
			
		||||
        if (err) {
 | 
			
		||||
            return err;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // insert implicit CCCD
 | 
			
		||||
    if ((properties & UPDATE_PROPERTIES) && (cccd_created == false)) {
 | 
			
		||||
        insert_cccd(characteristic, attribute_it);
 | 
			
		||||
        err = insert_cccd(characteristic, attribute_it);
 | 
			
		||||
        if (err) {
 | 
			
		||||
            return err;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return BLE_ERROR_NONE;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue