summaryrefslogtreecommitdiff
path: root/src/nm-auth-utils.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2018-04-05 09:07:12 +0200
committerThomas Haller <thaller@redhat.com>2018-04-05 17:45:30 +0200
commit2a998075e5490b5a2e3b95915e025dc7623974c5 (patch)
tree79c71aa02fa7aadcd0a315f43b33d6f43682fbb8 /src/nm-auth-utils.c
parent6335627e77fa1ccff9d1b81cd83c26bd86cb45f4 (diff)
downloadNetworkManager-2a998075e5490b5a2e3b95915e025dc7623974c5.tar.gz
auth-chain/trivial: move code
Diffstat (limited to 'src/nm-auth-utils.c')
-rw-r--r--src/nm-auth-utils.c160
1 files changed, 83 insertions, 77 deletions
diff --git a/src/nm-auth-utils.c b/src/nm-auth-utils.c
index cd6e0d0bd3..e2f1e12c81 100644
--- a/src/nm-auth-utils.c
+++ b/src/nm-auth-utils.c
@@ -62,6 +62,18 @@ typedef struct {
/*****************************************************************************/
+static void
+auth_call_free (AuthCall *call)
+{
+ nm_clear_g_source (&call->call_idle_id);
+ nm_clear_g_cancellable (&call->cancellable);
+ c_list_unlink_stale (&call->auth_call_lst);
+ g_free (call->permission);
+ g_slice_free (AuthCall, call);
+}
+
+/*****************************************************************************/
+
typedef struct {
gpointer data;
GDestroyNotify destroy;
@@ -88,69 +100,6 @@ chain_data_free (gpointer data)
g_slice_free (ChainData, tmp);
}
-/*****************************************************************************/
-
-static gboolean
-auth_chain_finish (gpointer user_data)
-{
- NMAuthChain *self = user_data;
-
- self->idle_id = 0;
- self->done = TRUE;
-
- /* Ensure we stay alive across the callback */
- self->refcount++;
- self->done_func (self, self->error, self->context, self->user_data);
- nm_auth_chain_unref (self);
- return FALSE;
-}
-
-/* Creates the NMAuthSubject automatically */
-NMAuthChain *
-nm_auth_chain_new_context (GDBusMethodInvocation *context,
- NMAuthChainResultFunc done_func,
- gpointer user_data)
-{
- NMAuthSubject *subject;
- NMAuthChain *chain;
-
- g_return_val_if_fail (context != NULL, NULL);
-
- subject = nm_auth_subject_new_unix_process_from_context (context);
- if (!subject)
- return NULL;
-
- chain = nm_auth_chain_new_subject (subject,
- context,
- done_func,
- user_data);
- g_object_unref (subject);
- return chain;
-}
-
-/* Requires an NMAuthSubject */
-NMAuthChain *
-nm_auth_chain_new_subject (NMAuthSubject *subject,
- GDBusMethodInvocation *context,
- NMAuthChainResultFunc done_func,
- gpointer user_data)
-{
- NMAuthChain *self;
-
- g_return_val_if_fail (NM_IS_AUTH_SUBJECT (subject), NULL);
- nm_assert (nm_auth_subject_is_unix_process (subject) || nm_auth_subject_is_internal (subject));
-
- self = g_slice_new0 (NMAuthChain);
- c_list_init (&self->auth_call_lst_head);
- self->refcount = 1;
- self->data = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, chain_data_free);
- self->done_func = done_func;
- self->user_data = user_data;
- self->context = context ? g_object_ref (context) : NULL;
- self->subject = g_object_ref (subject);
- return self;
-}
-
static gpointer
_get_data (NMAuthChain *self, const char *tag)
{
@@ -219,13 +168,7 @@ nm_auth_chain_set_data (NMAuthChain *self,
}
}
-NMAuthSubject *
-nm_auth_chain_get_subject (NMAuthChain *self)
-{
- g_return_val_if_fail (self != NULL, NULL);
-
- return self->subject;
-}
+/*****************************************************************************/
NMAuthCallResult
nm_auth_chain_get_result (NMAuthChain *self, const char *permission)
@@ -239,14 +182,29 @@ nm_auth_chain_get_result (NMAuthChain *self, const char *permission)
return data ? GPOINTER_TO_UINT (data) : NM_AUTH_CALL_RESULT_UNKNOWN;
}
-static void
-auth_call_free (AuthCall *call)
+NMAuthSubject *
+nm_auth_chain_get_subject (NMAuthChain *self)
{
- nm_clear_g_source (&call->call_idle_id);
- nm_clear_g_cancellable (&call->cancellable);
- c_list_unlink_stale (&call->auth_call_lst);
- g_free (call->permission);
- g_slice_free (AuthCall, call);
+ g_return_val_if_fail (self != NULL, NULL);
+
+ return self->subject;
+}
+
+/*****************************************************************************/
+
+static gboolean
+auth_chain_finish (gpointer user_data)
+{
+ NMAuthChain *self = user_data;
+
+ self->idle_id = 0;
+ self->done = TRUE;
+
+ /* Ensure we stay alive across the callback */
+ self->refcount++;
+ self->done_func (self, self->error, self->context, self->user_data);
+ nm_auth_chain_unref (self);
+ return FALSE;
}
static gboolean
@@ -363,6 +321,54 @@ nm_auth_chain_add_call (NMAuthChain *self,
}
}
+/*****************************************************************************/
+
+/* Creates the NMAuthSubject automatically */
+NMAuthChain *
+nm_auth_chain_new_context (GDBusMethodInvocation *context,
+ NMAuthChainResultFunc done_func,
+ gpointer user_data)
+{
+ NMAuthSubject *subject;
+ NMAuthChain *chain;
+
+ g_return_val_if_fail (context != NULL, NULL);
+
+ subject = nm_auth_subject_new_unix_process_from_context (context);
+ if (!subject)
+ return NULL;
+
+ chain = nm_auth_chain_new_subject (subject,
+ context,
+ done_func,
+ user_data);
+ g_object_unref (subject);
+ return chain;
+}
+
+/* Requires an NMAuthSubject */
+NMAuthChain *
+nm_auth_chain_new_subject (NMAuthSubject *subject,
+ GDBusMethodInvocation *context,
+ NMAuthChainResultFunc done_func,
+ gpointer user_data)
+{
+ NMAuthChain *self;
+
+ g_return_val_if_fail (NM_IS_AUTH_SUBJECT (subject), NULL);
+ nm_assert (nm_auth_subject_is_unix_process (subject) || nm_auth_subject_is_internal (subject));
+
+ self = g_slice_new0 (NMAuthChain);
+ c_list_init (&self->auth_call_lst_head);
+ self->refcount = 1;
+ self->data = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, chain_data_free);
+ self->done_func = done_func;
+ self->user_data = user_data;
+ self->context = context ? g_object_ref (context) : NULL;
+ self->subject = g_object_ref (subject);
+ return self;
+}
+
/**
* nm_auth_chain_unref:
* @self: the auth-chain