about summary refs log tree commit diff
path: root/src/libnm-core-impl/nm-setting-vxlan.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2022-02-14 19:23:28 +0100
committerMichael Biebl <biebl@debian.org>2022-02-14 19:23:28 +0100
commit2f94dba7385fd0e0ef19a06eb4a2fcf6c43d7946 (patch)
treee2222f5577115985dd52044d2991253403cdd952 /src/libnm-core-impl/nm-setting-vxlan.c
parent88c227d90a6b7b388c5c85d72802a0ca8f05ed5c (diff)
New upstream version 1.35.91 upstream/1.35.91
Diffstat (limited to 'src/libnm-core-impl/nm-setting-vxlan.c')
-rw-r--r--src/libnm-core-impl/nm-setting-vxlan.c397
1 files changed, 137 insertions, 260 deletions
diff --git a/src/libnm-core-impl/nm-setting-vxlan.c b/src/libnm-core-impl/nm-setting-vxlan.c
index c2d23a7f..f617a073 100644
--- a/src/libnm-core-impl/nm-setting-vxlan.c
+++ b/src/libnm-core-impl/nm-setting-vxlan.c
@@ -42,22 +42,22 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_PARENT,
                                   PROP_L3_MISS, );
 
 typedef struct {
-    char *parent;
-    char *local;
-    char *remote;
-    guint id;
-    guint source_port_min;
-    guint source_port_max;
-    guint destination_port;
-    guint tos;
-    guint ttl;
-    guint ageing;
-    guint limit;
-    bool  proxy;
-    bool  learning;
-    bool  rsc;
-    bool  l2_miss;
-    bool  l3_miss;
+    char   *parent;
+    char   *local;
+    char   *remote;
+    guint32 id;
+    guint32 source_port_min;
+    guint32 source_port_max;
+    guint32 destination_port;
+    guint32 tos;
+    guint32 ttl;
+    guint32 ageing;
+    guint32 limit;
+    bool    proxy;
+    bool    learning;
+    bool    rsc;
+    bool    l2_miss;
+    bool    l3_miss;
 } NMSettingVxlanPrivate;
 
 /**
@@ -95,6 +95,7 @@ const char *
 nm_setting_vxlan_get_parent(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), NULL);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->parent;
 }
 
@@ -110,6 +111,7 @@ guint
 nm_setting_vxlan_get_id(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->id;
 }
 
@@ -125,6 +127,7 @@ const char *
 nm_setting_vxlan_get_local(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), NULL);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->local;
 }
 
@@ -140,6 +143,7 @@ const char *
 nm_setting_vxlan_get_remote(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), NULL);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->remote;
 }
 
@@ -155,6 +159,7 @@ guint
 nm_setting_vxlan_get_source_port_min(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->source_port_min;
 }
 
@@ -170,6 +175,7 @@ guint
 nm_setting_vxlan_get_source_port_max(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->source_port_max;
 }
 
@@ -185,6 +191,7 @@ guint
 nm_setting_vxlan_get_destination_port(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), DST_PORT_DEFAULT);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->destination_port;
 }
 
@@ -215,6 +222,7 @@ guint
 nm_setting_vxlan_get_ageing(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->ageing;
 }
 
@@ -230,6 +238,7 @@ guint
 nm_setting_vxlan_get_limit(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->limit;
 }
 
@@ -245,6 +254,7 @@ guint
 nm_setting_vxlan_get_tos(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->tos;
 }
 
@@ -260,6 +270,7 @@ guint
 nm_setting_vxlan_get_ttl(NMSettingVxlan *setting)
 {
     g_return_val_if_fail(NM_IS_SETTING_VXLAN(setting), 0);
+
     return NM_SETTING_VXLAN_GET_PRIVATE(setting)->ttl;
 }
 
@@ -392,151 +403,8 @@ verify(NMSetting *setting, NMConnection *connection, GError **error)
 /*****************************************************************************/
 
 static void
