about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-01-15 02:59:07 +0100
committerMichael Biebl <biebl@debian.org>2020-01-15 02:59:21 +0100
commitb8c83b491d615be8bf3ffc06f708536786e940eb (patch)
tree1fe213c8bf099f5ce9a52da579ce39cc52f0c15e
parentd7239573d8589cf42d0e00ebc86cde21305eb5d2 (diff)
Rebase patches
-rw-r--r--debian/patches/dhcp-nettools-handle-retracted-event-as-expired.patch36
-rw-r--r--debian/patches/n-dhcp4-allow-calling-listen-on-already-listening-connect.patch29
-rw-r--r--debian/patches/n-dhcp4-restart-the-transaction-after-a-NAK.patch70
-rw-r--r--debian/patches/series3
4 files changed, 0 insertions, 138 deletions
diff --git a/debian/patches/dhcp-nettools-handle-retracted-event-as-expired.patch b/debian/patches/dhcp-nettools-handle-retracted-event-as-expired.patch
deleted file mode 100644
index 23378ce5..00000000
--- a/debian/patches/dhcp-nettools-handle-retracted-event-as-expired.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Beniamino Galvani <bgalvani@redhat.com>
-Date: Tue, 7 Jan 2020 12:03:21 +0100
-Subject: dhcp: nettools: handle 'retracted' event as 'expired'
-
-The 'retracted' event is emitted when the client receives a NAK in the
-rebooting, requesting, renewing or rebinding state, while 'expired'
-means that the client wasn't able to renew the lease before expiry.
-
-In both cases the old lease is no longer valid and n-dhcp4 keep trying
-to get a lease, so the two events should be handlded in the same way.
-
-Note that the systemd client doesn't have a 'retracted' event and
-considers all NAKs as 'expired' events.
-
-(cherry picked from commit 2523000b36b113fd7b94ae6b7178f6fd33908ef9)
-(cherry picked from commit 92b382e2f85b0870b553358cec0209a0a0e3ce31)
----
- src/dhcp/nm-dhcp-nettools.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/dhcp/nm-dhcp-nettools.c b/src/dhcp/nm-dhcp-nettools.c
-index 1f76c64..b4c0a45 100644
---- a/src/dhcp/nm-dhcp-nettools.c
-+++ b/src/dhcp/nm-dhcp-nettools.c
-@@ -1028,10 +1028,10 @@ dhcp4_event_handle (NMDhcpNettools *self,
- 			_LOGW ("selecting lease failed: %d", r);
- 		}
- 		break;
-+	case N_DHCP4_CLIENT_EVENT_RETRACTED:
- 	case N_DHCP4_CLIENT_EVENT_EXPIRED:
- 		nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_EXPIRE, NULL, NULL);
- 		break;
--	case N_DHCP4_CLIENT_EVENT_RETRACTED:
- 	case N_DHCP4_CLIENT_EVENT_CANCELLED:
- 		nm_dhcp_client_set_state (NM_DHCP_CLIENT (self), NM_DHCP_STATE_FAIL, NULL, NULL);
- 		break;
diff --git a/debian/patches/n-dhcp4-allow-calling-listen-on-already-listening-connect.patch b/debian/patches/n-dhcp4-allow-calling-listen-on-already-listening-connect.patch
deleted file mode 100644
index d682210b..00000000
--- a/debian/patches/n-dhcp4-allow-calling-listen-on-already-listening-connect.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Beniamino Galvani <bgalvani@redhat.com>
-Date: Tue, 7 Jan 2020 12:01:39 +0100
-Subject: n-dhcp4: allow calling listen() on already listening connection
-
-When the client enters the INIT state, it calls listen() on the
-connection connection to create the packet socket. However, if the
-client is coming from the REBOOTING state after a NAK, the connection
-is already in the listening state; do nothing in such case.
-
-(cherry picked from commit 4bcdc3c1ebe3e2e8a967ff067ecb2a8cbfc2f6ab)
-(cherry picked from commit 2e1d3ae572a753f0181760d9fa41558d33849b09)
----
- shared/n-dhcp4/src/n-dhcp4-c-connection.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/shared/n-dhcp4/src/n-dhcp4-c-connection.c b/shared/n-dhcp4/src/n-dhcp4-c-connection.c
-index e51a3e3..f3ae44e 100644
---- a/shared/n-dhcp4/src/n-dhcp4-c-connection.c
-+++ b/shared/n-dhcp4/src/n-dhcp4-c-connection.c
-@@ -139,6 +139,9 @@ int n_dhcp4_c_connection_listen(NDhcp4CConnection *connection) {
-         _c_cleanup_(c_closep) int fd_packet = -1;
-         int r;
- 
-+        if (connection->state == N_DHCP4_C_CONNECTION_STATE_PACKET)
-+                return 0;
-+
-         c_assert(connection->state == N_DHCP4_C_CONNECTION_STATE_INIT ||
-                  connection->state == N_DHCP4_C_CONNECTION_STATE_DRAINING ||
-                  connection->state == N_DHCP4_C_CONNECTION_STATE_UDP);
diff --git a/debian/patches/n-dhcp4-restart-the-transaction-after-a-NAK.patch b/debian/patches/n-dhcp4-restart-the-transaction-after-a-NAK.patch
deleted file mode 100644
index d245597f..00000000
--- a/debian/patches/n-dhcp4-restart-the-transaction-after-a-NAK.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From: Beniamino Galvani <bgalvani@redhat.com>
-Date: Tue, 7 Jan 2020 12:02:55 +0100
-Subject: n-dhcp4: restart the transaction after a NAK
-
-It is not enough to set the INIT state after a NAK; a timeout
-(ns_deferred) must be set so that it is added to the event fd. The
-client retries immediately the first time, so that in the successful
-case it gets an address quickly. To avoid flooding the network in case
-of servers always replying with NAKs, next attempts are done with
-intervals from 2 seconds to 5 minutes using exponential backoff. See
-also systemd commit [1].
-
-[1] https://github.com/systemd/systemd/commit/1d1a3e0afb85478cda43670b8ed92a6db6c83f3e
-
-https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/325
-(cherry picked from commit 218782a9a3c326f5c8cc3ea40dc0cd039060b188)
-(cherry picked from commit ae5b9343d2e52917546f228b7a4d3c7fc4fa98ec)
----
- shared/n-dhcp4/src/n-dhcp4-c-probe.c | 10 ++++++----
- shared/n-dhcp4/src/n-dhcp4-private.h |  1 +
- 2 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/shared/n-dhcp4/src/n-dhcp4-c-probe.c b/shared/n-dhcp4/src/n-dhcp4-c-probe.c
-index 4fb7d38..82a089e 100644
---- a/shared/n-dhcp4/src/n-dhcp4-c-probe.c
-+++ b/shared/n-dhcp4/src/n-dhcp4-c-probe.c
-@@ -946,7 +946,7 @@ static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4I
-                 n_dhcp4_client_lease_unref(probe->current_lease);
-                 probe->current_lease = n_dhcp4_client_lease_ref(lease);
-                 probe->state = N_DHCP4_CLIENT_PROBE_STATE_BOUND;
--
-+                probe->ns_nak_restart_delay = 0;
-                 break;
- 
-         case N_DHCP4_CLIENT_PROBE_STATE_REQUESTING:
-@@ -969,7 +969,7 @@ static int n_dhcp4_client_probe_transition_ack(NDhcp4ClientProbe *probe, NDhcp4I
-                 node->event.granted.lease = n_dhcp4_client_lease_ref(lease);
-                 probe->current_lease = n_dhcp4_client_lease_ref(lease);
-                 probe->state = N_DHCP4_CLIENT_PROBE_STATE_GRANTED;
--
-+                probe->ns_nak_restart_delay = 0;
-                 break;
- 
-         case N_DHCP4_CLIENT_PROBE_STATE_INIT:
-@@ -1004,9 +1004,11 @@ static int n_dhcp4_client_probe_transition_nak(NDhcp4ClientProbe *probe) {
-                         return r;
- 
-                 probe->state = N_DHCP4_CLIENT_PROBE_STATE_INIT;
--
-+                probe->ns_deferred = n_dhcp4_gettime(CLOCK_BOOTTIME) + probe->ns_nak_restart_delay;
-+                probe->ns_nak_restart_delay = c_clamp(probe->ns_nak_restart_delay * 2,
-+                                                      UINT64_C(1000000000 * 2),
-+                                                      UINT64_C(1000000000 * 300));
-                 break;
--
-         case N_DHCP4_CLIENT_PROBE_STATE_SELECTING:
-         case N_DHCP4_CLIENT_PROBE_STATE_INIT_REBOOT:
-         case N_DHCP4_CLIENT_PROBE_STATE_INIT:
-diff --git a/shared/n-dhcp4/src/n-dhcp4-private.h b/shared/n-dhcp4/src/n-dhcp4-private.h
-index fcfb0f3..c092ae8 100644
---- a/shared/n-dhcp4/src/n-dhcp4-private.h
-+++ b/shared/n-dhcp4/src/n-dhcp4-private.h
-@@ -352,6 +352,7 @@ struct NDhcp4ClientProbe {
-         unsigned int state;                     /* current probe state */
-         uint64_t ns_deferred;                   /* timeout for deferred action */
-         uint64_t ns_reinit;
-+        uint64_t ns_nak_restart_delay;          /* restart delay after a nak */
-         NDhcp4ClientLease *current_lease;       /* current lease */
- 
-         NDhcp4CConnection connection;           /* client connection wrapper */
diff --git a/debian/patches/series b/debian/patches/series
index 1db304db..9a20acf2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,2 @@
 Force-online-state-with-unmanaged-devices.patch
 Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch
-n-dhcp4-allow-calling-listen-on-already-listening-connect.patch
-n-dhcp4-restart-the-transaction-after-a-NAK.patch
-dhcp-nettools-handle-retracted-event-as-expired.patch