Log when the adapter or device has been released

pull/277/head
Olivier Martin 2024-04-08 10:12:03 +02:00
parent cdd62f6d35
commit dc009029fa
6 changed files with 30 additions and 2 deletions

View File

@ -54,11 +54,13 @@ static gpointer _gattlib_connected_device_thread(gpointer data) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_connection_is_connected(connection)) {
GATTLIB_LOG(GATTLIB_ERROR, "_gattlib_connected_device_thread: Device is not connected");
g_rec_mutex_unlock(&m_gattlib_mutex);
return NULL;
}
if (!gattlib_has_valid_handler(&connection->on_connection)) {
GATTLIB_LOG(GATTLIB_ERROR, "_gattlib_connected_device_thread: Handler is not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return NULL;
}
@ -85,6 +87,7 @@ static void* _connected_device_thread_args_allocator(va_list args) {
void gattlib_on_connected_device(gattlib_connection_t* connection) {
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_on_connected_device: Device is not valid");
return;
}

View File

@ -33,7 +33,8 @@ void gattlib_disconnected_device_python_callback(gattlib_connection_t* connectio
void gattlib_on_disconnected_device(gattlib_connection_t* connection) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_connection_is_connected(connection)) {
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_on_disconnected_device: Device not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return;
}

View File

@ -21,6 +21,7 @@ int gattlib_register_notification(gattlib_connection_t* connection, gattlib_even
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_register_notification: Device not valid");
ret = GATTLIB_DEVICE_DISCONNECTED;
goto EXIT;
}
@ -58,6 +59,7 @@ int gattlib_register_indication(gattlib_connection_t* connection, gattlib_event_
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_register_indication: Device not valid");
ret = GATTLIB_DEVICE_DISCONNECTED;
goto EXIT;
}
@ -92,6 +94,7 @@ int gattlib_register_on_disconnect(gattlib_connection_t *connection, gattlib_dis
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_register_on_disconnect: Device not valid");
ret = GATTLIB_DEVICE_DISCONNECTED;
goto EXIT;
}

View File

@ -50,6 +50,7 @@ int gattlib_device_set_state(gattlib_adapter_t* adapter, const char* device_id,
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_device_set_state: Adapter not valid");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -187,6 +188,7 @@ void gattlib_devices_dump_state(gattlib_adapter_t* adapter) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_devices_dump_state: Adapter not valid");
goto EXIT;
}

View File

@ -22,6 +22,7 @@ static void _on_device_connect(gattlib_connection_t* connection) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "_on_device_connect: Device not valid");
goto EXIT;
}
@ -142,6 +143,7 @@ static gboolean _stop_connect_func(gpointer data) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "_stop_connect_func: Device not valid");
goto EXIT;
}
@ -199,6 +201,7 @@ int gattlib_connect(gattlib_adapter_t* adapter, const char *dst,
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_connect: Adapter not valid");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -415,6 +418,7 @@ int gattlib_discover_primary(gattlib_connection_t* connection, gattlib_primary_s
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_discover_primary: Device not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return GATTLIB_DEVICE_DISCONNECTED;
}
@ -507,6 +511,7 @@ int gattlib_discover_primary(gattlib_connection_t* connection, gattlib_primary_s
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_discover_primary: Device not valid");
ret = GATTLIB_DEVICE_DISCONNECTED;
goto EXIT;
}
@ -668,6 +673,7 @@ int gattlib_discover_char_range(gattlib_connection_t* connection, uint16_t start
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_discover_char_range: Device not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return GATTLIB_DEVICE_DISCONNECTED;
}
@ -927,6 +933,7 @@ int gattlib_discover_char_range(gattlib_connection_t* connection, uint16_t start
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_discover_char_range: Device not valid");
ret = GATTLIB_DEVICE_DISCONNECTED;
goto EXIT;
}
@ -1057,6 +1064,7 @@ int get_bluez_device_from_mac(struct _gattlib_adapter *adapter, const char *mac_
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "get_bluez_device_from_mac: Adapter not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return GATTLIB_ADAPTER_CLOSE;
}
@ -1105,6 +1113,7 @@ int gattlib_get_rssi(gattlib_connection_t *connection, int16_t *rssi)
}
if (!gattlib_device_is_valid(connection->device)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_get_rssi: Device not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return GATTLIB_DEVICE_DISCONNECTED;
}

View File

@ -145,6 +145,7 @@ static void device_manager_on_added_device1_signal(const char* device1_path, gat
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(gattlib_adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "device_manager_on_added_device1_signal: Adapter not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
g_object_unref(device1);
return;
@ -225,6 +226,7 @@ on_interface_proxy_properties_changed (GDBusObjectManagerClient *device_manager,
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(gattlib_adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "on_interface_proxy_properties_changed: Adapter not valid");
goto EXIT;
}
@ -298,6 +300,7 @@ static gboolean _stop_scan_on_timeout(gpointer data) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(gattlib_adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "_stop_scan_on_timeout: Adapter not valid");
g_rec_mutex_unlock(&m_gattlib_mutex);
return FALSE;
}
@ -329,6 +332,7 @@ static void* _ble_scan_loop_thread(void* args) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(gattlib_adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "_ble_scan_loop_thread: Adapter not valid (1)");
goto EXIT;
}
@ -356,6 +360,7 @@ static void* _ble_scan_loop_thread(void* args) {
// Confirm gattlib_adapter is still valid
if (!gattlib_adapter_is_valid(gattlib_adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "_ble_scan_loop_thread: Adapter not valid (2)");
goto EXIT;
}
@ -490,6 +495,7 @@ int gattlib_adapter_scan_enable_with_filter(gattlib_adapter_t* adapter, uuid_t *
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_adapter_scan_enable_with_filter: Adapter not valid (1)");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -524,6 +530,7 @@ int gattlib_adapter_scan_enable_with_filter(gattlib_adapter_t* adapter, uuid_t *
// Ensure the adapter is still valid when we get the mutex again
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_adapter_scan_enable_with_filter: Adapter not valid (2)");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -546,6 +553,7 @@ int gattlib_adapter_scan_enable_with_filter_non_blocking(gattlib_adapter_t* adap
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_adapter_scan_enable_with_filter_non_blocking: Adapter not valid (2)");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -584,6 +592,7 @@ int gattlib_adapter_scan_disable(gattlib_adapter_t* adapter) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_adapter_scan_disable: Adapter not valid");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -650,6 +659,7 @@ int gattlib_adapter_close(gattlib_adapter_t* adapter) {
g_rec_mutex_lock(&m_gattlib_mutex);
if (!gattlib_adapter_is_valid(adapter)) {
GATTLIB_LOG(GATTLIB_ERROR, "gattlib_adapter_close: Adapter not valid");
ret = GATTLIB_ADAPTER_CLOSE;
goto EXIT;
}
@ -732,4 +742,4 @@ int gattlib_adapter_unref(gattlib_adapter_t* adapter) {
EXIT:
g_rec_mutex_unlock(&m_gattlib_mutex);
return ret;
}
}