about summary refs log tree commit diff
path: root/src/core/nm-auth-utils.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2021-02-11 18:11:46 +0100
committerMichael Biebl <biebl@debian.org>2021-02-11 18:11:46 +0100
commit80ec1decc49c72efec2a8b87c06245c92c0ab807 (patch)
treee3b229aa94e8dcf0590f2317664176e7b8f7607b /src/core/nm-auth-utils.h
parent65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (diff)
New upstream version 1.29.90 upstream/1.29.90
Diffstat (limited to 'src/core/nm-auth-utils.h')
-rw-r--r--src/core/nm-auth-utils.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/core/nm-auth-utils.h b/src/core/nm-auth-utils.h
new file mode 100644
index 00000000..999dacf5
--- /dev/null
+++ b/src/core/nm-auth-utils.h
@@ -0,0 +1,95 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2010 Red Hat, Inc.
+ */
+
+#ifndef __NETWORKMANAGER_MANAGER_AUTH_H__
+#define __NETWORKMANAGER_MANAGER_AUTH_H__
+
+#include "nm-connection.h"
+
+#include "nm-auth-manager.h"
+
+/*****************************************************************************/
+
+typedef struct _NMAuthChain NMAuthChain;
+
+typedef void (*NMAuthChainResultFunc)(NMAuthChain *          chain,
+                                      GDBusMethodInvocation *context,
+                                      gpointer               user_data);
+
+NMAuthChain *nm_auth_chain_new_context(GDBusMethodInvocation *context,
+                                       NMAuthChainResultFunc  done_func,
+                                       gpointer               user_data);
+
+NMAuthChain *nm_auth_chain_new_subject(NMAuthSubject *        subject,
+                                       GDBusMethodInvocation *context,
+                                       NMAuthChainResultFunc  done_func,
+                                       gpointer               user_data);
+
+GCancellable *nm_auth_chain_get_cancellable(NMAuthChain *self);
+void          nm_auth_chain_set_cancellable(NMAuthChain *self, GCancellable *cancellable);
+
+gpointer nm_auth_chain_get_data(NMAuthChain *chain, const char *tag);
+
+gpointer nm_auth_chain_steal_data(NMAuthChain *chain, const char *tag);
+
+void nm_auth_chain_set_data_unsafe(NMAuthChain *  chain,
+                                   const char *   tag,
+                                   gpointer       data,
+                                   GDestroyNotify data_destroy);
+
+#define nm_auth_chain_set_data(chain, tag, data, data_destroy) \
+    nm_auth_chain_set_data_unsafe((chain), "" tag "", (data), (data_destroy))
+
+NMAuthCallResult nm_auth_chain_get_result(NMAuthChain *chain, const char *permission);
+
+void nm_auth_chain_add_call_unsafe(NMAuthChain *chain,
+                                   const char * permission,
+                                   gboolean     allow_interaction);
+
+#define nm_auth_chain_add_call(chain, permission, allow_interaction) \
+    nm_auth_chain_add_call_unsafe((chain), "" permission "", (allow_interaction))
+
+void nm_auth_chain_destroy(NMAuthChain *chain);
+
+NMAuthSubject *nm_auth_chain_get_subject(NMAuthChain *self);
+
+GDBusMethodInvocation *nm_auth_chain_get_context(NMAuthChain *self);
+
+/*****************************************************************************/
+
+struct CList;
+
+static inline NMAuthChain *
+nm_auth_chain_parent_lst_entry(struct CList *parent_lst_self)
+{
+    return (NMAuthChain *) ((void *) parent_lst_self);
+}
+
+static inline struct CList *
+nm_auth_chain_parent_lst_list(NMAuthChain *self)
+{
+    return (struct CList *) ((void *) self);
+}
+
+/*****************************************************************************/
+
+/* Caller must free returned error description */
+gboolean
+nm_auth_is_subject_in_acl(NMConnection *connection, NMAuthSubject *subject, char **out_error_desc);
+
+gboolean nm_auth_is_subject_in_acl_set_error(NMConnection * connection,
+                                             NMAuthSubject *subject,
+                                             GQuark         err_domain,
+                                             int            err_code,
+                                             GError **      error);
+
+gboolean nm_auth_is_invocation_in_acl_set_error(NMConnection *         connection,
+                                                GDBusMethodInvocation *invocation,
+                                                GQuark                 err_domain,
+                                                int                    err_code,
+                                                NMAuthSubject **       out_subject,
+                                                GError **              error);
+
+#endif /* __NETWORKMANAGER_MANAGER_AUTH_H__ */