Fix issue where state is not restored when adv operation fails 13/304013/1
authorWootak Jung <wootak.jung@samsung.com>
Fri, 5 Jan 2024 08:20:58 +0000 (17:20 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Tue, 9 Jan 2024 01:51:31 +0000 (10:51 +0900)
Change-Id: I72428877125969a9dd682d6a2124775e45f258a4
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-oal/oal-gatt.c

index 039dd7e..d162d7c 100644 (file)
@@ -453,7 +453,6 @@ oal_status_t gatts_multi_adv_enable(int instance_id)
                BT_ERR("Not allowed, state: %d, instance_id: %d", info->state, instance_id);
                return OAL_STATUS_BUSY;
        }
-       info->state = GATT_INS_ENABLING;
 
        ret = gatt_api->server->multi_adv_enable(instance_id);
        if (ret != BT_STATUS_SUCCESS) {
@@ -462,6 +461,8 @@ oal_status_t gatts_multi_adv_enable(int instance_id)
 //             gatt_servers[instance_id - 1].state = GATT_INS_DATA_SET;
                return convert_to_oal_status(ret);
        }
+
+       info->state = GATT_INS_ENABLING;
        return OAL_STATUS_SUCCESS;
 }
 
@@ -561,7 +562,6 @@ oal_status_t gatts_multi_adv_set_inst_data(int instance_id,
                BT_ERR("Not Allowed, state: %d, instance_id: %d", info->state, instance_id);
                return OAL_STATUS_BUSY;
        }
-       info->state = GATT_INS_DATA_SETTING;
 
        adv_setup.set_scan_rsp = adv_param_setup->set_scan_rsp;
        adv_setup.include_name = adv_param_setup->include_name;
@@ -600,6 +600,8 @@ oal_status_t gatts_multi_adv_set_inst_data(int instance_id,
                info->state = GATT_INS_DISABLED;
                return convert_to_oal_status(ret);
        }
+
+       info->state = GATT_INS_DATA_SETTING;
        return OAL_STATUS_SUCCESS;
 }