parent
5feee1aaf9
commit
a57309fe96
@ -0,0 +1,61 @@
|
|||||||
|
diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
|
||||||
|
index 16f8e1f261..036233e668 100644
|
||||||
|
--- a/src/core/devices/nm-device.c
|
||||||
|
+++ b/src/core/devices/nm-device.c
|
||||||
|
@@ -1661,7 +1661,7 @@ _prop_get_ipv4_dad_timeout(NMDevice *self)
|
||||||
|
self,
|
||||||
|
0,
|
||||||
|
NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX,
|
||||||
|
- 200);
|
||||||
|
+ 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static guint32
|
||||||
|
diff --git a/src/libnm-core-impl/nm-setting-ip-config.c b/src/libnm-core-impl/nm-setting-ip-config.c
|
||||||
|
index bfebe7d13d..de56ed74ea 100644
|
||||||
|
--- a/src/libnm-core-impl/nm-setting-ip-config.c
|
||||||
|
+++ b/src/libnm-core-impl/nm-setting-ip-config.c
|
||||||
|
@@ -6655,7 +6655,7 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass)
|
||||||
|
*
|
||||||
|
* A zero value means that no duplicate address detection is performed, -1 means
|
||||||
|
* the default value (either the value configured globally in NetworkManger.conf
|
||||||
|
- * or 200ms). A value greater than zero is a timeout in milliseconds. Note that
|
||||||
|
+ * or zero). A value greater than zero is a timeout in milliseconds. Note that
|
||||||
|
* the time intervals are subject to randomization as per RFC 5227 and so the
|
||||||
|
* actual duration can be between half and the full time specified in this
|
||||||
|
* property.
|
||||||
|
diff --git a/src/libnmc-setting/settings-docs.h.in b/src/libnmc-setting/settings-docs.h.in
|
||||||
|
index 77cde6620e..e42cb74e7f 100644
|
||||||
|
--- a/src/libnmc-setting/settings-docs.h.in
|
||||||
|
+++ b/src/libnmc-setting/settings-docs.h.in
|
||||||
|
@@ -162,7 +162,7 @@
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("A list of IPv4 addresses and their prefix length. Multiple addresses can be separated by comma. For example \"192.168.1.5/24, 10.1.0.5/24\". The addresses are listed in decreasing priority, meaning the first address will be the primary address.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_AUTO_ROUTE_EXT_GW N_("VPN connections will default to add the route automatically unless this setting is set to FALSE. For other connection types, adding such an automatic route is currently not supported and setting this to TRUE has no effect.")
|
||||||
|
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or 200ms). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.")
|
||||||
|
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or zero). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values \"mac\" and \"perm-mac\" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value \"ipv6-duid\" uses the DUID from \"ipv6.dhcp-duid\" property as an RFC4361-compliant client identifier. As IAID it uses \"ipv4.dhcp-iaid\" and falls back to \"ipv6.dhcp-iaid\" if unset. The special value \"duid\" generates a RFC4361-compliant client identifier based on \"ipv4.dhcp-iaid\" and uses a DUID generated by hashing /etc/machine-id. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the \"${DEVICE}\" or \"${MAC}\" specifier to get a per-device key. The special value \"none\" prevents any client identifier from being sent. Note that this is normally not recommended. If unset, a globally configured default from NetworkManager.conf is used. If still unset, the default depends on the DHCP plugin. The internal dhcp client will default to \"mac\" and the dhclient plugin will try to use one from its config file if present, or won't sent any client-id otherwise.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_DSCP N_("Specifies the value for the DSCP field (traffic class) of the IP header. When empty, the global default value is used; if no global default is specified, it is assumed to be \"CS0\". Allowed values are: \"CS0\", \"CS4\" and \"CS6\". The property is currently valid only for IPv4, and it is supported only by the \"internal\" DHCP plugin.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-hostname\" are mutually exclusive and cannot be set at the same time.")
|
||||||
|
@@ -192,7 +192,7 @@
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure method for creating the IPv6 interface identifer of addresses with RFC4862 IPv6 Stateless Address Autoconfiguration and Link Local addresses. The permitted values are: \"eui64\" (0), \"stable-privacy\" (1), \"default\" (3) or \"default-or-eui64\" (2). If the property is set to \"eui64\", the addresses will be generated using the interface token derived from hardware address. This makes the host part of the address to stay constant, making it possible to track the host's presence when it changes networks. The address changes when the interface hardware is replaced. If a duplicate address is detected, there is also no fallback to generate another address. When configured, the \"ipv6.token\" is used instead of the MAC address to generate addresses for stateless autoconfiguration. If the property is set to \"stable-privacy\", the interface identifier is generated as specified by RFC7217. This works by hashing a host specific key (see NetworkManager(8) manual), the interface name, the connection's \"connection.stable-id\" property and the address prefix. This improves privacy by making it harder to use the address to track the host's presence and the address is stable when the network interface hardware is replaced. The special values \"default\" and \"default-or-eui64\" will fallback to the global connection default as documented in the NetworkManager.conf(5) manual. If the global default is not specified, the fallback value is \"stable-privacy\" or \"eui64\", respectively. If not specified, when creating a new profile the default is \"default\". Note that this setting is distinct from the Privacy Extensions as configured by \"ip6-privacy\" property and it does not affect the temporary addresses configured with this option.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("A list of IPv6 addresses and their prefix length. Multiple addresses can be separated by comma. For example \"2001:db8:85a3::8a2e:370:7334/64, 2001:db8:85a3::5/64\". The addresses are listed in decreasing priority, meaning the first address will be the primary address. This can make a difference with IPv6 source address selection (RFC 6724, section 5).")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_AUTO_ROUTE_EXT_GW N_("VPN connections will default to add the route automatically unless this setting is set to FALSE. For other connection types, adding such an automatic route is currently not supported and setting this to TRUE has no effect.")
|
||||||
|
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or 200ms). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.")
|
||||||
|
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or zero). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DSCP N_("Specifies the value for the DSCP field (traffic class) of the IP header. When empty, the global default value is used; if no global default is specified, it is assumed to be \"CS0\". Allowed values are: \"CS0\", \"CS4\" and \"CS6\". The property is currently valid only for IPv4, and it is supported only by the \"internal\" DHCP plugin.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value \"lease\" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and \"dhclient\" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.")
|
||||||
|
#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-fqdn\" are mutually exclusive and cannot be set at the same time.")
|
||||||
|
diff --git a/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in b/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
|
||||||
|
index 8806bf2550..09648f3ff8 100644
|
||||||
|
--- a/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
|
||||||
|
+++ b/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
|
||||||
|
@@ -1337,7 +1337,7 @@
|
||||||
|
values="-1 - 2147483647"
|
||||||
|
special-values="default (-1), infinity (2147483647)" />
|
||||||
|
<property name="dad-timeout"
|
||||||
|
- nmcli-description="Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or 200ms). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property."
|
||||||
|
+ nmcli-description="Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. A zero value means that no duplicate address detection is performed, -1 means the default value (either the value configured globally in NetworkManger.conf or zero). A value greater than zero is a timeout in milliseconds. Note that the time intervals are subject to randomization as per RFC 5227 and so the actual duration can be between half and the full time specified in this property."
|
||||||
|
format="integer"
|
||||||
|
values="-1 - 30000"
|
||||||
|
special-values="default (-1), off (0)" />
|
@ -0,0 +1,46 @@
|
|||||||
|
From 6016ef0813a6c048369cc27ae85fc12699bacab5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lubomir Rintel <lkundrak@v3.sk>
|
||||||
|
Date: Tue, 27 Aug 2024 00:29:17 +0200
|
||||||
|
Subject: [PATCH] cloud-setup: allow bigger restart bursts
|
||||||
|
|
||||||
|
On daemon startup, we may end up enqueueing many nm-cloud-setup.service
|
||||||
|
restarts in very a short time. That is perfectly fine, just bump the
|
||||||
|
thresholds so that systemd doesn't get in the way too quickly.
|
||||||
|
|
||||||
|
100 requests in 1 seconds seem like a fair choice -- little bit on the
|
||||||
|
conservative side, yet still giving the service manager some room to
|
||||||
|
interfere on a chance things really go awry.
|
||||||
|
|
||||||
|
https://issues.redhat.com/browse/RHEL-49694
|
||||||
|
(cherry picked from commit 927cff9f178911b2a146259a89bfcc9727cbd8c3)
|
||||||
|
(cherry picked from commit 4dc35c72744f8820575ab0ea4638c4ddd880547d)
|
||||||
|
(cherry picked from commit 097dfdf711d2f968d0580839f5a7a54731c68f34)
|
||||||
|
---
|
||||||
|
src/nm-cloud-setup/nm-cloud-setup.service.in | 11 +++++++++++
|
||||||
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/nm-cloud-setup/nm-cloud-setup.service.in b/src/nm-cloud-setup/nm-cloud-setup.service.in
|
||||||
|
index 4aa6017e48..10acf8add6 100644
|
||||||
|
--- a/src/nm-cloud-setup/nm-cloud-setup.service.in
|
||||||
|
+++ b/src/nm-cloud-setup/nm-cloud-setup.service.in
|
||||||
|
@@ -8,6 +8,17 @@ After=NetworkManager.service
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=@libexecdir@/nm-cloud-setup
|
||||||
|
|
||||||
|
+# The service restart gets triggered from dispatcher script
|
||||||
|
+# (pre-up and dhcp4-change actions), possibly ending up with many
|
||||||
|
+# restart requests at the same time (e.g. on initial daemon startup
|
||||||
|
+# on a machine with multiple NICs). The systemd handles multiple
|
||||||
|
+# concurrent restart requests gracefully (the newer requests supersede
|
||||||
|
+# older, which wait for them to finish), but the default limits are way
|
||||||
|
+# too low: 5 restarts in 10 seconds. Raise that high enough for us to
|
||||||
|
+# be on the safe side.
|
||||||
|
+StartLimitIntervalSec=1
|
||||||
|
+StartLimitBurst=100
|
||||||
|
+
|
||||||
|
#Environment=NM_CLOUD_SETUP_LOG=TRACE
|
||||||
|
|
||||||
|
# Cloud providers are disabled by default. You need to
|
||||||
|
--
|
||||||
|
2.46.0
|
||||||
|
|
@ -0,0 +1,141 @@
|
|||||||
|
From 81bba3f2321939bb9fd0200a91ac0bec79960732 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= <ihuguet@redhat.com>
|
||||||
|
Date: Tue, 27 Aug 2024 12:08:16 +0200
|
||||||
|
Subject: [PATCH] cloud-setup: azure: ensure that primary address is placed
|
||||||
|
first
|
||||||
|
|
||||||
|
The primary address is that placed at position 0 of all the IP Addresses
|
||||||
|
of the interface. Sometimes we put it in a different position in the
|
||||||
|
ipv4s array because we insert them in the order we receive, but it might
|
||||||
|
happen that the HTTP responses comes back in wrong order.
|
||||||
|
|
||||||
|
In order to solve this, we pass the index of the IPv4 address to the
|
||||||
|
callback and the address is added in the right position directly.
|
||||||
|
|
||||||
|
Co-authored-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
|
||||||
|
(cherry picked from commit 72014db629cff33611ade58190d45a714efa1bbf)
|
||||||
|
(cherry picked from commit c976e212372da9683a1e2f8618e3bcfdf21d5e25)
|
||||||
|
(cherry picked from commit 55812963fde9519bb2752c46575a740fa0fea688)
|
||||||
|
---
|
||||||
|
src/nm-cloud-setup/nmcs-provider-azure.c | 43 ++++++++++++++++--------
|
||||||
|
1 file changed, 29 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/nm-cloud-setup/nmcs-provider-azure.c b/src/nm-cloud-setup/nmcs-provider-azure.c
|
||||||
|
index 771c43d9ad..78eda16cbb 100644
|
||||||
|
--- a/src/nm-cloud-setup/nmcs-provider-azure.c
|
||||||
|
+++ b/src/nm-cloud-setup/nmcs-provider-azure.c
|
||||||
|
@@ -102,6 +102,11 @@ typedef struct {
|
||||||
|
guint n_iface_data_pending;
|
||||||
|
} AzureIfaceData;
|
||||||
|
|
||||||
|
+typedef struct {
|
||||||
|
+ AzureIfaceData *iface_data;
|
||||||
|
+ guint64 ipaddress_idx;
|
||||||
|
+} AzureIpAddressReqData;
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
_azure_iface_data_destroy(AzureIfaceData *iface_data)
|
||||||
|
{
|
||||||
|
@@ -112,7 +117,8 @@ static void
|
||||||
|
_get_config_fetch_done_cb(NMHttpClient *http_client,
|
||||||
|
GAsyncResult *result,
|
||||||
|
AzureIfaceData *iface_data,
|
||||||
|
- GetConfigFetchType fetch_type)
|
||||||
|
+ GetConfigFetchType fetch_type,
|
||||||
|
+ guint64 ipaddress_idx)
|
||||||
|
{
|
||||||
|
NMCSProviderGetConfigTaskData *get_config_data;
|
||||||
|
NMCSProviderGetConfigIfaceData *iface_get_config;
|
||||||
|
@@ -149,9 +155,7 @@ _get_config_fetch_done_cb(NMHttpClient *http_client,
|
||||||
|
_LOGD("interface[%" G_GSSIZE_FORMAT "]: received address %s",
|
||||||
|
iface_data->intern_iface_idx,
|
||||||
|
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++;
|
||||||
|
+ iface_get_config->ipv4s_arr[ipaddress_idx] = tmp_addr;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS:
|
||||||
|
@@ -203,10 +207,14 @@ _get_config_fetch_done_cb_ipv4_ipaddress_x_privateipaddress(GObject *source
|
||||||
|
GAsyncResult *result,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
+ AzureIpAddressReqData *ipaddress_req_data = user_data;
|
||||||
|
+
|
||||||
|
_get_config_fetch_done_cb(NM_HTTP_CLIENT(source),
|
||||||
|
result,
|
||||||
|
- user_data,
|
||||||
|
- GET_CONFIG_FETCH_TYPE_IPV4_IPADDRESS_X_PRIVATEIPADDRESS);
|
||||||
|
+ ipaddress_req_data->iface_data,
|
||||||
|
+ GET_CONFIG_FETCH_TYPE_IPV4_IPADDRESS_X_PRIVATEIPADDRESS,
|
||||||
|
+ ipaddress_req_data->ipaddress_idx);
|
||||||
|
+ g_free(ipaddress_req_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -217,7 +225,8 @@ _get_config_fetch_done_cb_ipv4_subnet_0_address(GObject *source,
|
||||||
|
_get_config_fetch_done_cb(NM_HTTP_CLIENT(source),
|
||||||
|
result,
|
||||||
|
user_data,
|
||||||
|
- GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS);
|
||||||
|
+ GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_ADDRESS,
|
||||||
|
+ 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -228,7 +237,8 @@ _get_config_fetch_done_cb_ipv4_subnet_0_prefix(GObject *source,
|
||||||
|
_get_config_fetch_done_cb(NM_HTTP_CLIENT(source),
|
||||||
|
result,
|
||||||
|
user_data,
|
||||||
|
- GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_PREFIX);
|
||||||
|
+ GET_CONFIG_FETCH_TYPE_IPV4_SUBNET_0_PREFIX,
|
||||||
|
+ 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -265,9 +275,10 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u
|
||||||
|
nm_sprintf_buf(iface_idx_str, "%" G_GSSIZE_FORMAT, iface_data->intern_iface_idx);
|
||||||
|
|
||||||
|
while (nm_utils_parse_next_line(&response_str, &response_len, &line, &line_len)) {
|
||||||
|
- gint64 ips_prefix_idx;
|
||||||
|
- gs_free char *uri = NULL;
|
||||||
|
- char buf[100];
|
||||||
|
+ AzureIpAddressReqData *ipaddress_req_data;
|
||||||
|
+ gint64 ips_prefix_idx;
|
||||||
|
+ gs_free char *uri = NULL;
|
||||||
|
+ char buf[100];
|
||||||
|
|
||||||
|
if (line_len == 0)
|
||||||
|
continue;
|
||||||
|
@@ -284,8 +295,11 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u
|
||||||
|
if (ips_prefix_idx < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- iface_data->n_iface_data_pending++;
|
||||||
|
+ ipaddress_req_data = g_new(AzureIpAddressReqData, 1);
|
||||||
|
+ ipaddress_req_data->iface_data = iface_data;
|
||||||
|
+ ipaddress_req_data->ipaddress_idx = ips_prefix_idx;
|
||||||
|
|
||||||
|
+ iface_data->n_iface_data_pending++;
|
||||||
|
nm_http_client_poll_req(
|
||||||
|
NM_HTTP_CLIENT(source),
|
||||||
|
(uri = _azure_uri_interfaces(iface_idx_str,
|
||||||
|
@@ -302,11 +316,12 @@ _get_config_ips_prefix_list_cb(GObject *source, GAsyncResult *result, gpointer u
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_get_config_fetch_done_cb_ipv4_ipaddress_x_privateipaddress,
|
||||||
|
- iface_data);
|
||||||
|
+ ipaddress_req_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
- iface_data->iface_get_config->ipv4s_len = 0;
|
||||||
|
iface_data->iface_get_config->ipv4s_arr = g_new(in_addr_t, iface_data->n_iface_data_pending);
|
||||||
|
+ iface_data->iface_get_config->has_ipv4s = TRUE;
|
||||||
|
+ iface_data->iface_get_config->ipv4s_len = iface_data->n_iface_data_pending;
|
||||||
|
|
||||||
|
{
|
||||||
|
gs_free char *uri = NULL;
|
||||||
|
--
|
||||||
|
2.46.0
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
# Enable connectivity checking for NetworkManager.
|
||||||
|
# See `man NetworkManager.conf`.
|
||||||
|
#
|
||||||
|
# Note that connectivity checking works badly with rp_filter set to
|
||||||
|
# strict. Check "/proc/sys/net/ipv4/conf/*/rp_filter".
|
||||||
|
[connectivity]
|
||||||
|
enabled=true
|
||||||
|
uri=http://static.inferitos.ru/test/check-networkmanager.txt
|
||||||
|
response=OK
|
||||||
|
interval=300
|
Loading…
Reference in new issue