{
struct hal_ev_gatt_server_connected ev;
struct gatt_client_info_t *conn_info = NULL;
- int instance = -1;
memset(&ev, 0, sizeof(ev));
- /* Find Server Instance */
- instance = bt_hal_gatts_get_gatt_server_instance();
- if (instance == -1) {
- ERR("Not even a single GATT server is registered");
- return;
- }
-
- DBG("server instance [%d]", instance);
-
/* Convert address to hex */
_bt_hal_convert_addr_string_to_type(ev.bdaddr, address);
}
/* If connected, and conn info NOT found, then add conn info */
} else {
+ int instance = -1;
+
+ /* Find Server Instance */
+ instance = bt_hal_gatts_get_gatt_server_instance();
+ if (instance == -1) {
+ ERR("Not even a single GATT server is registered");
+ return;
+ }
+ DBG("server instance [%d]", instance);
+
if (!conn_info) {
/* Save Connection info */
conn_info = g_new0(struct gatt_client_info_t, 1);
BT_INFO("BTGATT SERVER CONNECTION connnected:%d, conn_id:%d server_if:%d", connected, conn_id, server_if);
event_gatts_conn_t *event = g_new0(event_gatts_conn_t, 1);
- for (ins_id = 1 ; ins_id <= NUM_SERVER_INST ; ins_id++) {
- if ((gatt_servers[ins_id - 1].server_id == server_if)) {
- event->server_inst = ins_id;
- break;
- } else {
- BT_INFO("Server ID:%d recevied server Id:%d\n", gatt_servers[ins_id - 1].server_id, server_if);
+ if (connected == TRUE) {
+ for (ins_id = 1 ; ins_id <= NUM_SERVER_INST ; ins_id++) {
+ if ((gatt_servers[ins_id - 1].server_id == server_if)) {
+ event->server_inst = ins_id;
+ break;
+ } else {
+ BT_INFO("Server ID:%d recevied server Id:%d\n", gatt_servers[ins_id - 1].server_id, server_if);
+ }
}
- }
- if (ins_id == NUM_SERVER_INST+1) {
- BT_WARN("Incorrect Server Interface received: %d\n", server_if);
- g_free(event);
- return;
+ if (ins_id == NUM_SERVER_INST+1) {
+ BT_WARN("Incorrect Server Interface received: %d\n", server_if);
+ g_free(event);
+ return;
+ }
+ } else {
+ /* server_inst is not required in disconnected case */
}
memcpy(event->address.addr, bda->address, BT_ADDRESS_BYTES_NUM);
event->conn_id = conn_id;