static void foreach_gap_service(struct gatt_db_attribute *attr, void *user_data) { struct gas *gas = user_data; if (gas->attr) { error("More than one GAP service exists for this device"); return; } gas->attr = attr; handle_gap_service(gas); }
static void service_added(struct gatt_db_attribute *attr, void *user_data) { struct gas *gas = user_data; bt_uuid_t uuid, gap_uuid; if (!bt_gatt_client_is_ready(gas->client)) return; gatt_db_attribute_get_service_uuid(attr, &uuid); bt_uuid16_create(&gap_uuid, GAP_UUID16); if (bt_uuid_cmp(&uuid, &gap_uuid)) return; if (gas->attr) { error("More than one GAP service added to device"); return; } DBG("GAP service added"); gas->attr = attr; handle_gap_service(gas); }