diff options
| author | Michael Biebl <biebl@debian.org> | 2019-03-26 23:25:23 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2019-03-26 23:25:23 +0100 |
| commit | 9a6dcbf895f9da01768e64b73cec88c16157d91e (patch) | |
| tree | a359958930d731e9f1b59344642e10754419fe84 /libnm-core/nm-setting-bridge.c | |
| parent | 964ae8cc391520440cf5aa13e2b9cc34850ea6c2 (diff) | |
New upstream version 1.16.0 upstream/1.16.0
Diffstat (limited to 'libnm-core/nm-setting-bridge.c')
| -rw-r--r-- | libnm-core/nm-setting-bridge.c | 284 |
1 files changed, 141 insertions, 143 deletions
diff --git a/libnm-core/nm-setting-bridge.c b/libnm-core/nm-setting-bridge.c index 71fe2ed2..e418013c 100644 --- a/libnm-core/nm-setting-bridge.c +++ b/libnm-core/nm-setting-bridge.c @@ -21,11 +21,11 @@ #include "nm-default.h" -#include <string.h> +#include "nm-setting-bridge.h" + #include <ctype.h> #include <stdlib.h> -#include "nm-setting-bridge.h" #include "nm-connection-private.h" #include "nm-utils.h" #include "nm-utils-private.h" @@ -38,9 +38,19 @@ * necessary for bridging connections. **/ -G_DEFINE_TYPE (NMSettingBridge, nm_setting_bridge, NM_TYPE_SETTING) +/*****************************************************************************/ -#define NM_SETTING_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE, NMSettingBridgePrivate)) +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_MAC_ADDRESS, + PROP_STP, + PROP_PRIORITY, + PROP_FORWARD_DELAY, + PROP_HELLO_TIME, + PROP_MAX_AGE, + PROP_AGEING_TIME, + PROP_GROUP_FORWARD_MASK, + PROP_MULTICAST_SNOOPING, +); typedef struct { char * mac_address; @@ -54,32 +64,11 @@ typedef struct { gboolean multicast_snooping; } NMSettingBridgePrivate; -enum { - PROP_0, - PROP_MAC_ADDRESS, - PROP_STP, - PROP_PRIORITY, - PROP_FORWARD_DELAY, - PROP_HELLO_TIME, - PROP_MAX_AGE, - PROP_AGEING_TIME, - PROP_GROUP_FORWARD_MASK, - PROP_MULTICAST_SNOOPING, - LAST_PROP -}; +G_DEFINE_TYPE (NMSettingBridge, nm_setting_bridge, NM_TYPE_SETTING) -/** - * nm_setting_bridge_new: - * - * Creates a new #NMSettingBridge object with default values. - * - * Returns: (transfer full): the new empty #NMSettingBridge object - **/ -NMSetting * -nm_setting_bridge_new (void) -{ - return (NMSetting *) g_object_new (NM_TYPE_SETTING_BRIDGE, NULL); -} +#define NM_SETTING_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE, NMSettingBridgePrivate)) + +/*****************************************************************************/ /** * nm_setting_bridge_get_mac_address: @@ -211,7 +200,7 @@ nm_setting_bridge_get_multicast_snooping (NMSettingBridge *setting) return NM_SETTING_BRIDGE_GET_PRIVATE (setting)->multicast_snooping; } -static inline gboolean +static gboolean check_range (guint32 val, guint32 min, guint32 max, @@ -292,56 +281,42 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return _nm_connection_verify_required_interface_name (connection, error); } -static void -nm_setting_bridge_init (NMSettingBridge *setting) -{ -} - -static void -finalize (GObject *object) -{ - NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE (object); - - g_free (priv->mac_address); - - G_OBJECT_CLASS (nm_setting_bridge_parent_class)->finalize (object); -} +/*****************************************************************************/ static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE (object); + NMSettingBridge *setting = NM_SETTING_BRIDGE (object); switch (prop_id) { case PROP_MAC_ADDRESS: - g_free (priv->mac_address); - priv->mac_address = _nm_utils_hwaddr_canonical_or_invalid (g_value_get_string (value), - ETH_ALEN); + g_value_set_string (value, nm_setting_bridge_get_mac_address (setting)); break; case PROP_STP: - priv->stp = g_value_get_boolean (value); + g_value_set_boolean (value, priv->stp); break; case PROP_PRIORITY: - priv->priority = (guint16) g_value_get_uint (value); + g_value_set_uint (value, priv->priority); break; case PROP_FORWARD_DELAY: - priv->forward_delay = (guint16) g_value_get_uint (value); + g_value_set_uint (value, priv->forward_delay); break; case PROP_HELLO_TIME: - priv->hello_time = (guint16) g_value_get_uint (value); + g_value_set_uint (value, priv->hello_time); break; case PROP_MAX_AGE: - priv->max_age = (guint16) g_value_get_uint (value); + g_value_set_uint (value, priv->max_age); break; case PROP_AGEING_TIME: - priv->ageing_time = g_value_get_uint (value); + g_value_set_uint (value, priv->ageing_time); break; case PROP_GROUP_FORWARD_MASK: - priv->group_forward_mask = (guint16) g_value_get_uint (value); + g_value_set_uint (value, priv->group_forward_mask); break; case PROP_MULTICAST_SNOOPING: - priv->multicast_snooping = g_value_get_boolean (value); + g_value_set_boolean (value, priv->multicast_snooping); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -350,39 +325,40 @@ set_property (GObject *object, guint prop_id, } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) { NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE (object); - NMSettingBridge *setting = NM_SETTING_BRIDGE (object); switch (prop_id) { case PROP_MAC_ADDRESS: - g_value_set_string (value, nm_setting_bridge_get_mac_address (setting)); + g_free (priv->mac_address); + priv->mac_address = _nm_utils_hwaddr_canonical_or_invalid (g_value_get_string (value), + ETH_ALEN); break; case PROP_STP: - g_value_set_boolean (value, priv->stp); + priv->stp = g_value_get_boolean (value); break; case PROP_PRIORITY: - g_value_set_uint (value, priv->priority); + priv->priority = (guint16) g_value_get_uint (value); break; case PROP_FORWARD_DELAY: - g_value_set_uint (value, priv->forward_delay); + priv->forward_delay = (guint16) g_value_get_uint (value); break; case PROP_HELLO_TIME: - g_value_set_uint (value, priv->hello_time); + priv->hello_time = (guint16) g_value_get_uint (value); break; case PROP_MAX_AGE: - g_value_set_uint (value, priv->max_age); + priv->max_age = (guint16) g_value_get_uint (value); break; case PROP_AGEING_TIME: - g_value_set_uint (value, priv->ageing_time); + priv->ageing_time = g_value_get_uint (value); break; case PROP_GROUP_FORWARD_MASK: - g_value_set_uint (value, priv->group_forward_mask); + priv->group_forward_mask = (guint16) g_value_get_uint (value); break; case PROP_MULTICAST_SNOOPING: - g_value_set_boolean (value, priv->multicast_snooping); + priv->multicast_snooping = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -390,6 +366,36 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_setting_bridge_init (NMSettingBridge *setting) +{ +} + +/** + * nm_setting_bridge_new: + * + * Creates a new #NMSettingBridge object with default values. + * + * Returns: (transfer full): the new empty #NMSettingBridge object + **/ +NMSetting * +nm_setting_bridge_new (void) +{ + return (NMSetting *) g_object_new (NM_TYPE_SETTING_BRIDGE, NULL); +} + +static void +finalize (GObject *object) +{ + NMSettingBridgePrivate *priv = NM_SETTING_BRIDGE_GET_PRIVATE (object); + + g_free (priv->mac_address); + + G_OBJECT_CLASS (nm_setting_bridge_parent_class)->finalize (object); +} + static void nm_setting_bridge_class_init (NMSettingBridgeClass *klass) { @@ -399,8 +405,8 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) g_type_class_add_private (klass, sizeof (NMSettingBridgePrivate)); - object_class->set_property = set_property; object_class->get_property = get_property; + object_class->set_property = set_property; object_class->finalize = finalize; setting_class->verify = verify; @@ -435,17 +441,15 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * BRIDGE_MACADDR for bridges is an NM extension. * ---end--- */ - g_object_class_install_property - (object_class, PROP_MAC_ADDRESS, - g_param_spec_string (NM_SETTING_BRIDGE_MAC_ADDRESS, "", "", - NULL, - G_PARAM_READWRITE | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MAC_ADDRESS] = + g_param_spec_string (NM_SETTING_BRIDGE_MAC_ADDRESS, "", "", + NULL, + G_PARAM_READWRITE | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); _properties_override_add_transform (properties_override, - g_object_class_find_property (G_OBJECT_CLASS (setting_class), - NM_SETTING_BRIDGE_MAC_ADDRESS), + obj_properties[PROP_MAC_ADDRESS], G_VARIANT_TYPE_BYTESTRING, _nm_utils_hwaddr_to_dbus, _nm_utils_hwaddr_from_dbus); @@ -462,14 +466,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: Span tree protocol participation. * ---end--- */ - g_object_class_install_property - (object_class, PROP_STP, - g_param_spec_boolean (NM_SETTING_BRIDGE_STP, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_STP] = + g_param_spec_boolean (NM_SETTING_BRIDGE_STP, "", "", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:priority: @@ -486,14 +489,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: STP priority. * ---end--- */ - g_object_class_install_property - (object_class, PROP_PRIORITY, - g_param_spec_uint (NM_SETTING_BRIDGE_PRIORITY, "", "", - 0, G_MAXUINT16, 0x8000, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PRIORITY] = + g_param_spec_uint (NM_SETTING_BRIDGE_PRIORITY, "", "", + 0, G_MAXUINT16, 0x8000, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:forward-delay: @@ -508,14 +510,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: STP forwarding delay. * ---end--- */ - g_object_class_install_property - (object_class, PROP_FORWARD_DELAY, - g_param_spec_uint (NM_SETTING_BRIDGE_FORWARD_DELAY, "", "", - 0, NM_BR_MAX_FORWARD_DELAY, 15, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_FORWARD_DELAY] = + g_param_spec_uint (NM_SETTING_BRIDGE_FORWARD_DELAY, "", "", + 0, NM_BR_MAX_FORWARD_DELAY, 15, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:hello-time: @@ -530,14 +531,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: STP hello time. * ---end--- */ - g_object_class_install_property - (object_class, PROP_HELLO_TIME, - g_param_spec_uint (NM_SETTING_BRIDGE_HELLO_TIME, "", "", - 0, NM_BR_MAX_HELLO_TIME, 2, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_HELLO_TIME] = + g_param_spec_uint (NM_SETTING_BRIDGE_HELLO_TIME, "", "", + 0, NM_BR_MAX_HELLO_TIME, 2, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:max-age: @@ -552,14 +552,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: STP maximum message age. * ---end--- */ - g_object_class_install_property - (object_class, PROP_MAX_AGE, - g_param_spec_uint (NM_SETTING_BRIDGE_MAX_AGE, "", "", - 0, NM_BR_MAX_MAX_AGE, 20, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MAX_AGE] = + g_param_spec_uint (NM_SETTING_BRIDGE_MAX_AGE, "", "", + 0, NM_BR_MAX_MAX_AGE, 20, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:ageing-time: @@ -574,14 +573,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: Ethernet MAC ageing time. * ---end--- */ - g_object_class_install_property - (object_class, PROP_AGEING_TIME, - g_param_spec_uint (NM_SETTING_BRIDGE_AGEING_TIME, "", "", - NM_BR_MIN_AGEING_TIME, NM_BR_MAX_AGEING_TIME, 300, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_AGEING_TIME] = + g_param_spec_uint (NM_SETTING_BRIDGE_AGEING_TIME, "", "", + NM_BR_MIN_AGEING_TIME, NM_BR_MAX_AGEING_TIME, 300, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:group-forward-mask: @@ -595,14 +593,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * * Since: 1.10 **/ - g_object_class_install_property - (object_class, PROP_GROUP_FORWARD_MASK, - g_param_spec_uint (NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "", "", - 0, 0xFFFF, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_GROUP_FORWARD_MASK] = + g_param_spec_uint (NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "", "", + 0, 0xFFFF, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingBridge:multicast-snooping: @@ -622,14 +619,13 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) * description: IGMP snooping support. * ---end--- */ - g_object_class_install_property - (object_class, PROP_MULTICAST_SNOOPING, - g_param_spec_boolean (NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_MULTICAST_SNOOPING] = + g_param_spec_boolean (NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "", "", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /* ---dbus--- * property: interface-name @@ -645,6 +641,8 @@ nm_setting_bridge_class_init (NMSettingBridgeClass *klass) _nm_setting_get_deprecated_virtual_interface_name, NULL); + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); + _nm_setting_class_commit_full (setting_class, NM_META_SETTING_TYPE_BRIDGE, NULL, properties_override); } |