NetworkManager/src/core/nm-auth-utils.h
Thomas Haller ac1a9e03e4
all: move "src/" directory to "src/core/"
Currently "src/" mostly contains the source code of the daemon.
I say mostly, because that is not true, there are also the device,
settings, wwan, ppp plugins, the initrd generator, the pppd and dhcp
helper, and probably more.

Also we have source code under libnm-core/, libnm/, clients/, and
shared/ directories. That is all confusing.

We should have one "src" directory, that contains subdirectories. Those
subdirectories should contain individual parts (libraries or
applications), that possibly have dependencies on other subdirectories.
There should be a flat hierarchy of directories under src/, which
contains individual modules.

As the name "src/" is already taken, that prevents any sensible
restructuring of the code.

As a first step, move "src/" to "src/core/". This gives space to
reorganize the code better by moving individual components into "src/".

For inspiration, look at systemd's "src/" directory.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/743
2021-02-04 09:45:55 +01:00

95 lines
3.8 KiB
C

/* 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__ */