diff --git a/android/gatt.c b/android/gatt.c
index 1d65c2a..662b5a6 100644
--- a/android/gatt.c
+++ b/android/gatt.c
g_attrib_unregister(device->attrib, device->server_id);
if (device->ind_id > 0)
- g_attrib_unregister(device->attrib,
- device->ind_id);
+ g_attrib_unregister(device->attrib, device->ind_id);
device->attrib = NULL;
g_attrib_cancel_all(attrib);
static guint search_dev_for_srvc(struct app_connection *conn, bt_uuid_t *uuid)
{
- struct discover_srvc_data *cb_data =
- new0(struct discover_srvc_data, 1);
+ struct discover_srvc_data *cb_data;
+ cb_data = new0(struct discover_srvc_data, 1);
if (!cb_data) {
error("gatt: Cannot allocate cb data");
return 0;
discover_srvc_by_uuid_cb, cb_data);
}
-
if (conn->app)
return gatt_discover_primary(conn->device->attrib, NULL,
discover_srvc_all_cb, cb_data);
struct gatt_device *dev = user_data;
uint16_t resp_length = 0;
size_t length;
-
uint8_t *opdu = g_attrib_get_buffer(dev->attrib, &length);
/*
* pairing finishes
*/
io = bt_io_connect(connect_cb, device_ref(dev), NULL, &gerr,
- BT_IO_OPT_SOURCE_BDADDR,
- &adapter_addr,
- BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
- BT_IO_OPT_DEST_BDADDR, bdaddr,
- BT_IO_OPT_DEST_TYPE, bdaddr_type,
- BT_IO_OPT_CID, ATT_CID,
- BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
- BT_IO_OPT_INVALID);
+ BT_IO_OPT_SOURCE_BDADDR, &adapter_addr,
+ BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
+ BT_IO_OPT_DEST_BDADDR, bdaddr,
+ BT_IO_OPT_DEST_TYPE, bdaddr_type,
+ BT_IO_OPT_CID, ATT_CID,
+ BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_LOW,
+ BT_IO_OPT_INVALID);
if (!io) {
error("gatt: Failed bt_io_connect(%s): %s", addr,
gerr->message);
if (app) {
ev.client_if = app->id;
ev.status = GATT_SUCCESS;
- } else
+ } else {
ev.status = GATT_FAILURE;
+ }
/* We should send notification with given in cmd UUID */
memcpy(ev.app_uuid, cmd->uuid, sizeof(ev.app_uuid));
status = HAL_STATUS_FAILED;
goto reply;
}
+
scanning = true;
status = HAL_STATUS_SUCCESS;
BT_IO_SEC_LOW;
io = bt_io_connect(connect_cb, device_ref(dev), NULL, &gerr,
- BT_IO_OPT_SOURCE_BDADDR, &adapter_addr,
- BT_IO_OPT_SOURCE_TYPE, BDADDR_BREDR,
- BT_IO_OPT_DEST_BDADDR, &dev->bdaddr,
- BT_IO_OPT_DEST_TYPE, BDADDR_BREDR,
- BT_IO_OPT_PSM, ATT_PSM,
- BT_IO_OPT_SEC_LEVEL, sec_level,
- BT_IO_OPT_INVALID);
+ BT_IO_OPT_SOURCE_BDADDR, &adapter_addr,
+ BT_IO_OPT_SOURCE_TYPE, BDADDR_BREDR,
+ BT_IO_OPT_DEST_BDADDR, &dev->bdaddr,
+ BT_IO_OPT_DEST_TYPE, BDADDR_BREDR,
+ BT_IO_OPT_PSM, ATT_PSM,
+ BT_IO_OPT_SEC_LEVEL, sec_level,
+ BT_IO_OPT_INVALID);
if (!io) {
error("gatt: Failed bt_io_connect(%s): %s", addr,
gerr->message);
* Make sure that there is no devices in auto connect list for this
* application
*/
- queue_foreach(gatt_devices, clear_autoconnect_devices, INT_TO_PTR(client_if));
+ queue_foreach(gatt_devices, clear_autoconnect_devices,
+ INT_TO_PTR(client_if));
cl = queue_remove_if(gatt_apps, match_app_by_id, INT_TO_PTR(client_if));
if (!cl) {
*/
if (advertising_cnt > 1) {
advertising_cnt--;
- queue_remove(listen_apps,
- INT_TO_PTR(cmd->client_if));
+ queue_remove(listen_apps, INT_TO_PTR(cmd->client_if));
status = HAL_STATUS_SUCCESS;
goto reply;
}
incl_service = queue_peek_head(prim_service->included);
} else {
uint8_t inst_id = cmd->incl_srvc_id[0].inst_id;
+
incl_service = queue_find(prim_service->included,
match_srvc_by_higher_inst_id,
INT_TO_PTR(inst_id));
}
static void convert_send_client_char_notify(const struct characteristic *ch,
- int32_t conn_id,
- const struct service *service)
+ int32_t conn_id,
+ const struct service *service)
{
struct hal_gatt_srvc_id srvc;
struct hal_gatt_gatt_id charac;
/* Store end handle to use later for descriptors discovery */
if (characteristics->next) {
struct gatt_char *next = characteristics->next->data;
+
ch->end_handle = next->handle - 1;
} else {
ch->end_handle = srvc->primary ? srvc->prim.range.end :
*/
if (status != HAL_STATUS_SUCCESS)
send_client_read_char_notify(GATT_FAILURE, NULL, 0,
- cmd->conn_id, &srvc_id, &char_id,
- cmd->srvc_id.is_primary);
+ cmd->conn_id, &srvc_id,
+ &char_id,
+ cmd->srvc_id.is_primary);
}
static void send_client_write_char_notify(int32_t status, int32_t conn_id,
}
static uint8_t test_read_write(bdaddr_t *bdaddr, bt_uuid_t *uuid, uint16_t op,
- uint16_t u2,uint16_t u3,
+ uint16_t u2, uint16_t u3,
uint16_t u4, uint16_t u5)
{
guint16 length = 0;
val = queue_pop_head(device->pending_requests);
}
- adl = att_data_list_alloc(queue_length(temp), sizeof(uint16_t) +
- length);
+ adl = att_data_list_alloc(queue_length(temp),
+ sizeof(uint16_t) + length);
if (val)
destroy_pending_request(val);
resp_data->state = REQUEST_PENDING;
gatt_db_attribute_read(attrib, resp_data->offset, process_data->opcode,
- &process_data->device->bdaddr,
- attribute_read_cb, resp_data);
+ &process_data->device->bdaddr,
+ attribute_read_cb, resp_data);
}
static void process_dev_pending_requests(struct gatt_device *device,
uint16_t lp = ATT_PSM;
record = sdp_record_alloc();
- if (record == NULL)
+ if (!record)
return NULL;
sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
if (cmd->confirm) {
/* TODO: Add data to track confirmation for this request */
length = enc_indication(cmd->attribute_handle,
- (uint8_t *)cmd->value, cmd->len, pdu,
+ (uint8_t *) cmd->value, cmd->len, pdu,
mtu);
confirmation_cb = ignore_confirmation_cb;
} else {
length = enc_notification(cmd->attribute_handle,
- (uint8_t *)cmd->value, cmd->len,
- pdu, mtu);
+ (uint8_t *) cmd->value,
+ cmd->len, pdu, mtu);
}
if (length == 0) {
}
static uint8_t find_info_handle(const uint8_t *cmd, uint16_t cmd_len,
- uint8_t *rsp, size_t rsp_size,
- uint16_t *length)
+ uint8_t *rsp, size_t rsp_size, uint16_t *length)
{
struct gatt_db_attribute *attrib;
struct queue *q, *temp;
int iterator = 0;
uint16_t start, end;
uint16_t len, queue_len;
+ uint8_t format;
uint8_t ret = 0;
DBG("");
memcpy(&value[2], &type->value, len);
}
- len = enc_find_info_resp(len == 2 ? ATT_FIND_INFO_RESP_FMT_16BIT :
- ATT_FIND_INFO_RESP_FMT_128BIT, adl, rsp,
- rsp_size);
+ if (len == 2)
+ format = ATT_FIND_INFO_RESP_FMT_16BIT;
+ else
+ format = ATT_FIND_INFO_RESP_FMT_128BIT;
+
+ len = enc_find_info_resp(format, adl, rsp, rsp_size);
if (!len)
ret = ATT_ECODE_UNLIKELY;
ev->trans_id = transaction->id;
ipc_send_notif(hal_ipc, HAL_SERVICE_ID_GATT,
- HAL_EV_GATT_SERVER_REQUEST_EXEC_WRITE,
- sizeof(*ev), ev);
+ HAL_EV_GATT_SERVER_REQUEST_EXEC_WRITE, sizeof(*ev), ev);
}
static uint8_t write_execute_request(const uint8_t *cmd, uint16_t cmd_len,
NULL, NULL, NULL);
if (gap_srvc_data.priv) {
uint8_t value;
+
/* Store privacy into db */
value = PERIPHERAL_PRIVACY_DISABLE;
gatt_db_attribute_write(gap_srvc_data.priv, 0,
if (queue_isempty(dev->autoconnect_apps))
device_ref(dev);
- if (!queue_find(dev->autoconnect_apps, match_by_value,
- INT_TO_PTR(id)))
+ if (!queue_find(dev->autoconnect_apps, match_by_value, INT_TO_PTR(id)))
return queue_push_head(dev->autoconnect_apps, INT_TO_PTR(id));
return true;