Skip to content

Commit

Permalink
Log when the adapter or device has been released
Browse files Browse the repository at this point in the history
  • Loading branch information
oliviermartin committed Apr 8, 2024
1 parent cdd62f6 commit dc00902
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 2 deletions.
3 changes: 3 additions & 0 deletions common/gattlib_callback_connected_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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;
}

Expand Down
3 changes: 2 additions & 1 deletion common/gattlib_callback_disconnected_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
3 changes: 3 additions & 0 deletions common/gattlib_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down
2 changes: 2 additions & 0 deletions common/gattlib_device_state_management.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}

Expand Down
9 changes: 9 additions & 0 deletions dbus/gattlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down
12 changes: 11 additions & 1 deletion dbus/gattlib_adapter.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -732,4 +742,4 @@ int gattlib_adapter_unref(gattlib_adapter_t* adapter) {
EXIT:
g_rec_mutex_unlock(&m_gattlib_mutex);
return ret;
}
}

0 comments on commit dc00902

Please sign in to comment.