
These SPDX license identifiers are deprecated ([1]). Update them. [1] https://spdx.org/licenses/ sed \ -e '1 s%^/\* SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+ \*/$%/* SPDX-License-Identifier: \1-or-later */%' \ -e '1,2 s%^\(--\|#\|//\) SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+$%\1 SPDX-License-Identifier: \2-or-later%' \ -i \ $(git grep -l SPDX-License-Identifier -- \ ':(exclude)shared/c-*/' \ ':(exclude)shared/n-*/' \ ':(exclude)shared/systemd/src' \ ':(exclude)src/systemd/src')
166 lines
6.1 KiB
C
166 lines
6.1 KiB
C
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
|
|
#ifndef __NM_KEYFILE_H__
|
|
#define __NM_KEYFILE_H__
|
|
|
|
#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
|
|
#error "Only <NetworkManager.h> can be included directly."
|
|
#endif
|
|
|
|
#include "nm-core-types.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
/**
|
|
* NMKeyfileHandlerFlags:
|
|
* @NM_KEYFILE_HANDLER_FLAGS_NONE: no flags set.
|
|
*
|
|
* Flags for customizing nm_keyfile_read() and nm_keyfile_write().
|
|
*
|
|
* Currently no flags are implemented.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef enum { /*< flags >*/
|
|
NM_KEYFILE_HANDLER_FLAGS_NONE = 0,
|
|
} NMKeyfileHandlerFlags;
|
|
|
|
/**
|
|
* NMKeyfileHandlerType:
|
|
* @NM_KEYFILE_HANDLER_TYPE_WARN: a warning.
|
|
* @NM_KEYFILE_HANDLER_TYPE_WRITE_CERT: for handling certificates while writing
|
|
* a connection to keyfile.
|
|
*
|
|
* The type of the callback for %NMKeyfileReadHandler and %NMKeyfileWriteHandler.
|
|
* Depending on the type, you can interpret %NMKeyfileHandlerData.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef enum {
|
|
NM_KEYFILE_HANDLER_TYPE_WARN = 1,
|
|
NM_KEYFILE_HANDLER_TYPE_WRITE_CERT = 2,
|
|
} NMKeyfileHandlerType;
|
|
|
|
/**
|
|
* NMKeyfileHandlerData:
|
|
*
|
|
* Opaque type with parameters for the callback. The actual content
|
|
* depends on the %NMKeyfileHandlerType.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef struct _NMKeyfileHandlerData NMKeyfileHandlerData;
|
|
|
|
/**
|
|
* NMKeyfileReadHandler:
|
|
* @keyfile: the #GKeyFile that is currently read
|
|
* @connection: the #NMConnection that is being constructed.
|
|
* @handler_type: the %NMKeyfileHandlerType that indicates which type
|
|
* the request is.
|
|
* @handler_data: the #NMKeyfileHandlerData. What you can do with it
|
|
* depends on the @handler_type.
|
|
* @user_data: the user-data argument to nm_keyfile_read().
|
|
*
|
|
* Hook to nm_keyfile_read().
|
|
*
|
|
* The callee may abort the reading by setting an error via nm_keyfile_handler_data_fail_with_error().
|
|
*
|
|
* Returns: the callee should return TRUE, if the event was handled and/or recognized.
|
|
* Otherwise, a default action will be performed that depends on the @type.
|
|
* For %NM_KEYFILE_HANDLER_TYPE_WARN type, the default action is doing nothing.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef gboolean (*NMKeyfileReadHandler)(GKeyFile * keyfile,
|
|
NMConnection * connection,
|
|
NMKeyfileHandlerType handler_type,
|
|
NMKeyfileHandlerData *handler_data,
|
|
void * user_data);
|
|
|
|
NM_AVAILABLE_IN_1_30
|
|
NMConnection *nm_keyfile_read(GKeyFile * keyfile,
|
|
const char * base_dir,
|
|
NMKeyfileHandlerFlags handler_flags,
|
|
NMKeyfileReadHandler handler,
|
|
void * user_data,
|
|
GError ** error);
|
|
|
|
/**
|
|
* NMKeyfileWriteHandler:
|
|
* @connection: the #NMConnection that is currently written.
|
|
* @keyfile: the #GKeyFile that is currently constructed.
|
|
* @handler_type: the %NMKeyfileHandlerType that indicates which type
|
|
* the request is.
|
|
* @handler_data: the #NMKeyfileHandlerData. What you can do with it
|
|
* depends on the @handler_type.
|
|
* @user_data: the user-data argument to nm_keyfile_read().
|
|
*
|
|
* This is a hook to tweak the serialization.
|
|
*
|
|
* Handler for certain properties or events that are not entirely contained
|
|
* within the keyfile or that might be serialized differently. The @type and
|
|
* @handler_data arguments tell which kind of argument we have at hand.
|
|
*
|
|
* Currently only the type %NM_KEYFILE_HANDLER_TYPE_WRITE_CERT is supported.
|
|
*
|
|
* The callee may call nm_keyfile_handler_data_fail_with_error() to abort
|
|
* the writing with error.
|
|
*
|
|
* Returns: the callee should return %TRUE if the event was handled. If the
|
|
* event was unhandled, a default action will be performed that depends on
|
|
* the @handler_type.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef gboolean (*NMKeyfileWriteHandler)(NMConnection * connection,
|
|
GKeyFile * keyfile,
|
|
NMKeyfileHandlerType handler_type,
|
|
NMKeyfileHandlerData *handler_data,
|
|
void * user_data);
|
|
|
|
NM_AVAILABLE_IN_1_30
|
|
GKeyFile *nm_keyfile_write(NMConnection * connection,
|
|
NMKeyfileHandlerFlags handler_flags,
|
|
NMKeyfileWriteHandler handler,
|
|
void * user_data,
|
|
GError ** error);
|
|
|
|
/*****************************************************************************/
|
|
|
|
NM_AVAILABLE_IN_1_30
|
|
void nm_keyfile_handler_data_fail_with_error(NMKeyfileHandlerData *handler_data, GError *src);
|
|
|
|
NM_AVAILABLE_IN_1_30
|
|
void nm_keyfile_handler_data_get_context(const NMKeyfileHandlerData *handler_data,
|
|
const char ** out_kf_group_name,
|
|
const char ** out_kf_key_name,
|
|
NMSetting ** out_cur_setting,
|
|
const char ** out_cur_property_name);
|
|
|
|
/**
|
|
* NMKeyfileWarnSeverity:
|
|
* @NM_KEYFILE_WARN_SEVERITY_DEBUG: debug message
|
|
* @NM_KEYFILE_WARN_SEVERITY_INFO: info message
|
|
* @NM_KEYFILE_WARN_SEVERITY_INFO_MISSING_FILE: info message about a missing file
|
|
* @NM_KEYFILE_WARN_SEVERITY_WARN: a warning message
|
|
*
|
|
* The severity level of %NM_KEYFILE_HANDLER_TYPE_WARN events.
|
|
*
|
|
* Since: 1.30
|
|
*/
|
|
typedef enum {
|
|
NM_KEYFILE_WARN_SEVERITY_DEBUG = 1000,
|
|
NM_KEYFILE_WARN_SEVERITY_INFO = 2000,
|
|
NM_KEYFILE_WARN_SEVERITY_INFO_MISSING_FILE = 2901,
|
|
NM_KEYFILE_WARN_SEVERITY_WARN = 3000,
|
|
} NMKeyfileWarnSeverity;
|
|
|
|
NM_AVAILABLE_IN_1_30
|
|
void nm_keyfile_handler_data_warn_get(const NMKeyfileHandlerData *handler_data,
|
|
const char ** out_message,
|
|
NMKeyfileWarnSeverity * out_severity);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __NM_KEYFILE_H__ */
|