static void put_link_key(bd_addr_t bd_addr, link_key_t link_key, link_key_type_t link_key_type){
	char bd_addr_ini_string[BD_ADDR_LEN * 2 + 1];
	memory_to_ini_string(bd_addr, BD_ADDR_LEN, bd_addr_ini_string);

	char link_key_ini_string[3 /* store link_key_type */ + LINK_KEY_LEN * 2 + 1];
	uint8_t link_key_type_val = link_key_type;
	memory_to_ini_string(&link_key_type_val, 1, link_key_ini_string);
	link_key_ini_string[2] = '/';
	memory_to_ini_string(link_key, LINK_KEY_LEN, link_key_ini_string + 3);

	ev3rt_put_bluetooth_link_key(bd_addr_ini_string, link_key_ini_string);
#if 1
#else
    db_mem_device_link_key_t * existingRecord = (db_mem_device_link_key_t *) get_item(db_mem_link_keys, bd_addr);
    
    if (existingRecord){
        memcpy(existingRecord->link_key, link_key, LINK_KEY_LEN);
        return;
    }
    
    // Record not found, create new one for this device
    db_mem_device_link_key_t * newItem = btstack_memory_db_mem_device_link_key_get();
    if (!newItem){
        newItem = (db_mem_device_link_key_t*)linked_list_get_last_item(&db_mem_link_keys);
    }
    
    if (!newItem) return;
    
    memcpy(newItem->device.bd_addr, bd_addr, sizeof(bd_addr_t));
    memcpy(newItem->link_key, link_key, LINK_KEY_LEN);
    newItem->link_key_type = link_key_type;
    linked_list_add(&db_mem_link_keys, (linked_item_t *) newItem);
#endif
}
예제 #2
0
static void put_link_key(bd_addr_t *bd_addr, link_key_t *link_key){
    db_mem_device_link_key_t * existingRecord = (db_mem_device_link_key_t *) get_item(db_mem_link_keys, bd_addr);
    
    if (existingRecord){
        memcpy(existingRecord->link_key, link_key, LINK_KEY_LEN);
        return;
    }
    
    // Record not found, create new one for this device
    db_mem_device_link_key_t * newItem = (db_mem_device_link_key_t*) btstack_memory_db_mem_device_link_key_get();
    if (!newItem){
        newItem = (db_mem_device_link_key_t*)linked_list_get_last_item(&db_mem_link_keys);
    }
    
    if (!newItem) return;
    
    memcpy(newItem->device.bd_addr, bd_addr, sizeof(bd_addr_t));
    memcpy(newItem->link_key, link_key, LINK_KEY_LEN);
    linked_list_add(&db_mem_link_keys, (linked_item_t *) newItem);
}