From dc009029faeb5881298e3b6a89c2106940a4e4ce Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Mon, 8 Apr 2024 10:12:03 +0200 Subject: [PATCH] Log when the adapter or device has been released --- common/gattlib_callback_connected_device.c | 3 +++ common/gattlib_callback_disconnected_device.c | 3 ++- common/gattlib_common.c | 3 +++ common/gattlib_device_state_management.c | 2 ++ dbus/gattlib.c | 9 +++++++++ dbus/gattlib_adapter.c | 12 +++++++++++- 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/common/gattlib_callback_connected_device.c b/common/gattlib_callback_connected_device.c index 055d491..bba90ab 100644 --- a/common/gattlib_callback_connected_device.c +++ b/common/gattlib_callback_connected_device.c @@ -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; } diff --git a/common/gattlib_callback_disconnected_device.c b/common/gattlib_callback_disconnected_device.c index f92b507..1cf90a8 100644 --- a/common/gattlib_callback_disconnected_device.c +++ b/common/gattlib_callback_disconnected_device.c @@ -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; } diff --git a/common/gattlib_common.c b/common/gattlib_common.c index 5d7fd9c..127c07c 100644 --- a/common/gattlib_common.c +++ b/common/gattlib_common.c @@ -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; } diff --git a/common/gattlib_device_state_management.c b/common/gattlib_device_state_management.c index 63108fc..45c529f 100644 --- a/common/gattlib_device_state_management.c +++ b/common/gattlib_device_state_management.c @@ -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; } diff --git a/dbus/gattlib.c b/dbus/gattlib.c index 6a958bc..d112b6b 100644 --- a/dbus/gattlib.c +++ b/dbus/gattlib.c @@ -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; } diff --git a/dbus/gattlib_adapter.c b/dbus/gattlib_adapter.c index bda091c..7d1f11a 100644 --- a/dbus/gattlib_adapter.c +++ b/dbus/gattlib_adapter.c @@ -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; -} \ No newline at end of file +}