-_addrstr_set(char **dst, const char *src)
-{
-    gs_free char *old = NULL;
-
-    old = *dst;
-    if (!src)
-        *dst = NULL;
-    else if (!nm_utils_parse_inaddr(AF_UNSPEC, src, dst))
-        *dst = g_strdup(src);
-}
-/*****************************************************************************/
-
-static void
-get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
-    NMSettingVxlan *       setting = NM_SETTING_VXLAN(object);
-    NMSettingVxlanPrivate *priv    = NM_SETTING_VXLAN_GET_PRIVATE(setting);
-
-    switch (prop_id) {
-    case PROP_PARENT:
-        g_value_set_string(value, priv->parent);
-        break;
-    case PROP_ID:
-        g_value_set_uint(value, priv->id);
-        break;
-    case PROP_LOCAL:
-        g_value_set_string(value, priv->local);
-        break;
-    case PROP_REMOTE:
-        g_value_set_string(value, priv->remote);
-        break;
-    case PROP_SOURCE_PORT_MIN:
-        g_value_set_uint(value, priv->source_port_min);
-        break;
-    case PROP_SOURCE_PORT_MAX:
-        g_value_set_uint(value, priv->source_port_max);
-        break;
-    case PROP_DESTINATION_PORT:
-        g_value_set_uint(value, priv->destination_port);
-        break;
-    case PROP_TOS:
-        g_value_set_uint(value, priv->tos);
-        break;
-    case PROP_AGEING:
-        g_value_set_uint(value, priv->ageing);
-        break;
-    case PROP_LIMIT:
-        g_value_set_uint(value, priv->limit);
-        break;
-    case PROP_PROXY:
-        g_value_set_boolean(value, priv->proxy);
-        break;
-    case PROP_TTL:
-        g_value_set_uint(value, priv->ttl);
-        break;
-    case PROP_LEARNING:
-        g_value_set_boolean(value, priv->learning);
-        break;
-    case PROP_RSC:
-        g_value_set_boolean(value, priv->rsc);
-        break;
-    case PROP_L2_MISS:
-        g_value_set_boolean(value, priv->l2_miss);
-        break;
-    case PROP_L3_MISS:
-        g_value_set_boolean(value, priv->l3_miss);
-        break;
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-        break;
-    }
-}
-
-static void
-set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
-    NMSettingVxlan *       setting = NM_SETTING_VXLAN(object);
-    NMSettingVxlanPrivate *priv    = NM_SETTING_VXLAN_GET_PRIVATE(setting);
-
-    switch (prop_id) {
-    case PROP_PARENT:
-        g_free(priv->parent);
-        priv->parent = g_value_dup_string(value);
-        break;
-    case PROP_ID:
-        priv->id = g_value_get_uint(value);
-        break;
-    case PROP_LOCAL:
-        _addrstr_set(&priv->local, g_value_get_string(value));
-        break;
-    case PROP_REMOTE:
-        _addrstr_set(&priv->remote, g_value_get_string(value));
-        break;
-    case PROP_SOURCE_PORT_MIN:
-        priv->source_port_min = g_value_get_uint(value);
-        break;
-    case PROP_SOURCE_PORT_MAX:
-        priv->source_port_max = g_value_get_uint(value);
-        break;
-    case PROP_DESTINATION_PORT:
-        priv->destination_port = g_value_get_uint(value);
-        break;
-    case PROP_TOS:
-        priv->tos = g_value_get_uint(value);
-        break;
-    case PROP_AGEING:
-        priv->ageing = g_value_get_uint(value);
-        break;
-    case PROP_LIMIT:
-        priv->limit = g_value_get_uint(value);
-        break;
-    case PROP_PROXY:
-        priv->proxy = g_value_get_boolean(value);
-        break;
-    case PROP_TTL:
-        priv->ttl = g_value_get_uint(value);
-        break;
-    case PROP_LEARNING:
-        priv->learning = g_value_get_boolean(value);
-        break;
-    case PROP_RSC:
-        priv->rsc = g_value_get_boolean(value);
-        break;
-    case PROP_L2_MISS:
-        priv->l2_miss = g_value_get_boolean(value);
-        break;
-    case PROP_L3_MISS:
-        priv->l3_miss = g_value_get_boolean(value);
-        break;
-    default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-        break;
-    }
-}
-
-/*****************************************************************************/
-
-static void
 nm_setting_vxlan_init(NMSettingVxlan *self)
