]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
[master] Correct delayed-ack 0 prohibiting active lease updates to lease file
authorThomas Markwalder <tmark@isc.org>
Fri, 9 Feb 2018 14:19:54 +0000 (09:19 -0500)
committerThomas Markwalder <tmark@isc.org>
Fri, 9 Feb 2018 14:19:54 +0000 (09:19 -0500)
    Merges in 47141.

RELNOTES
includes/dhcpd.h
server/dhcp.c

index 0a1f9b4521cdbb247e20a9756e061826acb83413..ca27e6b5a42ed5e347ab141b752c4d0c666d663e 100644 (file)
--- a/RELNOTES
+++ b/RELNOTES
@@ -87,6 +87,16 @@ ISC DHCP is open source software maintained by Internet Systems
 Consortium.  This product includes cryptographic software written
 by Eric Young (eay@cryptsoft.com).
 
+                Changes since 4.4.0 (New Features)
+- none
+                Changes since 4.4.0 (Bugs)
+
+- A delayed-ack value of 0 (the default), now correctly disables the delayed
+  feature.  A change in 4.4.0 prohibited lease updates marking leases active
+  from be written to the lease file when delayed-ack is 0. This in turn,
+  caused servers to lose active lease assignments upon restart.
+  [ISC-Bugs #47141]
+
                 Changes since 4.4.0b1 (New Features)
 
 - Duplicate address detection when binding to a new IPv6 address was added
index eecc5d72ae1bee0cb45d20f5dbbc5856999616ac..5930e6ad8cf9793c45bd57564a4c8ab93e1c441c 100644 (file)
@@ -821,7 +821,7 @@ struct lease_state {
 #endif
 
 #if !defined (DEFAULT_DELAYED_ACK)
-# define DEFAULT_DELAYED_ACK 0  /* default SO_SNDBUF size / 576 bytes */
+# define DEFAULT_DELAYED_ACK 0  /* default 0 disables delayed acking */
 #endif
 
 #if !defined (DEFAULT_ACK_DELAY_SECS)
index f302d6e66ad82688396bdc0caac94dfb76180a3c..6f3a91f09f4572bf53d1ef897b05864b7e2b244d 100644 (file)
@@ -3,7 +3,7 @@
    DHCP Protocol engine. */
 
 /*
- * Copyright (c) 2004-2017 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 2004-2018 by Internet Systems Consortium, Inc. ("ISC")
  * Copyright (c) 1995-2003 by Internet Software Consortium
  *
  * This Source Code Form is subject to the terms of the Mozilla Public
@@ -3610,7 +3610,7 @@ void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
        } else {
                lease->cltt = cur_time;
 #if defined(DELAYED_ACK)
-               if (enqueue && max_outstanding_acks != 0)
+               if (enqueue)
                        delayed_ack_enqueue(lease);
                else 
 #endif