library: Drop registered_signal_t 61/278361/3
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Tue, 19 Jul 2022 20:56:20 +0000 (22:56 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 21 Jul 2022 09:21:47 +0000 (11:21 +0200)
Change-Id: I07b7717b1e197201d10ebe25dd502d1c275903a7

libsessiond/src/lib.c

index 4e90cf1..37bc984 100644 (file)
@@ -716,39 +716,32 @@ EXPORT_API int subsession_switch_user(int session_uid, const subsession_user_t n
        ))
 }
 
-typedef struct {
-       signal_client_data_t *signal_client_data;
-       int error;
-} registered_signal_t;
-
-
-static registered_signal_t subsession_register_event_in_list(client_callbacks_data_t *callbacks_data, GVariant *params, subsession_event_callback cb, void *cb_data) {
-
-       registered_signal_t registered_signal = {0};
+static int subsession_register_event_in_list(client_callbacks_data_t *callbacks_data, GVariant *params, subsession_event_callback cb, void *cb_data, signal_client_data_t **client_data)
+{
+       assert(callbacks_data);
+       assert(client_data);
 
        g_mutex_lock(&callbacks_data->mutex);
 
        if (callbacks_data->list) {
                GList *found_data = g_list_find_custom(callbacks_data->list, (gconstpointer)params, g_compare_session_uid);
                if (found_data != NULL) {
-                       registered_signal.error = SUBSESSION_ERROR_ALREADY_EXISTS;
                        g_mutex_unlock(&callbacks_data->mutex);
-                       return registered_signal;
+                       return SUBSESSION_ERROR_ALREADY_EXISTS;
                }
        }
 
        signal_client_data_t *signal_client_data = make_new_signal_callback_client_data(cb, cb_data, params);
        if (signal_client_data == NULL) {
-                       g_mutex_unlock(&callbacks_data->mutex);
-                       registered_signal.error = SUBSESSION_ERROR_OUT_OF_MEMORY;
-                       return registered_signal;
+               g_mutex_unlock(&callbacks_data->mutex);
+               return SUBSESSION_ERROR_OUT_OF_MEMORY;
        }
        callbacks_data->list = g_list_append(callbacks_data->list, signal_client_data);
 
-       registered_signal.signal_client_data = signal_client_data;
-       registered_signal.error = SUBSESSION_ERROR_NONE;
+       *client_data = signal_client_data;
        g_mutex_unlock(&callbacks_data->mutex);
-       return registered_signal;
+
+       return SUBSESSION_ERROR_NONE;
 }
 
 #define dbus_data_(callbacks_data_mt, params) \
@@ -763,8 +756,8 @@ static registered_signal_t subsession_register_event_in_list(client_callbacks_da
        callbacks_data_mt->dbus_signal, \
        &callbacks_data_mt->dbus_signal_subscribed
 
-static int register_event_callback(client_callbacks_data_t *callbacks_data, GDBusSignalCallback signal_callback, int session_uid, subsession_event_callback cb, void *cb_data) {
-
+static int register_event_callback(client_callbacks_data_t *callbacks_data, GDBusSignalCallback signal_callback, int session_uid, subsession_event_callback cb, void *cb_data)
+{
        return_if(
                signal_callback_is_null(signal_callback,
                session_uid_is_not_valid(session_uid,
@@ -776,11 +769,10 @@ static int register_event_callback(client_callbacks_data_t *callbacks_data, GDBu
                return_with_log_error_result_(SUBSESSION_ERROR_OUT_OF_MEMORY)
        }
 
-       registered_signal_t registered_signal = subsession_register_event_in_list(callbacks_data, params, cb, cb_data);
-
-       if(registered_signal.error != SUBSESSION_ERROR_NONE) {
-               LOGE("registered_signal.error = %d", registered_signal.error);
-               return_with_log_error_result_(registered_signal.error);
+       signal_client_data_t *client_data = NULL;
+       int ret = subsession_register_event_in_list(callbacks_data, params, cb, cb_data, &client_data);
+       if (ret != SUBSESSION_ERROR_NONE) {
+               return_with_log_error_result_(ret);
        }
 
        int method_call_result = subscribe_and_call_method(
@@ -789,30 +781,32 @@ static int register_event_callback(client_callbacks_data_t *callbacks_data, GDBu
                                (gpointer) callbacks_data);
 
        if (method_call_result == 0) {
-           return SUBSESSION_ERROR_NONE;
+               return SUBSESSION_ERROR_NONE;
        }
-       LOGE("method_call_result ==  %d", method_call_result);
        log_if_error_(method_call_result)
 
-       client_data_cleansweep_mt(registered_signal.signal_client_data, callbacks_data);
+       client_data_cleansweep_mt(client_data, callbacks_data);
 
        return method_call_result;
 }
 
-static int subscribe_only_callback(client_callbacks_data_t *callbacks_data, GDBusSignalCallback signal_callback, int session_uid, subsession_event_callback cb, void *cb_data) {
+static int subscribe_only_callback(client_callbacks_data_t *callbacks_data, GDBusSignalCallback signal_callback, int session_uid, subsession_event_callback cb, void *cb_data)
+{
+       assert(callbacks_data);
 
        GVariant *params = g_variant_new("(i)", session_uid);
        if (params == NULL) {
                return_with_log_error_result_(SUBSESSION_ERROR_OUT_OF_MEMORY);
        }
 
-       registered_signal_t registered_signal = subsession_register_event_in_list(callbacks_data, params, cb, cb_data);
-       if (registered_signal.error != SUBSESSION_ERROR_NONE) {
-               return  registered_signal.error;
+       signal_client_data_t *client_data = NULL;
+       int ret = subsession_register_event_in_list(callbacks_data, params, cb, cb_data, &client_data);
+       if (ret != SUBSESSION_ERROR_NONE) {
+               return ret;
        }
 
        MAKE_SURE_CONNECTION_IS_NOT_NULL(
-               client_data_cleansweep_mt(registered_signal.signal_client_data, callbacks_data);
+               client_data_cleansweep_mt(client_data, callbacks_data);
        );
 
        if (callbacks_data->dbus_signal_subscribed == 0) {