move sdp_emit_service_registered to daemon

This commit is contained in:
Matthias Ringwald 2015-11-14 23:26:59 +01:00
parent 0cc6429e00
commit 045ba8fec0
2 changed files with 19 additions and 20 deletions

View File

@ -672,11 +672,22 @@ static void send_rfcomm_create_channel_failed(void * connection, bd_addr_t addr,
bt_store_16(event, pos, 0); pos += 2; // channel ID
bt_store_16(event, pos, 0); pos += 2; // max frame size
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
socket_connection_send_packet(connection, HCI_EVENT_PACKET, 0, event, sizeof(event));
}
// data: event(8), len(8), status(8), service_record_handle(32)
static void sdp_emit_service_registered(void *connection, uint32_t handle, uint8_t status) {
if (!app_packet_handler) return;
uint8_t event[7];
event[0] = SDP_SERVICE_REGISTERED;
event[1] = sizeof(event) - 2;
event[2] = status;
bt_store_32(event, 3, handle);
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
socket_connection_send_packet(connection, HCI_EVENT_PACKET, 0, event, sizeof(event));
}
linked_list_gatt_client_helper_t * daemon_setup_gatt_client_request(connection_t *connection, uint8_t *packet, int track_active_connection) {
hci_con_handle_t handle = READ_BT_16(packet, 3);
log_info("daemon_setup_gatt_client_request for handle 0x%02x", handle);
@ -978,7 +989,12 @@ static int btstack_command_handler(connection_t *connection, uint8_t *packet, ui
case SDP_REGISTER_SERVICE_RECORD:
log_info("SDP_REGISTER_SERVICE_RECORD size %u\n", size);
service_record_handle = sdp_register_service_internal(connection, &packet[3]);
daemon_add_client_sdp_service_record_handle(connection, service_record_handle);
if (service_record_handle){
daemon_add_client_sdp_service_record_handle(connection, service_record_handle);
sdp_emit_service_registered(connection, service_record_handle, 0);
} else {
sdp_emit_service_registered(connection, 0, BTSTACK_MEMORY_ALLOC_FAILED);
}
break;
case SDP_UNREGISTER_SERVICE_RECORD:
service_record_handle = READ_BT_32(packet, 3);

View File

@ -94,18 +94,6 @@ uint32_t sdp_get_service_record_handle(uint8_t * record){
return READ_NET_32(serviceRecordHandleAttribute, 1);
}
// data: event(8), len(8), status(8), service_record_handle(32)
static void sdp_emit_service_registered(void *connection, uint32_t handle, uint8_t status) {
if (!app_packet_handler) return;
uint8_t event[7];
event[0] = SDP_SERVICE_REGISTERED;
event[1] = sizeof(event) - 2;
event[2] = status;
bt_store_32(event, 3, handle);
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
(*app_packet_handler)(connection, HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
}
static service_record_item_t * sdp_get_record_for_handle(uint32_t handle){
linked_item_t *it;
for (it = (linked_item_t *) sdp_service_records; it ; it = it->next){
@ -167,9 +155,7 @@ uint32_t sdp_register_service_internal(void *connection, service_record_item_t *
// add to linked list
linked_list_add(&sdp_service_records, (linked_item_t *) record_item);
sdp_emit_service_registered(connection, 0, record_item->service_record_handle);
return record_handle;
}
@ -212,7 +198,6 @@ uint32_t sdp_register_service_internal(void *connection, uint8_t * record){
// alloc memory for new service_record_item
service_record_item_t * newRecordItem = (service_record_item_t *) malloc(recordSize + sizeof(service_record_item_t));
if (!newRecordItem) {
sdp_emit_service_registered(connection, 0, BTSTACK_MEMORY_ALLOC_FAILED);
return 0;
}
// link new service item to client connection
@ -241,8 +226,6 @@ uint32_t sdp_register_service_internal(void *connection, uint8_t * record){
// add to linked list
linked_list_add(&sdp_service_records, (linked_item_t *) newRecordItem);
sdp_emit_service_registered(connection, 0, newRecordItem->service_record_handle);
return record_handle;
}