about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2024-09-24 17:01:29 +0200
committerMichael Biebl <biebl@debian.org>2024-09-24 17:01:29 +0200
commitdf14a83a8b0c4354a51b392ae51a084b4b9c1b5a (patch)
tree803efa82300da2d7bd16b0e0a9e607ac5e4a419d /src
parentf9bfd1158b8d08d6a5ed3bb7cc1ba7a6455e5201 (diff)
New upstream version 1.49.91 upstream/1.49.91
Diffstat (limited to 'src')
-rw-r--r--src/core/devices/ovs/nm-device-ovs-interface.c6
-rw-r--r--src/core/nm-l3-config-data.c4
-rw-r--r--src/core/nm-l3cfg.c4
-rw-r--r--src/nm-cloud-setup/nm-cloud-setup.service.in8
-rw-r--r--src/nmtui/nmt-edit-connection-list.c17
5 files changed, 26 insertions, 13 deletions
diff --git a/src/core/devices/ovs/nm-device-ovs-interface.c b/src/core/devices/ovs/nm-device-ovs-interface.c
index ac136be2..8aeb8718 100644
--- a/src/core/devices/ovs/nm-device-ovs-interface.c
+++ b/src/core/devices/ovs/nm-device-ovs-interface.c
@@ -438,7 +438,7 @@ act_stage3_ip_config(NMDevice *device, int addr_family)
     if (check_waiting_for_link(device, addr_family == AF_INET ? "stage3-ipv4" : "stage3-ipv6")) {
         nm_device_devip_set_state(device, addr_family, NM_DEVICE_IP_STATE_PENDING, NULL);
         if (nm_device_get_ip_ifindex(device) <= 0 && priv->wait_link.tun_link_signal_id == 0
-            && ovs_interface_is_netdev_datapath(self)) {
+            && priv->wait_link.tun_ifindex <= 0 && ovs_interface_is_netdev_datapath(self)) {
             priv->wait_link.tun_link_signal_id = g_signal_connect(nm_device_get_platform(device),
                                                                   NM_PLATFORM_SIGNAL_LINK_CHANGED,
                                                                   G_CALLBACK(_netdev_tun_link_cb),
@@ -483,6 +483,7 @@ deactivate(NMDevice *device)
     NMDeviceOvsInterface        *self = NM_DEVICE_OVS_INTERFACE(device);
     NMDeviceOvsInterfacePrivate *priv = NM_DEVICE_OVS_INTERFACE_GET_PRIVATE(self);
 
+    priv->wait_link.tun_ifindex          = -1;
     priv->wait_link.waiting              = FALSE;
     priv->wait_link.cloned_mac_evaluated = FALSE;
     nm_clear_g_free(&priv->wait_link.cloned_mac);
@@ -581,6 +582,7 @@ deactivate_async(NMDevice                  *device,
 
     nm_clear_g_signal_handler(nm_device_get_platform(device), &priv->wait_link.tun_link_signal_id);
     nm_clear_g_source_inst(&priv->wait_link.tun_set_ifindex_idle_source);
+    priv->wait_link.tun_ifindex          = -1;
     priv->wait_link.cloned_mac_evaluated = FALSE;
     nm_clear_g_free(&priv->wait_link.cloned_mac);
 
@@ -668,6 +670,8 @@ nm_device_ovs_interface_init(NMDeviceOvsInterface *self)
 
     if (!nm_ovsdb_is_ready(priv->ovsdb))
         g_signal_connect(priv->ovsdb, NM_OVSDB_READY, G_CALLBACK(ovsdb_ready), self);
+
+    priv->wait_link.tun_ifindex = -1;
 }
 
 static void
diff --git a/src/core/nm-l3-config-data.c b/src/core/nm-l3-config-data.c
index 03c66ce0..6d98e46d 100644
--- a/src/core/nm-l3-config-data.c
+++ b/src/core/nm-l3-config-data.c
@@ -3470,8 +3470,8 @@ nm_l3_config_data_merge(NML3ConfigData       *self,
             g_steal_pointer(&self->dhcp_lease_x[1]);
 
         self->source          = src->source;
-        self->dhcp_lease_x[0] = nm_dhcp_lease_ref(self->dhcp_lease_x[0]);
-        self->dhcp_lease_x[1] = nm_dhcp_lease_ref(self->dhcp_lease_x[1]);
+        self->dhcp_lease_x[0] = nm_dhcp_lease_ref(src->dhcp_lease_x[0]);
+        self->dhcp_lease_x[1] = nm_dhcp_lease_ref(src->dhcp_lease_x[1]);
     }
     if (!src->allow_routes_without_address_4)
         self->allow_routes_without_address_4 = FALSE;
diff --git a/src/core/nm-l3cfg.c b/src/core/nm-l3cfg.c
index 57baeac2..2c977991 100644
--- a/src/core/nm-l3cfg.c
+++ b/src/core/nm-l3cfg.c
@@ -2752,7 +2752,9 @@ handle_init:
                     goto handle_start_defending;
                 }
 
-                log_reason = "retry probing on timeout";
+                acd_data->probing_timestamp_msec = (*p_now_msec);
+                acd_data->probing_timeout_msec   = acd_timeout_msec;
+                log_reason                       = "retry probing on timeout";
                 goto handle_start_probing;
             }
 
diff --git a/src/nm-cloud-setup/nm-cloud-setup.service.in b/src/nm-cloud-setup/nm-cloud-setup.service.in
index ecb70e1c..cb782b22 100644
--- a/src/nm-cloud-setup/nm-cloud-setup.service.in
+++ b/src/nm-cloud-setup/nm-cloud-setup.service.in
@@ -4,10 +4,6 @@ Documentation=man:nm-cloud-setup(8)
 Before=network-online.target
 After=NetworkManager.service
 
-[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
@@ -19,6 +15,10 @@ ExecStart=@libexecdir@/nm-cloud-setup
 StartLimitIntervalSec=1
 StartLimitBurst=100
 
+[Service]
+Type=oneshot
+ExecStart=@libexecdir@/nm-cloud-setup
+
 #Environment=NM_CLOUD_SETUP_LOG=TRACE
 
 # Cloud providers are disabled by default. You need to
diff --git a/src/nmtui/nmt-edit-connection-list.c b/src/nmtui/nmt-edit-connection-list.c
index f8d8303b..1ea44007 100644
--- a/src/nmtui/nmt-edit-connection-list.c
+++ b/src/nmtui/nmt-edit-connection-list.c
@@ -154,7 +154,7 @@ nmt_edit_connection_list_rebuild(NmtEditConnectionList *list)
     NmtEditConnectionListPrivate *priv = NMT_EDIT_CONNECTION_LIST_GET_PRIVATE(list);
     const GPtrArray              *connections;
     GSList                       *iter;
-    gboolean                      did_header = FALSE, did_vpn = FALSE;
+    gboolean                      did_header = FALSE, did_vpn = FALSE, did_any = FALSE;
     NMEditorConnectionTypeData  **types;
     NMConnection                 *conn, *selected_conn;
     int                           i, row, selected_row;
@@ -181,9 +181,6 @@ nmt_edit_connection_list_rebuild(NmtEditConnectionList *list)
     g_object_notify(G_OBJECT(list), "connections");
     g_object_notify(G_OBJECT(list), "num-connections");
 
-    nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->edit), priv->connections != NULL);
-    nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->delete), priv->connections != NULL);
-
     nmt_newt_listbox_clear(priv->listbox);
 
     if (!priv->grouped) {
@@ -198,7 +195,9 @@ nmt_edit_connection_list_rebuild(NmtEditConnectionList *list)
             selected_row = row - 1;
         nmt_newt_listbox_set_active(priv->listbox, selected_row);
 
-        return;
+        did_any = !!priv->connections;
+
+        goto done;
     }
 
     types = nm_editor_utils_get_connection_type_list();
@@ -230,6 +229,10 @@ nmt_edit_connection_list_rebuild(NmtEditConnectionList *list)
                 did_header = TRUE;
             }
 
+            if (!did_any) {
+                did_any = TRUE;
+            }
+
             indented = g_strdup_printf("  %s", nm_connection_get_id(conn));
             nmt_newt_listbox_append(priv->listbox, indented, conn);
             g_free(indented);
@@ -243,6 +246,10 @@ nmt_edit_connection_list_rebuild(NmtEditConnectionList *list)
     if (selected_row >= row)
         selected_row = row - 1;
     nmt_newt_listbox_set_active(priv->listbox, selected_row);
+
+done:
+    nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->edit), did_any);
+    nmt_newt_component_set_sensitive(NMT_NEWT_COMPONENT(priv->delete), did_any);
 }
 
 static void