static void auth_session_process_ready_cb (gpointer object, const GError *error, gpointer user_data) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (object)); SignonAuthSession *self = SIGNON_AUTH_SESSION (object); SignonAuthSessionPrivate *priv = SIGNON_AUTH_SESSION_PRIV (self); AuthSessionProcessData *operation_data = (AuthSessionProcessData *)user_data; g_return_if_fail (operation_data != NULL); AuthSessionProcessCbData *cb_data = operation_data->cb_data; g_return_if_fail (cb_data != NULL); if (error || priv->canceled) { GError *err = ( error ? (GError *)error : g_error_new(auth_session_errors_quark(), 1, SSO_AUTH_SESSION_CANCELED_PROBLEM_G) ); DEBUG ("AuthSessionError: %s", err->message); (cb_data->cb) (self, operation_data->session_data, err, cb_data->user_data); if (!error) g_clear_error (&err); g_slice_free (AuthSessionProcessCbData, cb_data); priv->busy = FALSE; priv->canceled = FALSE; } else { g_return_if_fail (priv->proxy != NULL); _SSO_AuthSession_process_async_timeout (priv->proxy, operation_data->session_data, operation_data->mechanism, auth_session_process_reply, cb_data, 0x7FFFFFFF); g_hash_table_destroy (operation_data->session_data); g_signal_emit (self, auth_session_signals[STATE_CHANGED], 0, SIGNON_AUTH_SESSION_STATE_PROCESS_PENDING, auth_session_process_pending_message); } g_free (operation_data->mechanism); g_slice_free (AuthSessionProcessData, operation_data); }
static void auth_session_process_ready_cb (gpointer object, const GError *error, gpointer user_data) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (object)); SignonAuthSession *self = SIGNON_AUTH_SESSION (object); SignonAuthSessionPrivate *priv = SIGNON_AUTH_SESSION_PRIV (self); AuthSessionProcessData *operation_data = (AuthSessionProcessData *)user_data; g_return_if_fail (operation_data != NULL); AuthSessionProcessCbData *cb_data = operation_data->cb_data; g_return_if_fail (cb_data != NULL); if (error || priv->canceled) { GError *err = (error ? (GError *)error : g_error_new (signon_error_quark (), SIGNON_ERROR_SESSION_CANCELED, "Authentication session was canceled")); DEBUG ("AuthSessionError: %s", err->message); (cb_data->cb) (self, NULL, err, cb_data->user_data); if (!error) g_clear_error (&err); g_slice_free (AuthSessionProcessCbData, cb_data); priv->busy = FALSE; priv->canceled = FALSE; } else { g_return_if_fail (priv->proxy != NULL); sso_auth_session_call_process (priv->proxy, operation_data->session_data, operation_data->mechanism, priv->cancellable, auth_session_process_reply, cb_data); g_signal_emit (self, auth_session_signals[STATE_CHANGED], 0, SIGNON_AUTH_SESSION_STATE_PROCESS_PENDING, auth_session_process_pending_message); } g_free (operation_data->mechanism); g_slice_free (AuthSessionProcessData, operation_data); }
static gboolean auth_session_priv_init (SignonAuthSession *self, guint id, const gchar *method_name, GError **err) { g_return_val_if_fail (SIGNON_IS_AUTH_SESSION (self), FALSE); SignonAuthSessionPrivate *priv = SIGNON_AUTH_SESSION_PRIV (self); g_return_val_if_fail (priv, FALSE); priv->id = id; priv->method_name = g_strdup (method_name); priv->pending_call_get_path = SSO_AuthService_get_auth_session_object_path_async ( DBUS_G_PROXY (priv->signon_proxy), (const guint)id, method_name, auth_session_get_object_path_reply, self); priv->busy = FALSE; priv->canceled = FALSE; return TRUE; }
static gboolean auth_session_priv_init (SignonAuthSession *self, guint id, const gchar *method_name, GError **err) { g_return_val_if_fail (SIGNON_IS_AUTH_SESSION (self), FALSE); SignonAuthSessionPrivate *priv = SIGNON_AUTH_SESSION_PRIV (self); g_return_val_if_fail (priv, FALSE); priv->id = id; priv->method_name = g_strdup (method_name); priv->registering = TRUE; sso_auth_service_call_get_auth_session_object_path ( priv->auth_service_proxy, id, method_name, priv->cancellable, auth_session_get_object_path_reply, self); priv->busy = FALSE; priv->canceled = FALSE; return TRUE; }