about summary refs log tree commit diff
path: root/libnm-util/nm-setting-private.h
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-util/nm-setting-private.h')
-rw-r--r--libnm-util/nm-setting-private.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/libnm-util/nm-setting-private.h b/libnm-util/nm-setting-private.h
index 1460841c..c3ec9d19 100644
--- a/libnm-util/nm-setting-private.h
+++ b/libnm-util/nm-setting-private.h
@@ -21,6 +21,7 @@
 #ifndef NM_SETTING_PRIVATE_H
 #define NM_SETTING_PRIVATE_H
 
+#include "nm-setting.h"
 #include "nm-glib-compat.h"
 
 #define NM_SETTING_SECRET_FLAGS_ALL \
@@ -34,10 +35,62 @@ void _nm_register_setting (const char *name,
                            const guint32 priority,
                            const GQuark error_quark);
 
+/* Ensure, that name is a compile time constant string. Put the function name in parenthesis to suppress expansion. */
+#define _nm_register_setting(name, type, priority, error_quark)    _nm_register_setting ((name ""), type, priority, error_quark)
+
+gboolean _nm_setting_is_base_type (NMSetting *setting);
+gboolean _nm_setting_type_is_base_type (GType type);
+GType _nm_setting_lookup_setting_type (const char *name);
+GType _nm_setting_lookup_setting_type_by_quark (GQuark error_quark);
+gint _nm_setting_compare_priority (gconstpointer a, gconstpointer b);
+
+typedef enum NMSettingUpdateSecretResult {
+	NM_SETTING_UPDATE_SECRET_ERROR              = FALSE,
+	NM_SETTING_UPDATE_SECRET_SUCCESS_MODIFIED   = TRUE,
+	NM_SETTING_UPDATE_SECRET_SUCCESS_UNCHANGED  = 2,
+} NMSettingUpdateSecretResult;
+
+NMSettingUpdateSecretResult _nm_setting_update_secrets (NMSetting *setting,
+                                                        GHashTable *secrets,
+                                                        GError **error);
+gboolean _nm_setting_clear_secrets (NMSetting *setting);
+gboolean _nm_setting_clear_secrets_with_flags (NMSetting *setting,
+                                               NMSettingClearSecretsWithFlagsFn func,
+                                               gpointer user_data);
+
+
+/* NM_SETTING_COMPARE_FLAG_INFERRABLE: check whether a device-generated
+ * connection can be replaced by a already-defined connection. This flag only
+ * takes into account properties marked with the %NM_SETTING_PARAM_INFERRABLE
+ * flag.
+ */
+#define NM_SETTING_COMPARE_FLAG_INFERRABLE 0x80000000
+
+/* The property of the #NMSetting should be considered during comparisons that
+ * use the %NM_SETTING_COMPARE_FLAG_INFERRABLE flag. Properties that don't have
+ * this flag, are ignored when doing an infrerrable comparison.  This flag should
+ * be set on all properties that are read from the kernel or the system when a
+ * connection is generated.  eg, IP addresses/routes can be read from the
+ * kernel, but the 'autoconnect' property cannot, so
+ * %NM_SETTING_IP4_CONFIG_ADDRESSES gets the INFERRABLE flag, but
+ * %NM_SETTING_CONNECTION_AUTOCONNECT would not.
+ *
+ * This flag should not be used with properties where the default cannot be
+ * read separately from the current value, like MTU or wired duplex mode.
+ */
+#define NM_SETTING_PARAM_INFERRABLE (1 << (4 + G_PARAM_USER_SHIFT))
+
 /* Ensure the setting's GType is registered at library load time */
 #define NM_SETTING_REGISTER_TYPE(x) \
 static void __attribute__((constructor)) register_setting (void) \
 { g_type_init (); g_type_ensure (x); }
 
+NMSetting *nm_setting_find_in_list (GSList *settings_list, const char *setting_name);
+
+/* Private NMSettingIP4Config methods */
+#include "nm-setting-ip4-config.h"
+const char *nm_setting_ip4_config_get_address_label      (NMSettingIP4Config *setting, guint32 i);
+gboolean    nm_setting_ip4_config_add_address_with_label (NMSettingIP4Config *setting, NMIP4Address *address, const char *label);
+
 #endif  /* NM_SETTING_PRIVATE_H */