about summary refs log tree commit diff
path: root/src/nm-cloud-setup/nmcs-provider.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2025-02-28 17:38:27 +0100
committerMichael Biebl <biebl@debian.org>2025-02-28 17:38:27 +0100
commit9685be6ccea0ce642656fae43963fdd2a0b910a5 (patch)
tree5e4ac7639446e83a681429758732c4144d04f9a6 /src/nm-cloud-setup/nmcs-provider.c
parent38da8d26340307e811b3e09c6a6adf278cd5a792 (diff)
parent625e8ce60e826bde943487b8238884a9232e4562 (diff)
Update upstream source from tag 'upstream/1.52.0'
Update to upstream version '1.52.0'
with Debian dir f67ffc37a3e729d7b0a68693e9272295f6648094
Diffstat (limited to 'src/nm-cloud-setup/nmcs-provider.c')
-rw-r--r--src/nm-cloud-setup/nmcs-provider.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/nm-cloud-setup/nmcs-provider.c b/src/nm-cloud-setup/nmcs-provider.c
index 0f06c4e2..251749ba 100644
--- a/src/nm-cloud-setup/nmcs-provider.c
+++ b/src/nm-cloud-setup/nmcs-provider.c
@@ -188,6 +188,7 @@ nmcs_provider_get_config_iface_data_create(NMCSProviderGetConfigTaskData *get_co
 
     iface_data  = g_slice_new(NMCSProviderGetConfigIfaceData);
     *iface_data = (NMCSProviderGetConfigIfaceData) {
+        .provider        = g_object_ref(get_config_data->self),
         .get_config_data = get_config_data,
         .hwaddr          = g_strdup(hwaddr),
         .iface_idx       = -1,
@@ -203,6 +204,11 @@ nmcs_provider_get_config_iface_data_create(NMCSProviderGetConfigTaskData *get_co
         iface_data->priv.aliyun = (typeof(iface_data->priv.aliyun)) {
             .has_primary_ip_address = FALSE,
         };
+    } else if (G_OBJECT_TYPE(get_config_data->self) == nmcs_provider_oci_get_type()) {
+        iface_data->priv.oci = (typeof(iface_data->priv.oci)) {
+            .vlan_tag      = 0,
+            .parent_hwaddr = NULL,
+        };
     }
 
     /* the has does not own the key (iface_datta->hwaddr), the lifetime of the
@@ -220,6 +226,9 @@ _iface_data_free(gpointer data)
     g_free(iface_data->ipv4s_arr);
     nm_g_ptr_array_unref(iface_data->iproutes);
     g_free((char *) iface_data->hwaddr);
+    if (G_OBJECT_TYPE(iface_data->provider) == nmcs_provider_oci_get_type())
+        g_free((char *) iface_data->priv.oci.parent_hwaddr);
+    g_clear_object(&iface_data->provider);
 
     nm_g_slice_free(iface_data);
 }