ERROR(UAM_ERROR_TIMEOUT, TIZEN_ERROR_TIMED_OUT) \
ERROR(UAM_ERROR_NOW_IN_PROGRESS, TIZEN_ERROR_NOW_IN_PROGRESS) \
ERROR(UAM_ERROR_NOT_SUPPORTED, TIZEN_ERROR_NOT_SUPPORTED) \
- ERROR(UAM_ERROR_NOT_REGISTERED, TIZEN_ERROR_UA | 0x01) \
+ ERROR(UAM_ERROR_NOT_INITIALIZED, TIZEN_ERROR_UA | 0x01) \
ERROR(UAM_ERROR_NOT_IN_OPERATION, TIZEN_ERROR_UA | 0x02) \
ERROR(UAM_ERROR_ALREADY_DONE, TIZEN_ERROR_UA | 0x03) \
ERROR(UAM_ERROR_INTERNAL, TIZEN_ERROR_UA | 0x04) \
ERROR(UAM_ERROR_NOT_FOUND, TIZEN_ERROR_UA | 0x10) \
ERROR(UAM_ERROR_ALREADY_REGISTERED, TIZEN_ERROR_UA | 0x11) \
ERROR(UAM_ERROR_DB_FAILED, TIZEN_ERROR_UA | 0x12) \
+ ERROR(UAM_ERROR_NOT_REGISTERED, TIZEN_ERROR_UA | 0x13) \
#define GENERATE_ERROR_ENUM(ENUM, offset) ENUM = -offset,
#define GENERATE_ERROR_STRING(STRING, offset) #STRING,
int err_id = -error;
UAM_DBG("arr_size: %d, err_id: %d", arr_size, err_id);
+ retv_if(0 > err_id, NULL);
retv_if(arr_size <= err_id, NULL);
return error_string[err_id];
retv_if(NULL == conn, UAM_ERROR_INTERNAL);
g_dbus_connection_signal_unsubscribe(conn, event_handler_data->id);
+ memset(event_handler_data, 0, sizeof(uam_event_handler_data_t));
g_free(event_handler_data);
+ event_handler_data = NULL;
FUNC_EXIT;
return UAM_ERROR_NONE;
goto done;
}
- UAM_INFO("Event: %s [0x%4.4X], result= %s [0x%4.4X]",
- _uam_event_to_str(event), event,
- _uam_error_to_str(result), result);
+ UAM_INFO("result= %s [0x%4.4X]", _uam_error_to_str(result), result);
event_data.result = result;
- __uam_get_event_info(req_info->req_func, out_param,
- &event, &event_data.data);
- ((uam_event_callback)req_info->cb)(
- event, &event_data, req_info->user_data);
+ if (req_info && req_info->req_func) {
+ __uam_get_event_info(req_info->req_func, out_param,
+ &event, &event_data.data);
+
+ ((uam_event_callback)req_info->cb)(
+ event, &event_data, req_info->user_data);
+ }
done:
- if (out_param)
+ if (out_param) {
g_array_free(out_param, TRUE);
+ }
if (req_info) {
pending_requests = g_slist_remove(
pending_requests, (void *)req_info);
g_free(req_info);
+ req_info = NULL;
}
FUNC_EXIT;
}
void _uam_manager_remove_req_ctxt_from_list(
uam_request_context_t *req_info);
+void _uam_manager_cleanup_client(const char *name);
+
void _uam_manager_method_return(
GDBusMethodInvocation *invocation,
GArray *out_param, int result);
GVariant *parameters,
gpointer user_data)
{
- int count = 1;
const char *name = NULL;
const char *old_owner = NULL;
const char *new_owner = NULL;
- GSList *list;
g_variant_get(parameters, "(&s&s&s)", &name, &old_owner, &new_owner);
-
if ('\0' == *new_owner) {
- /* Cleanup all pending request from this sender */
- __uam_manager_cleanup_requests_from_sender(name);
-
- g_mutex_lock(&uam_dbus_clients_mutex);
- list = __uam_list_find_client(name);
- if (list) {
- /* found bus name in our bus list */
- __uamd_dbus_client_cleanup((gpointer)list->data);
- uam_dbus_clients = g_slist_remove_link(uam_dbus_clients, list);
- count = g_slist_length(uam_dbus_clients);
- }
- g_mutex_unlock(&uam_dbus_clients_mutex);
-
- if (0 == count) {
- UAM_ERR("Quit ua-manager");
- g_main_loop_quit(main_loop);
- }
+ /* Clean up client info */
+ _uam_manager_cleanup_client(name);
}
}
}
FUNC_EXIT;
}
+
+void _uam_manager_cleanup_client(const char *name)
+{
+ int count = 1;
+ GSList *list = NULL;
+
+ /* Cleanup all pending request from this sender */
+ __uam_manager_cleanup_requests_from_sender(name);
+
+ g_mutex_lock(&uam_dbus_clients_mutex);
+ list = __uam_list_find_client(name);
+ if (list) {
+ /* found bus name in our bus list */
+ __uamd_dbus_client_cleanup((gpointer)list->data);
+ uam_dbus_clients = g_slist_remove_link(uam_dbus_clients, list);
+ count = g_slist_length(uam_dbus_clients);
+ }
+ g_mutex_unlock(&uam_dbus_clients_mutex);
+
+ if (0 == count) {
+ UAM_ERR("Quit ua-manager");
+ g_main_loop_quit(main_loop);
+ }
+}