about summary refs log tree commit diff
path: root/src/nm-cloud-setup
diff options
context:
space:
mode:
Diffstat (limited to 'src/nm-cloud-setup')
-rw-r--r--src/nm-cloud-setup/main.c34
-rw-r--r--src/nm-cloud-setup/nm-cloud-setup-utils.c4
-rw-r--r--src/nm-cloud-setup/nm-http-client.h3
-rw-r--r--src/nm-cloud-setup/nmcs-provider-aliyun.c26
-rw-r--r--src/nm-cloud-setup/nmcs-provider-aliyun.h2
-rw-r--r--src/nm-cloud-setup/nmcs-provider-azure.c6
-rw-r--r--src/nm-cloud-setup/nmcs-provider-azure.h2
-rw-r--r--src/nm-cloud-setup/nmcs-provider-ec2.c12
-rw-r--r--src/nm-cloud-setup/nmcs-provider-ec2.h2
-rw-r--r--src/nm-cloud-setup/nmcs-provider-gcp.h2
-rw-r--r--src/nm-cloud-setup/nmcs-provider.h2
11 files changed, 44 insertions, 51 deletions
diff --git a/src/nm-cloud-setup/main.c b/src/nm-cloud-setup/main.c
index e1cbd1d4..d6802634 100644
--- a/src/nm-cloud-setup/main.c
+++ b/src/nm-cloud-setup/main.c
@@ -347,13 +347,12 @@ _nmc_mangle_connection(NMDevice                             *device,
          * We don't need to configure policy routing in this case. */
         NM_SET_OUT(out_skipped_single_addr, TRUE);
     } else if (config_data->has_ipv4s && config_data->has_cidr) {
-        gs_unref_hashtable GHashTable *unique_subnets =
-            g_hash_table_new(nm_direct_hash, g_direct_equal);
-        NMIPAddress     *addr_entry;
-        NMIPRoute       *route_entry;
-        NMIPRoutingRule *rule_entry;
-        in_addr_t        gateway;
-        char             sbuf[NM_UTILS_INET_ADDRSTRLEN];
+        gs_unref_hashtable GHashTable *unique_subnets = g_hash_table_new(nm_direct_hash, NULL);
+        NMIPAddress                   *addr_entry;
+        NMIPRoute                     *route_entry;
+        NMIPRoutingRule               *rule_entry;
+        in_addr_t                      gateway;
+        char                           sbuf[NM_INET_ADDRSTRLEN];
 
         for (i = 0; i < config_data->ipv4s_len; i++) {
             addr_entry = nm_ip_address_new_binary(AF_INET,
@@ -367,8 +366,8 @@ _nmc_mangle_connection(NMDevice                             *device,
         if (config_data->has_gateway && config_data->gateway) {
             gateway = config_data->gateway;
         } else {
-            gateway = nm_utils_ip4_address_clear_host_address(config_data->cidr_addr,
-                                                              config_data->cidr_prefix);
+            gateway =
+                nm_ip4_addr_clear_host_address(config_data->cidr_addr, config_data->cidr_prefix);
             if (config_data->cidr_prefix < 32)
                 ((guint8 *) &gateway)[3] += 1;
         }
@@ -376,7 +375,7 @@ _nmc_mangle_connection(NMDevice                             *device,
         for (i = 0; i < config_data->ipv4s_len; i++) {
             in_addr_t a = config_data->ipv4s_arr[i];
 
-            a = nm_utils_ip4_address_clear_host_address(a, config_data->cidr_prefix);
+            a = nm_ip4_addr_clear_host_address(a, config_data->cidr_prefix);
 
             G_STATIC_ASSERT_EXPR(sizeof(gsize) >= sizeof(in_addr_t));
             if (g_hash_table_add(unique_subnets, GSIZE_TO_POINTER(a))) {
@@ -391,7 +390,7 @@ _nmc_mangle_connection(NMDevice                             *device,
             rule_entry = nm_ip_routing_rule_new(AF_INET);
             nm_ip_routing_rule_set_priority(rule_entry, 30200 + config_data->iface_idx);
             nm_ip_routing_rule_set_from(rule_entry,
-                                        _nm_utils_inet4_ntop(config_data->ipv4s_arr[i], sbuf),
+                                        nm_inet4_ntop(config_data->ipv4s_arr[i], sbuf),
                                         32);
             nm_ip_routing_rule_set_table(rule_entry, 30200 + config_data->iface_idx);
             nm_assert(nm_ip_routing_rule_validate(rule_entry, NULL));
@@ -415,7 +414,7 @@ _nmc_mangle_connection(NMDevice                             *device,
             rule_entry = nm_ip_routing_rule_new(AF_INET);
             nm_ip_routing_rule_set_priority(rule_entry, 30400 + config_data->iface_idx);
             nm_ip_routing_rule_set_from(rule_entry,
-                                        _nm_utils_inet4_ntop(config_data->ipv4s_arr[i], sbuf),
+                                        nm_inet4_ntop(config_data->ipv4s_arr[i], sbuf),
                                         32);
             nm_ip_routing_rule_set_table(rule_entry, 30400 + config_data->iface_idx);
             nm_assert(nm_ip_routing_rule_validate(rule_entry, NULL));
@@ -553,12 +552,11 @@ try_again:
     /* we are about to call Reapply(). Even if that fails, it counts as if we changed something. */
     any_changes = TRUE;
 
-    /* "preserve-external-ip" flag was only introduced in 1.41.6 and 1.40.9.
-     * We have no convenient way to check the daemon version (short of parsing the "Version"
-     * string). Hence, we don't know it. Take into account, that the daemon that we
-     * talk to might not support the flag yet. This is to support backward compatibility
-     * during package upgrade. */
-    maybe_no_preserved_external_ip = TRUE;
+    /* "preserve-external-ip" flag was only introduced in 1.41.6 (but maybe backported!).
+     * If we run 1.41.6+, we are sure that it's gonna work. Otherwise, we take into account
+     * that the call might fail due to the invalid flag and we retry. */
+    maybe_no_preserved_external_ip =
+        (nmc_client_has_version_info_v(nmc) < NM_ENCODE_VERSION(1, 41, 6));
 
     if (!nmcs_device_reapply(device,
                              sigterm_cancellable,
diff --git a/src/nm-cloud-setup/nm-cloud-setup-utils.c b/src/nm-cloud-setup/nm-cloud-setup-utils.c
index 7cf79592..cb8e9f55 100644
--- a/src/nm-cloud-setup/nm-cloud-setup-utils.c
+++ b/src/nm-cloud-setup/nm-cloud-setup-utils.c
@@ -507,7 +507,7 @@ nmcs_utils_ipaddr_normalize_bin(int         addr_family,
 
     g_strstrip(ad);
 
-    return nm_utils_parse_inaddr_bin(addr_family, ad, out_addr_family, out_addr_bin);
+    return nm_inet_parse_bin(addr_family, ad, out_addr_family, out_addr_bin);
 }
 
 char *
@@ -518,7 +518,7 @@ nmcs_utils_ipaddr_normalize(int addr_family, const char *addr, gssize len)
     if (!nmcs_utils_ipaddr_normalize_bin(addr_family, addr, len, &addr_family, &ipaddr))
         return NULL;
 
-    return nm_utils_inet_ntop_dup(addr_family, &ipaddr);
+    return nm_inet_ntop_dup(addr_family, &ipaddr);
 }
 
 /*****************************************************************************/
diff --git a/src/nm-cloud-setup/nm-http-client.h b/src/nm-cloud-setup/nm-http-client.h
index 0a7052ae..b041e99f 100644
--- a/src/nm-cloud-setup/nm-http-client.h
+++ b/src/nm-cloud-setup/nm-http-client.h
@@ -9,7 +9,8 @@ typedef struct _NMHttpClient      NMHttpClient;
 typedef struct _NMHttpClientClass NMHttpClientClass;
 
 #define NM_TYPE_HTTP_CLIENT (nm_http_client_get_type())
-#define NM_HTTP_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_HTTP_CLIENT, NMHttpClient))
+#define NM_HTTP_CLIENT(obj) \
+    (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_HTTP_CLIENT, NMHttpClient))
 #define NM_HTTP_CLIENT_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_HTTP_CLIENT, NMHttpClientClass))
 #define NM_IS_HTTP_CLIENT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_HTTP_CLIENT))
diff --git a/src/nm-cloud-setup/nmcs-provider-aliyun.c b/src/nm-cloud-setup/nmcs-provider-aliyun.c
index 34ab5ecc..4b109609 100644
--- a/src/nm-cloud-setup/nmcs-provider-aliyun.c
+++ b/src/nm-cloud-setup/nmcs-provider-aliyun.c
@@ -167,7 +167,7 @@ _get_config_fetch_done_cb(NMHttpClient                   *http_client,
             config_iface_data->ipv4s_arr = g_new(in_addr_t, len);
             for (i = 0; i < len; i++) {
                 filter_chars((char *) s_addrs[i], "[]\"");
-                if (nm_utils_parse_inaddr_bin(AF_INET, s_addrs[i], NULL, &tmp_addr)) {
+                if (nm_inet_parse_bin(AF_INET, s_addrs[i], NULL, &tmp_addr)) {
                     config_iface_data->ipv4s_arr[config_iface_data->ipv4s_len++] = tmp_addr;
                 }
             }
@@ -176,7 +176,7 @@ _get_config_fetch_done_cb(NMHttpClient                   *http_client,
 
     case GET_CONFIG_FETCH_DONE_TYPE_PRIMARY_IP_ADDRESS:
 
-        if (nm_utils_parse_inaddr_bin(AF_INET, g_bytes_get_data(response, NULL), NULL, &tmp_addr)) {
+        if (nm_inet_parse_bin(AF_INET, g_bytes_get_data(response, NULL), NULL, &tmp_addr)) {
             nm_assert(config_iface_data->priv.aliyun.primary_ip_address == 0);
             nm_assert(!config_iface_data->priv.aliyun.has_primary_ip_address);
             config_iface_data->priv.aliyun.primary_ip_address     = tmp_addr;
@@ -186,11 +186,11 @@ _get_config_fetch_done_cb(NMHttpClient                   *http_client,
 
     case GET_CONFIG_FETCH_DONE_TYPE_SUBNET_VPC_CIDR_BLOCK:
 
-        if (nm_utils_parse_inaddr_prefix_bin(AF_INET,
-                                             g_bytes_get_data(response, NULL),
-                                             NULL,
-                                             &tmp_addr,
-                                             &tmp_prefix)) {
+        if (nm_inet_parse_with_prefix_bin(AF_INET,
+                                          g_bytes_get_data(response, NULL),
+                                          NULL,
+                                          &tmp_addr,
+                                          &tmp_prefix)) {
             nm_assert(!config_iface_data->has_cidr);
             config_iface_data->has_cidr  = TRUE;
             config_iface_data->cidr_addr = tmp_addr;
@@ -199,20 +199,14 @@ _get_config_fetch_done_cb(NMHttpClient                   *http_client,
 
     case GET_CONFIG_FETCH_DONE_TYPE_NETMASK:
 
-        if (nm_utils_parse_inaddr_bin(AF_INET,
-                                      g_bytes_get_data(response, NULL),
-                                      NULL,
-                                      &netmask_bin)) {
-            config_iface_data->cidr_prefix = _nm_utils_ip4_netmask_to_prefix(netmask_bin);
+        if (nm_inet_parse_bin(AF_INET, g_bytes_get_data(response, NULL), NULL, &netmask_bin)) {
+            config_iface_data->cidr_prefix = nm_ip4_addr_netmask_to_prefix(netmask_bin);
         };
         break;
 
     case GET_CONFIG_FETCH_DONE_TYPE_GATEWAY:
 
-        if (nm_utils_parse_inaddr_bin(AF_INET,
-                                      g_bytes_get_data(response, NULL),
-                                      NULL,
-                                      &gateway_bin)) {
+        if (nm_inet_parse_bin(AF_INET, g_bytes_get_data(response, NULL), NULL, &gateway_bin)) {
             config_iface_data->has_gateway = TRUE;
             config_iface_data->gateway     = gateway_bin;
         };
diff --git a/src/nm-cloud-setup/nmcs-provider-aliyun.h b/src/nm-cloud-setup/nmcs-provider-aliyun.h
index 6e733a11..3e8ab454 100644
--- a/src/nm-cloud-setup/nmcs-provider-aliyun.h
+++ b/src/nm-cloud-setup/nmcs-provider-aliyun.h
@@ -12,7 +12,7 @@ typedef struct _NMCSProviderAliyunClass NMCSProviderAliyunClass;
 
 #define NMCS_TYPE_PROVIDER_ALIYUN (nmcs_provider_aliyun_get_type())
 #define NMCS_PROVIDER_ALIYUN(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyun))
+    (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyun))
 #define NMCS_PROVIDER_ALIYUN_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER_ALIYUN, NMCSProviderAliyunClass))
 #define NMCS_IS_PROVIDER_ALIYUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER_ALIYUN))
diff --git a/src/nm-cloud-setup/nmcs-provider-azure.c b/src/nm-cloud-setup/nmcs-provider-azure.c
index 9b27af28..b59235bf 100644
--- a/src/nm-cloud-setup/nmcs-provider-azure.c
+++ b/src/nm-cloud-setup/nmcs-provider-azure.c
@@ -117,7 +117,7 @@ _get_config_fetch_done_cb(NMHttpClient      *http_client,
     gs_free_error GError           *error    = NULL;
     const char                     *resp_str = NULL;
     gsize                           resp_len;
-    char                            tmp_addr_str[NM_UTILS_INET_ADDRSTRLEN];
+    char                            tmp_addr_str[NM_INET_ADDRSTRLEN];
     in_addr_t                       tmp_addr;
     int                             tmp_prefix = -1;
 
@@ -145,7 +145,7 @@ _get_config_fetch_done_cb(NMHttpClient      *http_client,
         }
         _LOGD("interface[%" G_GSSIZE_FORMAT "]: received address %s",
               iface_data->intern_iface_idx,
-              _nm_utils_inet4_ntop(tmp_addr, tmp_addr_str));
+              nm_inet4_ntop(tmp_addr, tmp_addr_str));
         iface_get_config->ipv4s_arr[iface_get_config->ipv4s_len] = tmp_addr;
         iface_get_config->has_ipv4s                              = TRUE;
         iface_get_config->ipv4s_len++;
@@ -159,7 +159,7 @@ _get_config_fetch_done_cb(NMHttpClient      *http_client,
         }
         _LOGD("interface[%" G_GSSIZE_FORMAT "]: received subnet address %s",
               iface_data->intern_iface_idx,
-              _nm_utils_inet4_ntop(tmp_addr, tmp_addr_str));
+              nm_inet4_ntop(tmp_addr, tmp_addr_str));
         iface_get_config->cidr_addr = tmp_addr;
         break;
 
diff --git a/src/nm-cloud-setup/nmcs-provider-azure.h b/src/nm-cloud-setup/nmcs-provider-azure.h
index be78768f..913dd0e8 100644
--- a/src/nm-cloud-setup/nmcs-provider-azure.h
+++ b/src/nm-cloud-setup/nmcs-provider-azure.h
@@ -12,7 +12,7 @@ typedef struct _NMCSProviderAzureClass NMCSProviderAzureClass;
 
 #define NMCS_TYPE_PROVIDER_AZURE (nmcs_provider_azure_get_type())
 #define NMCS_PROVIDER_AZURE(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_AZURE, NMCSProviderAzure))
+    (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_AZURE, NMCSProviderAzure))
 #define NMCS_PROVIDER_AZURE_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER_AZURE, NMCSProviderAzureClass))
 #define NMCS_IS_PROVIDER_AZURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER_AZURE))
diff --git a/src/nm-cloud-setup/nmcs-provider-ec2.c b/src/nm-cloud-setup/nmcs-provider-ec2.c
index d6fa0311..58d691c7 100644
--- a/src/nm-cloud-setup/nmcs-provider-ec2.c
+++ b/src/nm-cloud-setup/nmcs-provider-ec2.c
@@ -151,16 +151,16 @@ _get_config_fetch_done_cb(NMHttpClient                   *http_client,
             config_iface_data->ipv4s_arr = g_new(in_addr_t, len);
 
             for (i = 0; i < len; i++) {
-                if (nm_utils_parse_inaddr_bin(AF_INET, s_addrs[i], NULL, &tmp_addr))
+                if (nm_inet_parse_bin(AF_INET, s_addrs[i], NULL, &tmp_addr))
                     config_iface_data->ipv4s_arr[config_iface_data->ipv4s_len++] = tmp_addr;
             }
         }
     } else {
-        if (nm_utils_parse_inaddr_prefix_bin(AF_INET,
-                                             g_bytes_get_data(response, NULL),
-                                             NULL,
-                                             &tmp_addr,
-                                             &tmp_prefix)) {
+        if (nm_inet_parse_with_prefix_bin(AF_INET,
+                                          g_bytes_get_data(response, NULL),
+                                          NULL,
+                                          &tmp_addr,
+                                          &tmp_prefix)) {
             nm_assert(!config_iface_data->has_cidr);
             config_iface_data->has_cidr    = TRUE;
             config_iface_data->cidr_prefix = tmp_prefix;
diff --git a/src/nm-cloud-setup/nmcs-provider-ec2.h b/src/nm-cloud-setup/nmcs-provider-ec2.h
index 8f8b6400..e44f0a0f 100644
--- a/src/nm-cloud-setup/nmcs-provider-ec2.h
+++ b/src/nm-cloud-setup/nmcs-provider-ec2.h
@@ -12,7 +12,7 @@ typedef struct _NMCSProviderEC2Class NMCSProviderEC2Class;
 
 #define NMCS_TYPE_PROVIDER_EC2 (nmcs_provider_ec2_get_type())
 #define NMCS_PROVIDER_EC2(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2))
+    (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2))
 #define NMCS_PROVIDER_EC2_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER_EC2, NMCSProviderEC2Class))
 #define NMCS_IS_PROVIDER_EC2(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER_EC2))
diff --git a/src/nm-cloud-setup/nmcs-provider-gcp.h b/src/nm-cloud-setup/nmcs-provider-gcp.h
index b0329935..80e4ec41 100644
--- a/src/nm-cloud-setup/nmcs-provider-gcp.h
+++ b/src/nm-cloud-setup/nmcs-provider-gcp.h
@@ -12,7 +12,7 @@ typedef struct _NMCSProviderGCPClass NMCSProviderGCPClass;
 
 #define NMCS_TYPE_PROVIDER_GCP (nmcs_provider_gcp_get_type())
 #define NMCS_PROVIDER_GCP(obj) \
-    (G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_GCP, NMCSProviderGCP))
+    (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER_GCP, NMCSProviderGCP))
 #define NMCS_PROVIDER_GCP_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER_GCP, NMCSProviderGCPClass))
 #define NMCS_IS_PROVIDER_GCP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER_GCP))
diff --git a/src/nm-cloud-setup/nmcs-provider.h b/src/nm-cloud-setup/nmcs-provider.h
index 502f1d03..994b1e24 100644
--- a/src/nm-cloud-setup/nmcs-provider.h
+++ b/src/nm-cloud-setup/nmcs-provider.h
@@ -130,7 +130,7 @@ nmcs_provider_get_config_iface_data_create(NMCSProviderGetConfigTaskData *get_co
 /*****************************************************************************/
 
 #define NMCS_TYPE_PROVIDER (nmcs_provider_get_type())
-#define NMCS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER, NMCSProvider))
+#define NMCS_PROVIDER(obj) (_NM_G_TYPE_CHECK_INSTANCE_CAST((obj), NMCS_TYPE_PROVIDER, NMCSProvider))
 #define NMCS_PROVIDER_CLASS(klass) \
     (G_TYPE_CHECK_CLASS_CAST((klass), NMCS_TYPE_PROVIDER, NMCSProviderClass))
 #define NMCS_IS_PROVIDER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NMCS_TYPE_PROVIDER))