mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 04:24:32 +00:00
libnm-util: clean up setting registration
Make setting type registration less icky; instead of having the connection register all the settings, have the settings themselves register that information at library load time. Putting this sort of thing in G_DEFINE_TYPE_WITH_CODE is apparently more standard than the home-rolled stuff we had before. Also document the priority stuff so when adding new settings, people know what priority to use. (cleanups by jklimes)
This commit is contained in:
parent
1277f9986c
commit
38e3819b4e
|
@ -74,4 +74,13 @@ p##_get_type (void) \
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !GLIB_CHECK_VERSION(2,34,0)
|
||||
static inline void
|
||||
g_type_ensure (GType type)
|
||||
{
|
||||
if (G_UNLIKELY (type == (GType)-1))
|
||||
g_error ("can't happen");
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* NM_GLIB_COMPAT_H */
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
#include "nm-setting-8021x.h"
|
||||
#include "nm-setting-bluetooth.h"
|
||||
|
@ -116,203 +117,116 @@ enum {
|
|||
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
static GHashTable *registered_settings = NULL;
|
||||
|
||||
#define DEFAULT_MAP_SIZE 20
|
||||
static void __attribute__((constructor))
|
||||
_ensure_registered (void)
|
||||
{
|
||||
g_type_init ();
|
||||
_nm_utils_register_value_transformations ();
|
||||
if (G_UNLIKELY (registered_settings == NULL))
|
||||
registered_settings = g_hash_table_new (g_str_hash, g_str_equal);
|
||||
}
|
||||
|
||||
static struct SettingInfo {
|
||||
const char *name;
|
||||
typedef struct {
|
||||
GType type;
|
||||
guint32 priority;
|
||||
gboolean base_type;
|
||||
GQuark error_quark;
|
||||
} default_map[DEFAULT_MAP_SIZE] = { { NULL } };
|
||||
} SettingInfo;
|
||||
|
||||
static void
|
||||
setting_register (const char *name, GType type)
|
||||
/*
|
||||
* _nm_register_setting:
|
||||
* @name: the name of the #NMSetting object to register
|
||||
* @type: the #GType of the #NMSetting
|
||||
* @priority: the sort priority of the setting, see below
|
||||
* @error_quark: the setting's error quark
|
||||
*
|
||||
* INTERNAL ONLY: registers a setting's internal properties, like its priority
|
||||
* and its error quark type, with libnm-util.
|
||||
*
|
||||
* A setting's priority should roughly follow the OSI layer model, but it also
|
||||
* controls which settings get asked for secrets first. Thus settings which
|
||||
* relate to things that must be working first, like hardware, should get a
|
||||
* higher priority than things which layer on top of the hardware. For example,
|
||||
* the GSM/CDMA settings should provide secrets before the PPP setting does,
|
||||
* because a PIN is required to unlock the device before PPP can even start.
|
||||
* Even settings without secrets should be assigned the right priority.
|
||||
*
|
||||
* 0: reserved for the Connection setting
|
||||
*
|
||||
* 1: hardware-related settings like Ethernet, WiFi, Infiniband, Bridge, etc.
|
||||
* These priority 1 settings are also "base types", which means that at least
|
||||
* one of them is required for the connection to be valid, and their name is
|
||||
* valid in the 'type' property of the Connection setting.
|
||||
*
|
||||
* 2: hardware-related auxiliary settings that require a base setting to be
|
||||
* successful first, like WiFi security, 802.1x, etc.
|
||||
*
|
||||
* 3: hardware-independent settings that are required before IP connectivity
|
||||
* can be established, like PPP, PPPoE, etc.
|
||||
*
|
||||
* 4: IP-level stuff
|
||||
*/
|
||||
void
|
||||
_nm_register_setting (const char *name,
|
||||
const GType type,
|
||||
const guint32 priority,
|
||||
const GQuark error_quark)
|
||||
{
|
||||
SettingInfo *info;
|
||||
|
||||
g_return_if_fail (name != NULL);
|
||||
g_return_if_fail (G_TYPE_IS_INSTANTIATABLE (type));
|
||||
g_return_if_fail (type != G_TYPE_INVALID);
|
||||
g_return_if_fail (type != G_TYPE_NONE);
|
||||
g_return_if_fail (error_quark != 0);
|
||||
g_return_if_fail (priority <= 4);
|
||||
|
||||
if (G_UNLIKELY (!registered_settings)) {
|
||||
registered_settings = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
(GDestroyNotify) g_free,
|
||||
(GDestroyNotify) g_free);
|
||||
}
|
||||
_ensure_registered ();
|
||||
|
||||
if (g_hash_table_lookup (registered_settings, name))
|
||||
g_warning ("Already have a creator function for '%s', overriding", name);
|
||||
|
||||
g_hash_table_insert (registered_settings, g_strdup (name), g_strdup (g_type_name (type)));
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void
|
||||
setting_unregister (const char *name)
|
||||
{
|
||||
if (registered_settings)
|
||||
g_hash_table_remove (registered_settings, name);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
register_one_setting (const char *name,
|
||||
GType type,
|
||||
GQuark error_quark,
|
||||
guint32 priority,
|
||||
gboolean base_type)
|
||||
{
|
||||
static guint32 i = 0;
|
||||
|
||||
g_return_if_fail (i < DEFAULT_MAP_SIZE);
|
||||
g_return_if_fail (default_map[i].name == NULL);
|
||||
|
||||
default_map[i].name = name;
|
||||
default_map[i].type = type;
|
||||
default_map[i].error_quark = error_quark;
|
||||
default_map[i].priority = priority;
|
||||
default_map[i].base_type = base_type;
|
||||
i++;
|
||||
|
||||
setting_register (name, type);
|
||||
}
|
||||
|
||||
static void
|
||||
register_default_settings (void)
|
||||
{
|
||||
_nm_utils_register_value_transformations ();
|
||||
|
||||
if (G_LIKELY (default_map[0].name))
|
||||
if (G_LIKELY (g_hash_table_lookup (registered_settings, name)))
|
||||
return;
|
||||
|
||||
register_one_setting (NM_SETTING_CONNECTION_SETTING_NAME,
|
||||
NM_TYPE_SETTING_CONNECTION,
|
||||
NM_SETTING_CONNECTION_ERROR,
|
||||
0, FALSE);
|
||||
if (priority == 0)
|
||||
g_assert_cmpstr (name, ==, NM_SETTING_CONNECTION_SETTING_NAME);
|
||||
|
||||
register_one_setting (NM_SETTING_WIRED_SETTING_NAME,
|
||||
NM_TYPE_SETTING_WIRED,
|
||||
NM_SETTING_WIRED_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_WIRELESS_SETTING_NAME,
|
||||
NM_TYPE_SETTING_WIRELESS,
|
||||
NM_SETTING_WIRELESS_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_OLPC_MESH_SETTING_NAME,
|
||||
NM_TYPE_SETTING_OLPC_MESH,
|
||||
NM_SETTING_OLPC_MESH_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_GSM_SETTING_NAME,
|
||||
NM_TYPE_SETTING_GSM,
|
||||
NM_SETTING_GSM_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_CDMA_SETTING_NAME,
|
||||
NM_TYPE_SETTING_CDMA,
|
||||
NM_SETTING_CDMA_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_BLUETOOTH_SETTING_NAME,
|
||||
NM_TYPE_SETTING_BLUETOOTH,
|
||||
NM_SETTING_BLUETOOTH_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_WIMAX_SETTING_NAME,
|
||||
NM_TYPE_SETTING_WIMAX,
|
||||
NM_SETTING_WIMAX_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_BOND_SETTING_NAME,
|
||||
NM_TYPE_SETTING_BOND,
|
||||
NM_SETTING_BOND_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_INFINIBAND_SETTING_NAME,
|
||||
NM_TYPE_SETTING_INFINIBAND,
|
||||
NM_SETTING_INFINIBAND_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_VLAN_SETTING_NAME,
|
||||
NM_TYPE_SETTING_VLAN,
|
||||
NM_SETTING_VLAN_ERROR,
|
||||
1, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
|
||||
NM_TYPE_SETTING_WIRELESS_SECURITY,
|
||||
NM_SETTING_WIRELESS_SECURITY_ERROR,
|
||||
2, FALSE);
|
||||
|
||||
register_one_setting (NM_SETTING_SERIAL_SETTING_NAME,
|
||||
NM_TYPE_SETTING_SERIAL,
|
||||
NM_SETTING_SERIAL_ERROR,
|
||||
2, FALSE);
|
||||
|
||||
register_one_setting (NM_SETTING_PPP_SETTING_NAME,
|
||||
NM_TYPE_SETTING_PPP,
|
||||
NM_SETTING_PPP_ERROR,
|
||||
3, FALSE);
|
||||
|
||||
register_one_setting (NM_SETTING_PPPOE_SETTING_NAME,
|
||||
NM_TYPE_SETTING_PPPOE,
|
||||
NM_SETTING_PPPOE_ERROR,
|
||||
3, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_ADSL_SETTING_NAME,
|
||||
NM_TYPE_SETTING_ADSL,
|
||||
NM_SETTING_ADSL_ERROR,
|
||||
3, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_802_1X_SETTING_NAME,
|
||||
NM_TYPE_SETTING_802_1X,
|
||||
NM_SETTING_802_1X_ERROR,
|
||||
3, FALSE);
|
||||
|
||||
register_one_setting (NM_SETTING_VPN_SETTING_NAME,
|
||||
NM_TYPE_SETTING_VPN,
|
||||
NM_SETTING_VPN_ERROR,
|
||||
4, TRUE);
|
||||
|
||||
register_one_setting (NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
NM_TYPE_SETTING_IP4_CONFIG,
|
||||
NM_SETTING_IP4_CONFIG_ERROR,
|
||||
6, FALSE);
|
||||
|
||||
register_one_setting (NM_SETTING_IP6_CONFIG_SETTING_NAME,
|
||||
NM_TYPE_SETTING_IP6_CONFIG,
|
||||
NM_SETTING_IP6_CONFIG_ERROR,
|
||||
6, FALSE);
|
||||
|
||||
/* Be sure to update DEFAULT_MAP_SIZE if you add another setting!! */
|
||||
info = g_slice_new0 (SettingInfo);
|
||||
info->type = type;
|
||||
info->priority = priority;
|
||||
info->error_quark = error_quark;
|
||||
g_hash_table_insert (registered_settings, (gpointer) name, info);
|
||||
}
|
||||
|
||||
static guint32
|
||||
get_priority_for_setting_type (GType type)
|
||||
_get_setting_priority (NMSetting *setting)
|
||||
{
|
||||
int i;
|
||||
GHashTableIter iter;
|
||||
SettingInfo *info;
|
||||
|
||||
for (i = 0; default_map[i].name; i++) {
|
||||
if (default_map[i].type == type)
|
||||
return default_map[i].priority;
|
||||
_ensure_registered ();
|
||||
|
||||
g_hash_table_iter_init (&iter, registered_settings);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer) &info)) {
|
||||
if (G_OBJECT_TYPE (setting) == info->type)
|
||||
return info->priority;
|
||||
}
|
||||
|
||||
return G_MAXUINT32;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
get_base_type_for_setting_type (GType type)
|
||||
_is_setting_base_type (NMSetting *setting)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; default_map[i].name; i++) {
|
||||
if (default_map[i].type == type)
|
||||
return default_map[i].base_type;
|
||||
}
|
||||
return FALSE;
|
||||
/* Historical oddity: PPPoE is a base-type even though it's not
|
||||
* priority 1. It needs to be sorted *after* lower-level stuff like
|
||||
* WiFi security or 802.1x for secrets, but it's still allowed as a
|
||||
* base type.
|
||||
*/
|
||||
return _get_setting_priority (setting) == 1 || NM_IS_SETTING_PPPOE (setting);
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
|
||||
/**
|
||||
* nm_connection_lookup_setting_type:
|
||||
* @name: a setting name
|
||||
|
@ -324,25 +238,18 @@ get_base_type_for_setting_type (GType type)
|
|||
GType
|
||||
nm_connection_lookup_setting_type (const char *name)
|
||||
{
|
||||
char *type_name;
|
||||
GType type;
|
||||
SettingInfo *info;
|
||||
|
||||
g_return_val_if_fail (name != NULL, G_TYPE_NONE);
|
||||
|
||||
if (!registered_settings)
|
||||
register_default_settings ();
|
||||
_ensure_registered ();
|
||||
|
||||
type_name = (char *) g_hash_table_lookup (registered_settings, name);
|
||||
if (type_name) {
|
||||
type = g_type_from_name (type_name);
|
||||
if (!type)
|
||||
g_warning ("Can not get type for '%s'.", type_name);
|
||||
} else {
|
||||
type = 0;
|
||||
g_warning ("Unknown setting '%s'", name);
|
||||
}
|
||||
info = g_hash_table_lookup (registered_settings, name);
|
||||
if (info)
|
||||
return info->type;
|
||||
|
||||
return type;
|
||||
g_warning ("Unknown setting '%s'", name);
|
||||
return G_TYPE_INVALID;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -357,13 +264,16 @@ nm_connection_lookup_setting_type (const char *name)
|
|||
GType
|
||||
nm_connection_lookup_setting_type_by_quark (GQuark error_quark)
|
||||
{
|
||||
int i;
|
||||
SettingInfo *info;
|
||||
GHashTableIter iter;
|
||||
|
||||
for (i = 0; default_map[i].name; i++) {
|
||||
if (default_map[i].error_quark == error_quark)
|
||||
return default_map[i].type;
|
||||
_ensure_registered ();
|
||||
|
||||
g_hash_table_iter_init (&iter, registered_settings);
|
||||
while (g_hash_table_iter_next (&iter, NULL, (gpointer) &info)) {
|
||||
if (info->error_quark == error_quark)
|
||||
return info->type;
|
||||
}
|
||||
|
||||
return G_TYPE_INVALID;
|
||||
}
|
||||
|
||||
|
@ -739,8 +649,8 @@ nm_connection_verify (NMConnection *connection, GError **error)
|
|||
gpointer value;
|
||||
GSList *all_settings = NULL;
|
||||
gboolean success = TRUE;
|
||||
NMSetting *base;
|
||||
const char *ctype;
|
||||
GType base_type;
|
||||
|
||||
if (error)
|
||||
g_return_val_if_fail (*error == NULL, FALSE);
|
||||
|
@ -791,8 +701,8 @@ nm_connection_verify (NMConnection *connection, GError **error)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
base_type = nm_connection_lookup_setting_type (ctype);
|
||||
if (base_type == 0) {
|
||||
base = nm_connection_get_setting_by_name (connection, ctype);
|
||||
if (!base) {
|
||||
g_set_error_literal (error,
|
||||
NM_CONNECTION_ERROR,
|
||||
NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID,
|
||||
|
@ -800,7 +710,7 @@ nm_connection_verify (NMConnection *connection, GError **error)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (!get_base_type_for_setting_type (base_type)) {
|
||||
if (!_is_setting_base_type (base)) {
|
||||
g_set_error (error,
|
||||
NM_CONNECTION_ERROR,
|
||||
NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID,
|
||||
|
@ -896,8 +806,8 @@ setting_priority_compare (gconstpointer a, gconstpointer b)
|
|||
{
|
||||
guint32 prio_a, prio_b;
|
||||
|
||||
prio_a = get_priority_for_setting_type (G_OBJECT_TYPE (NM_SETTING (a)));
|
||||
prio_b = get_priority_for_setting_type (G_OBJECT_TYPE (NM_SETTING (b)));
|
||||
prio_a = _get_setting_priority (NM_SETTING (a));
|
||||
prio_b = _get_setting_priority (NM_SETTING (b));
|
||||
|
||||
if (prio_a < prio_b)
|
||||
return -1;
|
||||
|
@ -906,14 +816,6 @@ setting_priority_compare (gconstpointer a, gconstpointer b)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void
|
||||
add_setting_to_list (gpointer key, gpointer data, gpointer user_data)
|
||||
{
|
||||
GSList **list = (GSList **) user_data;
|
||||
|
||||
*list = g_slist_insert_sorted (*list, NM_SETTING (data), setting_priority_compare);
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_connection_need_secrets:
|
||||
* @connection: the #NMConnection
|
||||
|
@ -938,9 +840,11 @@ nm_connection_need_secrets (NMConnection *connection,
|
|||
GPtrArray **hints)
|
||||
{
|
||||
NMConnectionPrivate *priv;
|
||||
GHashTableIter hiter;
|
||||
GSList *settings = NULL;
|
||||
GSList *iter;
|
||||
const char *name = NULL;
|
||||
NMSetting *setting;
|
||||
|
||||
g_return_val_if_fail (connection != NULL, NULL);
|
||||
g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL);
|
||||
|
@ -950,15 +854,14 @@ nm_connection_need_secrets (NMConnection *connection,
|
|||
priv = NM_CONNECTION_GET_PRIVATE (connection);
|
||||
|
||||
/* Get list of settings in priority order */
|
||||
g_hash_table_foreach (priv->settings, add_setting_to_list, &settings);
|
||||
g_hash_table_iter_init (&hiter, priv->settings);
|
||||
while (g_hash_table_iter_next (&hiter, NULL, (gpointer) &setting))
|
||||
settings = g_slist_insert_sorted (settings, setting, setting_priority_compare);
|
||||
|
||||
for (iter = settings; iter; iter = g_slist_next (iter)) {
|
||||
NMSetting *setting = NM_SETTING (iter->data);
|
||||
GPtrArray *secrets;
|
||||
|
||||
// FIXME: do something with requested secrets rather than asking for
|
||||
// all of them. Maybe make secrets a hash table mapping
|
||||
// settings name :: [list of secrets key names].
|
||||
setting = NM_SETTING (iter->data);
|
||||
secrets = nm_setting_need_secrets (setting);
|
||||
if (secrets) {
|
||||
if (hints)
|
||||
|
@ -1234,14 +1137,7 @@ nm_connection_get_virtual_iface_name (NMConnection *connection)
|
|||
NMConnection *
|
||||
nm_connection_new (void)
|
||||
{
|
||||
GObject *object;
|
||||
|
||||
if (!registered_settings)
|
||||
register_default_settings ();
|
||||
|
||||
object = g_object_new (NM_TYPE_CONNECTION, NULL);
|
||||
|
||||
return NM_CONNECTION (object);
|
||||
return (NMConnection *) g_object_new (NM_TYPE_CONNECTION, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -81,7 +81,12 @@ nm_setting_802_1x_error_quark (void)
|
|||
return quark;
|
||||
}
|
||||
|
||||
G_DEFINE_TYPE (NMSetting8021x, nm_setting_802_1x, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSetting8021x, nm_setting_802_1x, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_802_1X_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
2,
|
||||
NM_SETTING_802_1X_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_802_1X)
|
||||
|
||||
#define NM_SETTING_802_1X_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_802_1X, NMSetting8021xPrivate))
|
||||
|
||||
|
|
|
@ -55,7 +55,12 @@ nm_setting_adsl_error_quark (void)
|
|||
return quark;
|
||||
}
|
||||
|
||||
G_DEFINE_TYPE (NMSettingAdsl, nm_setting_adsl, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingAdsl, nm_setting_adsl, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_ADSL_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_ADSL_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_ADSL)
|
||||
|
||||
#define NM_SETTING_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_ADSL, NMSettingAdslPrivate))
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "nm-setting-bluetooth.h"
|
||||
#include "nm-setting-cdma.h"
|
||||
#include "nm-setting-gsm.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-bluetooth
|
||||
|
@ -62,7 +63,12 @@ nm_setting_bluetooth_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingBluetooth, nm_setting_bluetooth, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBluetooth, nm_setting_bluetooth, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_BLUETOOTH_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_BLUETOOTH_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BLUETOOTH)
|
||||
|
||||
#define NM_SETTING_BLUETOOTH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BLUETOOTH, NMSettingBluetoothPrivate))
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-bond
|
||||
|
@ -58,7 +59,12 @@ nm_setting_bond_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingBond, nm_setting_bond, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBond, nm_setting_bond, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_BOND_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_BOND_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BOND)
|
||||
|
||||
#define NM_SETTING_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BOND, NMSettingBondPrivate))
|
||||
|
||||
|
|
|
@ -54,7 +54,12 @@ nm_setting_cdma_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingCdma, nm_setting_cdma, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingCdma, nm_setting_cdma, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_CDMA_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_CDMA_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CDMA)
|
||||
|
||||
#define NM_SETTING_CDMA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CDMA, NMSettingCdmaPrivate))
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-param-spec-specialized.h"
|
||||
#include "nm-setting-connection.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-connection
|
||||
|
@ -58,7 +59,12 @@ nm_setting_connection_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingConnection, nm_setting_connection, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingConnection, nm_setting_connection, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_CONNECTION_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
0,
|
||||
NM_SETTING_CONNECTION_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CONNECTION)
|
||||
|
||||
#define NM_SETTING_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CONNECTION, NMSettingConnectionPrivate))
|
||||
|
||||
|
|
|
@ -56,7 +56,12 @@ nm_setting_gsm_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingGsm, nm_setting_gsm, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingGsm, nm_setting_gsm, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_GSM_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_GSM_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_GSM)
|
||||
|
||||
#define NM_SETTING_GSM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_GSM, NMSettingGsmPrivate))
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "nm-setting-infiniband.h"
|
||||
#include "nm-param-spec-specialized.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-infiniband
|
||||
|
@ -52,7 +53,12 @@ nm_setting_infiniband_error_quark (void)
|
|||
return quark;
|
||||
}
|
||||
|
||||
G_DEFINE_TYPE (NMSettingInfiniband, nm_setting_infiniband, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingInfiniband, nm_setting_infiniband, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_INFINIBAND_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_INFINIBAND_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_INFINIBAND)
|
||||
|
||||
#define NM_SETTING_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_INFINIBAND, NMSettingInfinibandPrivate))
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-glib-compat.h"
|
||||
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
|
||||
/**
|
||||
|
@ -63,7 +63,12 @@ nm_setting_ip4_config_error_quark (void)
|
|||
G_DEFINE_BOXED_TYPE (NMIP4Address, nm_ip4_address, nm_ip4_address_dup, nm_ip4_address_unref)
|
||||
G_DEFINE_BOXED_TYPE (NMIP4Route, nm_ip4_route, nm_ip4_route_dup, nm_ip4_route_unref)
|
||||
|
||||
G_DEFINE_TYPE (NMSettingIP4Config, nm_setting_ip4_config, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingIP4Config, nm_setting_ip4_config, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_IP4_CONFIG_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
4,
|
||||
NM_SETTING_IP4_CONFIG_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP4_CONFIG)
|
||||
|
||||
#define NM_SETTING_IP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP4_CONFIG, NMSettingIP4ConfigPrivate))
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-glib-compat.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-ip6-config
|
||||
|
@ -60,7 +61,12 @@ nm_setting_ip6_config_error_quark (void)
|
|||
G_DEFINE_BOXED_TYPE (NMIP6Address, nm_ip6_address, nm_ip6_address_dup, nm_ip6_address_unref)
|
||||
G_DEFINE_BOXED_TYPE (NMIP6Route, nm_ip6_route, nm_ip6_route_dup, nm_ip6_route_unref)
|
||||
|
||||
G_DEFINE_TYPE (NMSettingIP6Config, nm_setting_ip6_config, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingIP6Config, nm_setting_ip6_config, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_IP6_CONFIG_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
4,
|
||||
NM_SETTING_IP6_CONFIG_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP6_CONFIG)
|
||||
|
||||
#define NM_SETTING_IP6_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP6_CONFIG, NMSettingIP6ConfigPrivate))
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
GQuark
|
||||
nm_setting_olpc_mesh_error_quark (void)
|
||||
|
@ -48,7 +49,12 @@ nm_setting_olpc_mesh_error_quark (void)
|
|||
|
||||
static void nm_setting_olpc_mesh_init (NMSettingOlpcMesh *setting);
|
||||
|
||||
G_DEFINE_TYPE (NMSettingOlpcMesh, nm_setting_olpc_mesh, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOlpcMesh, nm_setting_olpc_mesh, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_OLPC_MESH_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_OLPC_MESH_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OLPC_MESH)
|
||||
|
||||
#define NM_SETTING_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_OLPC_MESH, NMSettingOlpcMeshPrivate))
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
|
||||
#include "nm-setting-ppp.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-ppp
|
||||
|
@ -54,7 +55,12 @@ nm_setting_ppp_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingPPP, nm_setting_ppp, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingPPP, nm_setting_ppp, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_PPP_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
3,
|
||||
NM_SETTING_PPP_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPP)
|
||||
|
||||
#define NM_SETTING_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPP, NMSettingPPPPrivate))
|
||||
|
||||
|
|
|
@ -56,7 +56,12 @@ nm_setting_pppoe_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingPPPOE, nm_setting_pppoe, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingPPPOE, nm_setting_pppoe, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_PPPOE_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
3,
|
||||
NM_SETTING_PPPOE_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPPOE)
|
||||
|
||||
#define NM_SETTING_PPPOE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPPOE, NMSettingPPPOEPrivate))
|
||||
|
||||
|
|
|
@ -21,11 +21,23 @@
|
|||
#ifndef NM_SETTING_PRIVATE_H
|
||||
#define NM_SETTING_PRIVATE_H
|
||||
|
||||
#include "nm-glib-compat.h"
|
||||
|
||||
#define NM_SETTING_SECRET_FLAGS_ALL \
|
||||
(NM_SETTING_SECRET_FLAG_NONE | \
|
||||
NM_SETTING_SECRET_FLAG_AGENT_OWNED | \
|
||||
NM_SETTING_SECRET_FLAG_NOT_SAVED | \
|
||||
NM_SETTING_SECRET_FLAG_NOT_REQUIRED)
|
||||
|
||||
void _nm_register_setting (const char *name,
|
||||
const GType type,
|
||||
const guint32 priority,
|
||||
const GQuark error_quark);
|
||||
|
||||
/* 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); }
|
||||
|
||||
#endif /* NM_SETTING_PRIVATE_H */
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
|
||||
#include "nm-setting-serial.h"
|
||||
#include "nm-glib-compat.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-serial
|
||||
|
@ -57,7 +58,12 @@ nm_setting_serial_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingSerial, nm_setting_serial, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingSerial, nm_setting_serial, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_SERIAL_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
2,
|
||||
NM_SETTING_SERIAL_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_SERIAL)
|
||||
|
||||
#define NM_SETTING_SERIAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_SERIAL, NMSettingSerialPrivate))
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-setting-connection.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-vlan
|
||||
|
@ -57,7 +58,12 @@ nm_setting_vlan_error_quark (void)
|
|||
return quark;
|
||||
}
|
||||
|
||||
G_DEFINE_TYPE (NMSettingVlan, nm_setting_vlan, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingVlan, nm_setting_vlan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_VLAN_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_VLAN_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VLAN)
|
||||
|
||||
#define NM_SETTING_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VLAN, NMSettingVlanPrivate))
|
||||
|
||||
|
|
|
@ -64,7 +64,12 @@ nm_setting_vpn_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingVPN, nm_setting_vpn, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingVPN, nm_setting_vpn, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_VPN_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_VPN_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VPN)
|
||||
|
||||
#define NM_SETTING_VPN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VPN, NMSettingVPNPrivate))
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include "nm-setting-wimax.h"
|
||||
#include "nm-param-spec-specialized.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-wimax
|
||||
|
@ -54,7 +55,12 @@ nm_setting_wimax_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingWimax, nm_setting_wimax, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWimax, nm_setting_wimax, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_WIMAX_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_WIMAX_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIMAX)
|
||||
|
||||
#define NM_SETTING_WIMAX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIMAX, NMSettingWimaxPrivate))
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-wired
|
||||
|
@ -61,7 +62,12 @@ nm_setting_wired_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingWired, nm_setting_wired, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWired, nm_setting_wired, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_WIRED_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_WIRED_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRED)
|
||||
|
||||
#define NM_SETTING_WIRED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRED, NMSettingWiredPrivate))
|
||||
|
||||
|
|
|
@ -75,7 +75,12 @@ nm_setting_wireless_security_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingWirelessSecurity, nm_setting_wireless_security, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWirelessSecurity, nm_setting_wireless_security, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
2,
|
||||
NM_SETTING_WIRELESS_SECURITY_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS_SECURITY)
|
||||
|
||||
#define NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS_SECURITY, NMSettingWirelessSecurityPrivate))
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "nm-utils.h"
|
||||
#include "nm-dbus-glib-types.h"
|
||||
#include "nm-utils-private.h"
|
||||
#include "nm-setting-private.h"
|
||||
|
||||
/**
|
||||
* SECTION:nm-setting-wireless
|
||||
|
@ -62,7 +63,12 @@ nm_setting_wireless_error_quark (void)
|
|||
}
|
||||
|
||||
|
||||
G_DEFINE_TYPE (NMSettingWireless, nm_setting_wireless, NM_TYPE_SETTING)
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWireless, nm_setting_wireless, NM_TYPE_SETTING,
|
||||
_nm_register_setting (NM_SETTING_WIRELESS_SETTING_NAME,
|
||||
g_define_type_id,
|
||||
1,
|
||||
NM_SETTING_WIRELESS_ERROR))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS)
|
||||
|
||||
#define NM_SETTING_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessPrivate))
|
||||
|
||||
|
|
Loading…
Reference in a new issue