853382bddd
- fixed a typo in nis-servers option name breaking the config file introduced in previous change to workaround issues in NetworkManager parser. - Update to dhcp-4.3.5 - Corrected a bug which could cause the server to sporadically crash while loading lease files with the lease-id-format is set to "hex". Our thanks to Jay Ford, University of Iowa for reporting the issue. [ISC-Bugs #43185] - Eliminated a noisy, but otherwise harmless debug log statment that may appear during server startup when building with --enable-binary-leases and configuring multiple pools in a shared network. Thanks to Fernando Soto from BlueCat Networks for reporting the issue and supplying a patch. [ISC-Bugs #43262] - Fixed util/bindvar.sh error handling. [ISC-Bugs #41973] - Correct error message in relay to use remote id length instead of circuit id length. [ISC-Bugs #42556] - Add logic to test directory Makefiles to avoid copying Attfile(s) when building within the source tree. This eliminates a noisy but otherwise harmless error message when running "make check". [ISC-Bugs #41883] - Leases are now scrubbed of certain prior use information when pool re-balancing reassigns them from one FO peer to the other. This corrects an issue where leases that were offered but not used by the client retained the client hostname from the original client. Thanks to Pavel Polacek, Jan Evangelista Purkyne University for reporting the issue. [ISC-Bugs #42008] - In the LDAP code and schema add some missing '6' characters to use the v6 instead of the v4 versions. Thanks to Denis Taranushin for OBS-URL: https://build.opensuse.org/request/show/508601 OBS-URL: https://build.opensuse.org/package/show/network:dhcp/dhcp?expand=0&rev=174
99 lines
2.9 KiB
Diff
99 lines
2.9 KiB
Diff
From ce15607bca2509bc2abd440000d25498ad589e27 Mon Sep 17 00:00:00 2001
|
|
From: Marius Tomaschewski <mt@suse.de>
|
|
Date: Mon, 14 Sep 2015 15:31:37 +0200
|
|
Subject: [PATCH] server: no success report before send (bsc#919959)
|
|
References: bsc#919959
|
|
|
|
|
|
diff --git a/server/dhcp.c b/server/dhcp.c
|
|
index effa9b1..18297a6 100644
|
|
--- a/server/dhcp.c
|
|
+++ b/server/dhcp.c
|
|
@@ -3859,22 +3859,6 @@ void dhcp_reply (lease)
|
|
}
|
|
#endif
|
|
|
|
- /* Say what we're doing... */
|
|
- log_info ("%s on %s to %s %s%s%svia %s",
|
|
- (state -> offer
|
|
- ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER")
|
|
- : "BOOTREPLY"),
|
|
- piaddr (lease -> ip_addr),
|
|
- (lease -> hardware_addr.hlen
|
|
- ? print_hw_addr (lease -> hardware_addr.hbuf [0],
|
|
- lease -> hardware_addr.hlen - 1,
|
|
- &lease -> hardware_addr.hbuf [1])
|
|
- : print_hex_1(lease->uid_len, lease->uid, 60)),
|
|
- s ? "(" : "", s ? s : "", s ? ") " : "",
|
|
- (state -> giaddr.s_addr
|
|
- ? inet_ntoa (state -> giaddr)
|
|
- : state -> ip -> name));
|
|
-
|
|
#ifdef DEBUG_PACKET
|
|
dump_raw ((unsigned char *)&raw, packet_length);
|
|
#endif
|
|
@@ -3906,12 +3890,13 @@ void dhcp_reply (lease)
|
|
"packet over %s interface.", MDL,
|
|
packet_length,
|
|
fallback_interface->name);
|
|
- }
|
|
|
|
+ free_lease_state (state, MDL);
|
|
+ lease -> state = (struct lease_state *)0;
|
|
+ return;
|
|
+ }
|
|
|
|
- free_lease_state (state, MDL);
|
|
- lease -> state = (struct lease_state *)0;
|
|
- return;
|
|
+ goto report;
|
|
}
|
|
|
|
/* If the client is RENEWING, unicast to the client using the
|
|
@@ -3944,11 +3929,13 @@ void dhcp_reply (lease)
|
|
" packet over %s interface.", MDL,
|
|
packet_length,
|
|
fallback_interface->name);
|
|
+
|
|
+ free_lease_state (state, MDL);
|
|
+ lease -> state = (struct lease_state *)0;
|
|
+ return;
|
|
}
|
|
|
|
- free_lease_state (state, MDL);
|
|
- lease -> state = (struct lease_state *)0;
|
|
- return;
|
|
+ goto report;
|
|
}
|
|
|
|
/* If it comes from a client that already knows its address
|
|
@@ -3976,8 +3963,28 @@ void dhcp_reply (lease)
|
|
log_error ("%s:%d: Failed to send %d byte long "
|
|
"packet over %s interface.", MDL,
|
|
packet_length, state->ip->name);
|
|
+
|
|
+ free_lease_state (state, MDL);
|
|
+ lease -> state = (struct lease_state *)0;
|
|
+ return;
|
|
}
|
|
|
|
+report:
|
|
+ /* Say what we're doing... */
|
|
+ log_info ("%s on %s to %s %s%s%svia %s",
|
|
+ (state -> offer
|
|
+ ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER")
|
|
+ : "BOOTREPLY"),
|
|
+ piaddr (lease -> ip_addr),
|
|
+ (lease -> hardware_addr.hlen
|
|
+ ? print_hw_addr (lease -> hardware_addr.hbuf [0],
|
|
+ lease -> hardware_addr.hlen - 1,
|
|
+ &lease -> hardware_addr.hbuf [1])
|
|
+ : print_hex_1(lease->uid_len, lease->uid, 60)),
|
|
+ s ? "(" : "", s ? s : "", s ? ") " : "",
|
|
+ (state -> giaddr.s_addr
|
|
+ ? inet_ntoa (state -> giaddr)
|
|
+ : state -> ip -> name));
|
|
|
|
/* Free all of the entries in the option_state structure
|
|
now that we're done with them. */
|