-{
-    NMSettingVxlanPrivate *priv = NM_SETTING_VXLAN_GET_PRIVATE(self);
-
-    priv->destination_port = DST_PORT_DEFAULT;
-    priv->ageing           = 300;
-}
+{}
 
 /**
  * nm_setting_vxlan_new:
@@ -554,30 +422,16 @@ nm_setting_vxlan_new(void)
 }
 
 static void
-finalize(GObject *object)
-{
-    NMSettingVxlan *       setting = NM_SETTING_VXLAN(object);
-    NMSettingVxlanPrivate *priv    = NM_SETTING_VXLAN_GET_PRIVATE(setting);
-
-    g_free(priv->parent);
-    g_free(priv->local);
-    g_free(priv->remote);
-
-    G_OBJECT_CLASS(nm_setting_vxlan_parent_class)->finalize(object);
-}
-
-static void
 nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
 {
-    GObjectClass *  object_class        = G_OBJECT_CLASS(klass);
+    GObjectClass   *object_class        = G_OBJECT_CLASS(klass);
     NMSettingClass *setting_class       = NM_SETTING_CLASS(klass);
-    GArray *        properties_override = _nm_sett_info_property_override_create_array();
+    GArray         *properties_override = _nm_sett_info_property_override_create_array();
 
     g_type_class_add_private(klass, sizeof(NMSettingVxlanPrivate));
 
-    object_class->get_property = get_property;
-    object_class->set_property = set_property;
-    object_class->finalize     = finalize;
+    object_class->get_property = _nm_setting_property_get_property_direct;
+    object_class->set_property = _nm_setting_property_set_property_direct;
 
     setting_class->verify = verify;
 
@@ -588,12 +442,13 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_PARENT] = g_param_spec_string(
-        NM_SETTING_VXLAN_PARENT,
-        "",
-        "",
-        NULL,
-        G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_PARENT,
+                                              PROP_PARENT,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              parent);
 
     /**
      * NMSettingVxlan:id:
@@ -603,14 +458,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_ID] =
-        g_param_spec_uint(NM_SETTING_VXLAN_ID,
-                          "",
-                          "",
-                          0,
-                          (1 << 24) - 1,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_ID,
+                                              PROP_ID,
+                                              0,
+                                              (1 << 24) - 1,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              id);
 
     /**
      * NMSettingVxlan:local:
@@ -619,12 +476,15 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_LOCAL] = g_param_spec_string(NM_SETTING_VXLAN_LOCAL,
-                                                     "",
-                                                     "",
-                                                     NULL,
-                                                     G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE
-                                                         | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_LOCAL,
+                                              PROP_LOCAL,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              local,
+                                              .direct_set_string_ip_address_addr_family =
+                                                  AF_UNSPEC + 1);
 
     /**
      * NMSettingVxlan:remote:
@@ -635,12 +495,15 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_REMOTE] = g_param_spec_string(
-        NM_SETTING_VXLAN_REMOTE,
-        "",
-        "",
-        NULL,
-        G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_string(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_REMOTE,
+                                              PROP_REMOTE,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              remote,
+                                              .direct_set_string_ip_address_addr_family =
+                                                  AF_UNSPEC + 1);
 
     /**
      * NMSettingVxlan:source-port-min:
@@ -650,14 +513,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_SOURCE_PORT_MIN] =
-        g_param_spec_uint(NM_SETTING_VXLAN_SOURCE_PORT_MIN,
-                          "",
-                          "",
-                          0,
-                          G_MAXUINT16,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_SOURCE_PORT_MIN,
+                                              PROP_SOURCE_PORT_MIN,
+                                              0,
+                                              G_MAXUINT16,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              source_port_min);
 
     /**
      * NMSettingVxlan:source-port-max:
@@ -667,14 +532,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_SOURCE_PORT_MAX] =
-        g_param_spec_uint(NM_SETTING_VXLAN_SOURCE_PORT_MAX,
-                          "",
-                          "",
-                          0,
-                          G_MAXUINT16,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_SOURCE_PORT_MAX,
+                                              PROP_SOURCE_PORT_MAX,
+                                              0,
+                                              G_MAXUINT16,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              source_port_max);
 
     /**
      * NMSettingVxlan:destination-port:
@@ -684,14 +551,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_DESTINATION_PORT] =
-        g_param_spec_uint(NM_SETTING_VXLAN_DESTINATION_PORT,
-                          "",
-                          "",
-                          0,
-                          G_MAXUINT16,
-                          DST_PORT_DEFAULT,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_DESTINATION_PORT,
+                                              PROP_DESTINATION_PORT,
+                                              0,
+                                              G_MAXUINT16,
+                                              DST_PORT_DEFAULT,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              destination_port);
 
     /**
      * NMSettingVxlan:ageing:
@@ -700,14 +569,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_AGEING] =
-        g_param_spec_uint(NM_SETTING_VXLAN_AGEING,
-                          "",
-                          "",
-                          0,
-                          G_MAXUINT32,
-                          300,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_AGEING,
+                                              PROP_AGEING,
+                                              0,
+                                              G_MAXUINT32,
+                                              300,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              ageing);
 
     /**
      * NMSettingVxlan:limit:
@@ -717,14 +588,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_LIMIT] =
-        g_param_spec_uint(NM_SETTING_VXLAN_LIMIT,
-                          "",
-                          "",
-                          0,
-                          G_MAXUINT32,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_LIMIT,
+                                              PROP_LIMIT,
+                                              0,
+                                              G_MAXUINT32,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              limit);
 
     /**
      * NMSettingVxlan:tos:
@@ -733,14 +606,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_TOS] =
-        g_param_spec_uint(NM_SETTING_VXLAN_TOS,
-                          "",
-                          "",
-                          0,
-                          255,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_TOS,
+                                              PROP_TOS,
+                                              0,
+                                              255,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              tos);
 
     /**
      * NMSettingVxlan:ttl:
@@ -749,14 +624,16 @@ nm_setting_vxlan_class_init(NMSettingVxlanClass *klass)
      *
      * Since: 1.2
      **/
-    obj_properties[PROP_TTL] =
-        g_param_spec_uint(NM_SETTING_VXLAN_TTL,
-                          "",
-                          "",
-                          0,
-                          255,
-                          0,
-                          G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS);
+    _nm_setting_property_define_direct_uint32(properties_override,
+                                              obj_properties,
+                                              NM_SETTING_VXLAN_TTL,
+                                              PROP_TTL,
+                                              0,
+                                              255,
+                                              0,
+                                              NM_SETTING_PARAM_INFERRABLE,
+                                              NMSettingVxlanPrivate,
+                                              ttl);
 
     /**
      * NMSettingVxlan:proxy: