static int obex_server_id;
static guint disable_timer_id;
static gboolean is_initialized;
-static GSList *sending_list = NULL;
-static GSList *server_list = NULL;
-static GSList *event_list = NULL;
-static int owner_sig_id = -1;
+static GSList *sending_list;
+static GSList *server_list;
+static GSList *event_list;
+static guint owner_sig_id;
void _bt_add_push_request_id(int request_id)
{
}
buffer = (char *) g_variant_get_data(byte_var);
memcpy(act_req.tds_data.data, buffer, act_req.tds_data.length);
+ g_variant_unref(byte_var);
_bt_convert_addr_string_to_type(act_req.rem_addr.addr, address);
buffer = (char *) g_variant_get_data(byte_var);
memcpy(ind_res.tds_data.data, buffer, ind_res.tds_data.length);
+ g_free(buffer);
_bt_convert_addr_string_to_type(ind_res.rem_addr.addr, address);
GDBusConnection *connection_type;
connection_type = _bt_gdbus_get_system_gconn();
- if (connection_type != NULL && owner_sig_id != -1) {
+ if (connection_type != NULL && owner_sig_id > 0) {
g_dbus_connection_signal_unsubscribe(connection_type,
owner_sig_id);
- owner_sig_id = -1;
+ owner_sig_id = 0;
}
}
GVariantIter *interface_iter = NULL;
char *interface_str = NULL;
bt_gatt_service_change_t change;
- char address[BT_ADDRESS_STRING_SIZE] = { 0 };
char secure_address[BT_ADDRESS_STRING_SIZE] = { 0 };
bt_user_info_t *user_info = NULL;
+ user_info = _bt_get_user_data(BT_COMMON);
+ if (user_info == NULL) {
+ BT_ERR("There is no registered common event callback");
+ return;
+ }
+
if (strcasecmp(signal_name, "GattServiceAdded") == 0) {
g_variant_get(parameters, "(&s)", &path);
- _bt_convert_device_path_to_address(path, address);
- _bt_convert_addr_string_to_type(change.device_addr.addr, address);
- _bt_convert_addr_string_to_secure_string(secure_address, address);
+ _bt_convert_device_path_to_addr_type(path, change.device_addr.addr);
+ _bt_convert_addr_type_to_secure_string(secure_address,
+ change.device_addr.addr);
if (_bluetooth_gatt_check_service_change_watcher_address(&change.device_addr)
== FALSE) {
BT_INFO("GATT Service [%s] added, but no watcher for %s",
- path, secure_address);
+ path, secure_address);
return;
} else
BT_INFO(" ### GATT Service added [%s] [%s]",
- path, secure_address);
+ path, secure_address);
change.svc_path = g_strdup(path);
change.change_type = BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_ADD;
-
- user_info = _bt_get_user_data(BT_COMMON);
- if (user_info != NULL) {
- _bt_common_event_cb(
- BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED,
- BLUETOOTH_ERROR_NONE, &change,
- user_info->cb, user_info->user_data);
- }
-
+ _bt_common_event_cb(BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED,
+ BLUETOOTH_ERROR_NONE, &change,
+ user_info->cb, user_info->user_data);
g_free(change.svc_path);
} else if (strcasecmp(signal_name, "InterfacesRemoved") == 0) {
- g_variant_get(parameters, "(&oas)",
- &path, &interface_iter);
-
+ g_variant_get(parameters, "(&oas)", &path, &interface_iter);
if (!path) {
BT_ERR("Invalid adapter path");
+ g_variant_iter_free(interface_iter);
return;
}
- _bt_convert_device_path_to_address(path, address);
- _bt_convert_addr_string_to_type(change.device_addr.addr, address);
- _bt_convert_addr_string_to_secure_string(secure_address, address);
-
- if (_bluetooth_gatt_check_service_change_watcher_address(&change.device_addr)
- == FALSE) {
- BT_INFO("GATT Service [%s] removed, but no watcher for %s",
- path, secure_address);
+ _bt_convert_device_path_to_addr_type(path, change.device_addr.addr);
+ if (!_bluetooth_gatt_check_service_change_watcher_address(&change.device_addr)) {
+ g_variant_iter_free(interface_iter);
return;
}
- while (g_variant_iter_loop(interface_iter, "s", &interface_str)) {
- if (g_strcmp0(interface_str, GATT_SERV_INTERFACE) == 0) {
- change.svc_path = g_strdup(path);
- change.change_type = BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_REMOVE;
-
- BT_INFO(" ### GATT Service removed [%s] [%s]",
- path, secure_address);
+ while (g_variant_iter_loop(interface_iter, "&s", &interface_str)) {
+ if (g_strcmp0(interface_str, GATT_SERV_INTERFACE) != 0)
+ continue;
- user_info = _bt_get_user_data(BT_COMMON);
- if (user_info != NULL) {
- _bt_common_event_cb(
- BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED,
- BLUETOOTH_ERROR_NONE, &change,
- user_info->cb, user_info->user_data);
- }
+ _bt_convert_addr_type_to_secure_string(secure_address,
+ change.device_addr.addr);
+ BT_INFO(" ### GATT Service removed [%s] [%s]",
+ path, secure_address);
- g_free(change.svc_path);
- break;
- }
+ change.svc_path = g_strdup(path);
+ change.change_type = BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_REMOVE;
+ _bt_common_event_cb(
+ BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED,
+ BLUETOOTH_ERROR_NONE, &change,
+ user_info->cb, user_info->user_data);
+ g_free(change.svc_path);
+ break;
}
g_variant_iter_free(interface_iter);
}
int _bt_register_manager_subscribe_signal(gboolean subscribe)
{
GDBusConnection *g_conn;
- static int service_added_id = -1;
- static int interface_removed_id = -1;
+ static guint service_added_id = 0;
+ static guint interface_removed_id = 0;
g_conn = _bt_gdbus_get_system_gconn();
if (g_conn == NULL)
return BLUETOOTH_ERROR_INTERNAL;
if (subscribe == TRUE) {
- if (service_added_id == -1) {
+ if (service_added_id == 0) {
service_added_id = g_dbus_connection_signal_subscribe(g_conn,
NULL, GATT_SERV_INTERFACE,
"GattServiceAdded", NULL, NULL, 0,
__bt_manager_event_filter,
NULL, NULL);
}
- if (interface_removed_id == -1) {
+ if (interface_removed_id == 0) {
interface_removed_id = g_dbus_connection_signal_subscribe(g_conn,
NULL, BT_MANAGER_INTERFACE,
"InterfacesRemoved", NULL, NULL, 0,
NULL, NULL);
}
} else {
- if (service_added_id != -1) {
+ if (service_added_id > 0) {
g_dbus_connection_signal_unsubscribe(g_conn,
service_added_id);
- service_added_id = -1;
+ service_added_id = 0;
}
- if (interface_removed_id != -1) {
+ if (interface_removed_id > 0) {
g_dbus_connection_signal_unsubscribe(g_conn,
interface_removed_id);
- interface_removed_id = -1;
+ interface_removed_id = 0;
}
}