diff options
| author | Michael Biebl <biebl@debian.org> | 2021-02-11 18:11:46 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2021-02-11 18:11:46 +0100 |
| commit | 80ec1decc49c72efec2a8b87c06245c92c0ab807 (patch) | |
| tree | e3b229aa94e8dcf0590f2317664176e7b8f7607b /src/core/nm-auth-utils.h | |
| parent | 65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (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.h | 95 |
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__ */ |