Accepting request 866365 from home:dirkmueller:branches:network:dhcp
- update to 4.4.2: * Please note that that ISC DHCP is now licensed under the Mozilla Public License, MPL 2.0. In general, the areas of focus for ISC DHCP 4.4 were: 1. Dynamic DNS additions 2. dhclient improvements 3. Support for dynamic shared libraries * Added the interface name to socket initialization failure log messages. Prior to this the log messages stated only the error reason without stating the target interface. * Corrected buffer pointer logic in dhcrelay functions that manipulate agent relay options. Thanks to Thomas Imbert of MSRC Vulnerabilities & Mitigations for reporting the issue. * Corrected unresolved symbol errors building relay_unittests when configured to build using libtool. * A new configuration parameter, ping-cltt-secs (v4 operation only), has been added to allow the user to specify the number of seconds that must elapse since CLTT before a ping check is conducted. Prior to this, the value was hard coded at 60 seconds. Please see the server man pages for a more detailed discussion. * A new configuration parameter, ping-timeout-ms (v4 operation only), has been added that allows the user to specify the amount of time the server waits for a ping-check response in milliseconds rather than in seconds (via ping-timeout). When greater than zero, the value of ping-timeout-ms will override the value of ping-timeout. Thanks to Jay Doran from Bluecat Networks for suggesting this feature. * An experimental tool called, Keama (KEA Migration Assistant), which helps translate ISC DHCP configurations to Kea configurations, is now included in the distribution. * Corrected a misuse of the BIND9 DDNS API which caused DDNS updates to be OBS-URL: https://build.opensuse.org/request/show/866365 OBS-URL: https://build.opensuse.org/package/show/network:dhcp/dhcp?expand=0&rev=224
This commit is contained in:
parent
5153edeabd
commit
9f2ff0f90b
@ -5,11 +5,11 @@ Subject: [PATCH] dhcp-4.3.2-dhclient-send-hostname-or-fqdn
|
|||||||
|
|
||||||
Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
||||||
|
|
||||||
diff --git a/client/dhclient.8 b/client/dhclient.8
|
Index: dhcp-4.4.2/client/dhclient.8
|
||||||
index cf073b4..6c7296b 100644
|
===================================================================
|
||||||
--- a/client/dhclient.8
|
--- dhcp-4.4.2.orig/client/dhclient.8
|
||||||
+++ b/client/dhclient.8
|
+++ dhcp-4.4.2/client/dhclient.8
|
||||||
@@ -72,6 +72,10 @@ dhclient - Dynamic Host Configuration Protocol Client
|
@@ -73,6 +73,10 @@ dhclient - Dynamic Host Configuration Pr
|
||||||
.I LL|LLT
|
.I LL|LLT
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
@ -20,7 +20,7 @@ index cf073b4..6c7296b 100644
|
|||||||
.B -p
|
.B -p
|
||||||
.I port-number
|
.I port-number
|
||||||
]
|
]
|
||||||
@@ -340,6 +344,11 @@ transmits these messages to 255.255.255.255 (the IP limited broadcast
|
@@ -353,6 +357,11 @@ transmits these messages to 255.255.255.
|
||||||
address). Overriding this is mostly useful for debugging purposes. This
|
address). Overriding this is mostly useful for debugging purposes. This
|
||||||
feature is not supported in DHCPv6 (\fB-6\fR) mode.
|
feature is not supported in DHCPv6 (\fB-6\fR) mode.
|
||||||
.TP
|
.TP
|
||||||
@ -32,19 +32,19 @@ index cf073b4..6c7296b 100644
|
|||||||
.BI \-g \ relay
|
.BI \-g \ relay
|
||||||
.\" mockup relay
|
.\" mockup relay
|
||||||
Set the giaddr field of all packets to the \fIrelay\fR IP address
|
Set the giaddr field of all packets to the \fIrelay\fR IP address
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
Index: dhcp-4.4.2/client/dhclient.c
|
||||||
index 2fb8de8..678379a 100644
|
===================================================================
|
||||||
--- a/client/dhclient.c
|
--- dhcp-4.4.2.orig/client/dhclient.c
|
||||||
+++ b/client/dhclient.c
|
+++ dhcp-4.4.2/client/dhclient.c
|
||||||
@@ -174,6 +174,7 @@ usage(const char *sfmt, const char *sarg)
|
@@ -185,6 +185,7 @@ static const char use_v6command[] = "Com
|
||||||
#else /* DHCPv6 */
|
#endif
|
||||||
"[-I1dvrxi] [-nw] [-p <port>] [-D LL|LLT] \n"
|
|
||||||
#endif /* DHCPv6 */
|
#define DHCLIENT_USAGEC \
|
||||||
+ " [-H hostname]\n"
|
+" [-H hostname]\n" \
|
||||||
" [-s server-addr] [-cf config-file]\n"
|
" [-s server-addr] [-cf config-file]\n" \
|
||||||
" [-df duid-file] [-lf lease-file]\n"
|
" [-df duid-file] [-lf lease-file]\n" \
|
||||||
" [-pf pid-file] [--no-pid] [-e VAR=val]\n"
|
" [-pf pid-file] [--no-pid] [-e VAR=val]\n" \
|
||||||
@@ -200,6 +201,7 @@ main(int argc, char **argv) {
|
@@ -235,6 +236,7 @@ main(int argc, char **argv) {
|
||||||
int no_dhclient_db = 0;
|
int no_dhclient_db = 0;
|
||||||
int no_dhclient_pid = 0;
|
int no_dhclient_pid = 0;
|
||||||
int no_dhclient_script = 0;
|
int no_dhclient_script = 0;
|
||||||
@ -52,7 +52,7 @@ index 2fb8de8..678379a 100644
|
|||||||
#ifdef DHCPv6
|
#ifdef DHCPv6
|
||||||
int local_family_set = 0;
|
int local_family_set = 0;
|
||||||
#ifdef DHCP4o6
|
#ifdef DHCP4o6
|
||||||
@@ -337,6 +339,24 @@ main(int argc, char **argv) {
|
@@ -434,6 +436,24 @@ main(int argc, char **argv) {
|
||||||
if (++i == argc)
|
if (++i == argc)
|
||||||
usage(use_noarg, argv[i-1]);
|
usage(use_noarg, argv[i-1]);
|
||||||
mockup_relay = argv[i];
|
mockup_relay = argv[i];
|
||||||
@ -77,7 +77,7 @@ index 2fb8de8..678379a 100644
|
|||||||
} else if (!strcmp(argv[i], "-nw")) {
|
} else if (!strcmp(argv[i], "-nw")) {
|
||||||
nowait = 1;
|
nowait = 1;
|
||||||
} else if (!strcmp(argv[i], "-n")) {
|
} else if (!strcmp(argv[i], "-n")) {
|
||||||
@@ -630,6 +650,48 @@ main(int argc, char **argv) {
|
@@ -759,6 +779,48 @@ main(int argc, char **argv) {
|
||||||
/* Parse the dhclient.conf file. */
|
/* Parse the dhclient.conf file. */
|
||||||
read_client_conf();
|
read_client_conf();
|
||||||
|
|
||||||
|
@ -8,9 +8,11 @@ Merged fixed close-on-exec patch (bnc#732910)
|
|||||||
References: bnc#732910
|
References: bnc#732910
|
||||||
Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
||||||
|
|
||||||
|
Index: client/clparse.c
|
||||||
|
===================================================================
|
||||||
--- client/clparse.c.orig
|
--- client/clparse.c.orig
|
||||||
+++ client/clparse.c
|
+++ client/clparse.c
|
||||||
@@ -262,7 +262,7 @@ int read_client_conf_file (const char *n
|
@@ -265,7 +265,7 @@ int read_client_conf_file (const char *n
|
||||||
int token;
|
int token;
|
||||||
isc_result_t status;
|
isc_result_t status;
|
||||||
|
|
||||||
@ -19,7 +21,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
return uerr2isc (errno);
|
return uerr2isc (errno);
|
||||||
|
|
||||||
cfile = NULL;
|
cfile = NULL;
|
||||||
@@ -338,7 +338,7 @@ void read_client_leases ()
|
@@ -341,7 +341,7 @@ void read_client_leases ()
|
||||||
|
|
||||||
/* Open the lease file. If we can't open it, just return -
|
/* Open the lease file. If we can't open it, just return -
|
||||||
we can safely trust the server to remember our state. */
|
we can safely trust the server to remember our state. */
|
||||||
@ -28,9 +30,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
cfile = NULL;
|
cfile = NULL;
|
||||||
|
Index: client/dhclient.c
|
||||||
|
===================================================================
|
||||||
--- client/dhclient.c.orig
|
--- client/dhclient.c.orig
|
||||||
+++ client/dhclient.c
|
+++ client/dhclient.c
|
||||||
@@ -565,7 +565,7 @@ main(int argc, char **argv) {
|
@@ -683,7 +683,7 @@ main(int argc, char **argv) {
|
||||||
long temp;
|
long temp;
|
||||||
int e;
|
int e;
|
||||||
|
|
||||||
@ -39,7 +43,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
e = fscanf(pidfd, "%ld\n", &temp);
|
e = fscanf(pidfd, "%ld\n", &temp);
|
||||||
oldpid = (pid_t)temp;
|
oldpid = (pid_t)temp;
|
||||||
|
|
||||||
@@ -3403,7 +3403,7 @@ void rewrite_client_leases ()
|
@@ -3642,7 +3642,7 @@ void rewrite_client_leases ()
|
||||||
|
|
||||||
if (leaseFile != NULL)
|
if (leaseFile != NULL)
|
||||||
fclose (leaseFile);
|
fclose (leaseFile);
|
||||||
@ -48,7 +52,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (leaseFile == NULL) {
|
if (leaseFile == NULL) {
|
||||||
log_error ("can't create %s: %m", path_dhclient_db);
|
log_error ("can't create %s: %m", path_dhclient_db);
|
||||||
return;
|
return;
|
||||||
@@ -3598,7 +3598,7 @@ write_duid(struct data_string *duid)
|
@@ -3837,7 +3837,7 @@ write_duid(struct data_string *duid)
|
||||||
return DHCP_R_INVALIDARG;
|
return DHCP_R_INVALIDARG;
|
||||||
|
|
||||||
if (leaseFile == NULL) { /* XXX? */
|
if (leaseFile == NULL) { /* XXX? */
|
||||||
@ -57,7 +61,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (leaseFile == NULL) {
|
if (leaseFile == NULL) {
|
||||||
log_error("can't create %s: %m", path_dhclient_db);
|
log_error("can't create %s: %m", path_dhclient_db);
|
||||||
return ISC_R_IOERROR;
|
return ISC_R_IOERROR;
|
||||||
@@ -3643,7 +3643,7 @@ write_client6_lease(struct client_state
|
@@ -3882,7 +3882,7 @@ write_client6_lease(struct client_state
|
||||||
return DHCP_R_INVALIDARG;
|
return DHCP_R_INVALIDARG;
|
||||||
|
|
||||||
if (leaseFile == NULL) { /* XXX? */
|
if (leaseFile == NULL) { /* XXX? */
|
||||||
@ -66,7 +70,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (leaseFile == NULL) {
|
if (leaseFile == NULL) {
|
||||||
log_error("can't create %s: %m", path_dhclient_db);
|
log_error("can't create %s: %m", path_dhclient_db);
|
||||||
return ISC_R_IOERROR;
|
return ISC_R_IOERROR;
|
||||||
@@ -3802,7 +3802,7 @@ int write_client_lease (client, lease, r
|
@@ -4041,7 +4041,7 @@ int write_client_lease (client, lease, r
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (leaseFile == NULL) { /* XXX */
|
if (leaseFile == NULL) { /* XXX */
|
||||||
@ -75,6 +79,8 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (leaseFile == NULL) {
|
if (leaseFile == NULL) {
|
||||||
log_error ("can't create %s: %m", path_dhclient_db);
|
log_error ("can't create %s: %m", path_dhclient_db);
|
||||||
return 0;
|
return 0;
|
||||||
|
Index: common/bpf.c
|
||||||
|
===================================================================
|
||||||
--- common/bpf.c.orig
|
--- common/bpf.c.orig
|
||||||
+++ common/bpf.c
|
+++ common/bpf.c
|
||||||
@@ -94,7 +94,7 @@ int if_register_bpf (info)
|
@@ -94,7 +94,7 @@ int if_register_bpf (info)
|
||||||
@ -86,9 +92,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (sock < 0) {
|
if (sock < 0) {
|
||||||
if (errno == EBUSY) {
|
if (errno == EBUSY) {
|
||||||
continue;
|
continue;
|
||||||
|
Index: common/dlpi.c
|
||||||
|
===================================================================
|
||||||
--- common/dlpi.c.orig
|
--- common/dlpi.c.orig
|
||||||
+++ common/dlpi.c
|
+++ common/dlpi.c
|
||||||
@@ -813,7 +813,7 @@ dlpiopen(const char *ifname) {
|
@@ -817,7 +817,7 @@ dlpiopen(const char *ifname) {
|
||||||
}
|
}
|
||||||
*dp = '\0';
|
*dp = '\0';
|
||||||
|
|
||||||
@ -97,6 +105,8 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Index: common/nit.c
|
||||||
|
===================================================================
|
||||||
--- common/nit.c.orig
|
--- common/nit.c.orig
|
||||||
+++ common/nit.c
|
+++ common/nit.c
|
||||||
@@ -75,7 +75,7 @@ int if_register_nit (info)
|
@@ -75,7 +75,7 @@ int if_register_nit (info)
|
||||||
@ -108,9 +118,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
log_fatal ("Can't open NIT device for %s: %m", info -> name);
|
log_fatal ("Can't open NIT device for %s: %m", info -> name);
|
||||||
|
|
||||||
|
Index: common/resolv.c
|
||||||
|
===================================================================
|
||||||
--- common/resolv.c.orig
|
--- common/resolv.c.orig
|
||||||
+++ common/resolv.c
|
+++ common/resolv.c
|
||||||
@@ -44,7 +44,7 @@ void read_resolv_conf (parse_time)
|
@@ -43,7 +43,7 @@ void read_resolv_conf (parse_time)
|
||||||
struct domain_search_list *dp, *dl, *nd;
|
struct domain_search_list *dp, *dl, *nd;
|
||||||
isc_result_t status;
|
isc_result_t status;
|
||||||
|
|
||||||
@ -119,6 +131,8 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
log_error ("Can't open %s: %m", path_resolv_conf);
|
log_error ("Can't open %s: %m", path_resolv_conf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Index: common/upf.c
|
||||||
|
===================================================================
|
||||||
--- common/upf.c.orig
|
--- common/upf.c.orig
|
||||||
+++ common/upf.c
|
+++ common/upf.c
|
||||||
@@ -71,7 +71,7 @@ int if_register_upf (info)
|
@@ -71,7 +71,7 @@ int if_register_upf (info)
|
||||||
@ -130,9 +144,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (sock < 0) {
|
if (sock < 0) {
|
||||||
if (errno == EBUSY) {
|
if (errno == EBUSY) {
|
||||||
continue;
|
continue;
|
||||||
|
Index: omapip/trace.c
|
||||||
|
===================================================================
|
||||||
--- omapip/trace.c.orig
|
--- omapip/trace.c.orig
|
||||||
+++ omapip/trace.c
|
+++ omapip/trace.c
|
||||||
@@ -138,10 +138,10 @@ isc_result_t trace_begin (const char *fi
|
@@ -136,10 +136,10 @@ isc_result_t trace_begin (const char *fi
|
||||||
return DHCP_R_INVALIDARG;
|
return DHCP_R_INVALIDARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,7 +161,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
0600);
|
0600);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -429,7 +429,7 @@ void trace_file_replay (const char *file
|
@@ -427,7 +427,7 @@ void trace_file_replay (const char *file
|
||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
@ -154,10 +170,12 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (!traceinfile) {
|
if (!traceinfile) {
|
||||||
log_error("Can't open tracefile %s: %m", filename);
|
log_error("Can't open tracefile %s: %m", filename);
|
||||||
return;
|
return;
|
||||||
|
Index: relay/dhcrelay.c
|
||||||
|
===================================================================
|
||||||
--- relay/dhcrelay.c.orig
|
--- relay/dhcrelay.c.orig
|
||||||
+++ relay/dhcrelay.c
|
+++ relay/dhcrelay.c
|
||||||
@@ -659,13 +659,14 @@ main(int argc, char **argv) {
|
@@ -783,13 +783,14 @@ main(int argc, char **argv) {
|
||||||
|
/* Create the pid file. */
|
||||||
if (no_pid_file == ISC_FALSE) {
|
if (no_pid_file == ISC_FALSE) {
|
||||||
pfdesc = open(path_dhcrelay_pid,
|
pfdesc = open(path_dhcrelay_pid,
|
||||||
- O_CREAT | O_TRUNC | O_WRONLY, 0644);
|
- O_CREAT | O_TRUNC | O_WRONLY, 0644);
|
||||||
@ -173,6 +191,8 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (!pf)
|
if (!pf)
|
||||||
log_error("Can't fdopen %s: %m",
|
log_error("Can't fdopen %s: %m",
|
||||||
path_dhcrelay_pid);
|
path_dhcrelay_pid);
|
||||||
|
Index: server/confpars.c
|
||||||
|
===================================================================
|
||||||
--- server/confpars.c.orig
|
--- server/confpars.c.orig
|
||||||
+++ server/confpars.c
|
+++ server/confpars.c
|
||||||
@@ -118,7 +118,7 @@ isc_result_t read_conf_file (const char
|
@@ -118,7 +118,7 @@ isc_result_t read_conf_file (const char
|
||||||
@ -184,18 +204,20 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (leasep) {
|
if (leasep) {
|
||||||
log_error ("Can't open lease database %s: %m --",
|
log_error ("Can't open lease database %s: %m --",
|
||||||
path_dhcpd_db);
|
path_dhcpd_db);
|
||||||
|
Index: server/db.c
|
||||||
|
===================================================================
|
||||||
--- server/db.c.orig
|
--- server/db.c.orig
|
||||||
+++ server/db.c
|
+++ server/db.c
|
||||||
@@ -1081,7 +1081,7 @@ void db_startup (testp)
|
@@ -1105,7 +1105,7 @@ void db_startup (int test_mode)
|
||||||
|
* Therefore, in test mode we need to point db_file to a disposable
|
||||||
|
* file to protect the original lease file. */
|
||||||
|
current_db_path = (test_mode ? "/dev/null" : path_dhcpd_db);
|
||||||
|
- db_file = fopen (current_db_path, "a");
|
||||||
|
+ db_file = fopen (current_db_path, "ae");
|
||||||
|
if (!db_file) {
|
||||||
|
log_fatal ("Can't open %s for append.", current_db_path);
|
||||||
}
|
}
|
||||||
#endif
|
@@ -1154,7 +1154,7 @@ int new_lease_file (int test_mode)
|
||||||
if (!testp) {
|
|
||||||
- db_file = fopen (path_dhcpd_db, "a");
|
|
||||||
+ db_file = fopen (path_dhcpd_db, "ae");
|
|
||||||
if (!db_file)
|
|
||||||
log_fatal ("Can't open %s for append.", path_dhcpd_db);
|
|
||||||
expire_all_pools ();
|
|
||||||
@@ -1129,7 +1129,7 @@ int new_lease_file ()
|
|
||||||
path_dhcpd_db) >= sizeof newfname)
|
path_dhcpd_db) >= sizeof newfname)
|
||||||
log_fatal("new_lease_file: lease file path too long");
|
log_fatal("new_lease_file: lease file path too long");
|
||||||
|
|
||||||
@ -204,7 +226,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (db_fd < 0) {
|
if (db_fd < 0) {
|
||||||
log_error ("Can't create new lease file: %m");
|
log_error ("Can't create new lease file: %m");
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1154,7 +1154,7 @@ int new_lease_file ()
|
@@ -1179,7 +1179,7 @@ int new_lease_file (int test_mode)
|
||||||
}
|
}
|
||||||
#endif /* PARANOIA */
|
#endif /* PARANOIA */
|
||||||
|
|
||||||
@ -213,9 +235,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
log_error("Can't fdopen new lease file: %m");
|
log_error("Can't fdopen new lease file: %m");
|
||||||
close(db_fd);
|
close(db_fd);
|
||||||
goto fdfail;
|
goto fdfail;
|
||||||
|
Index: server/dhcpd.c
|
||||||
|
===================================================================
|
||||||
--- server/dhcpd.c.orig
|
--- server/dhcpd.c.orig
|
||||||
+++ server/dhcpd.c
|
+++ server/dhcpd.c
|
||||||
@@ -760,7 +760,7 @@ main(int argc, char **argv) {
|
@@ -880,7 +880,7 @@ main(int argc, char **argv) {
|
||||||
*/
|
*/
|
||||||
if ((lftest == 0) && (no_pid_file == ISC_FALSE)) {
|
if ((lftest == 0) && (no_pid_file == ISC_FALSE)) {
|
||||||
/*Read previous pid file. */
|
/*Read previous pid file. */
|
||||||
@ -224,7 +248,7 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
status = read(i, pbuf, (sizeof pbuf) - 1);
|
status = read(i, pbuf, (sizeof pbuf) - 1);
|
||||||
close(i);
|
close(i);
|
||||||
if (status > 0) {
|
if (status > 0) {
|
||||||
@@ -878,7 +878,7 @@ main(int argc, char **argv) {
|
@@ -990,7 +990,7 @@ main(int argc, char **argv) {
|
||||||
* appropriate.
|
* appropriate.
|
||||||
*/
|
*/
|
||||||
if (no_pid_file == ISC_FALSE) {
|
if (no_pid_file == ISC_FALSE) {
|
||||||
@ -233,9 +257,11 @@ Signed-off-by: Marius Tomaschewski <mt@suse.de>
|
|||||||
if (i >= 0) {
|
if (i >= 0) {
|
||||||
sprintf(pbuf, "%d\n", (int) getpid());
|
sprintf(pbuf, "%d\n", (int) getpid());
|
||||||
IGNORE_RET(write(i, pbuf, strlen(pbuf)));
|
IGNORE_RET(write(i, pbuf, strlen(pbuf)));
|
||||||
|
Index: server/ldap.c
|
||||||
|
===================================================================
|
||||||
--- server/ldap.c.orig
|
--- server/ldap.c.orig
|
||||||
+++ server/ldap.c
|
+++ server/ldap.c
|
||||||
@@ -1446,7 +1446,7 @@ ldap_start (void)
|
@@ -1447,7 +1447,7 @@ ldap_start (void)
|
||||||
|
|
||||||
if (ldap_debug_file != NULL && ldap_debug_fd == -1)
|
if (ldap_debug_file != NULL && ldap_debug_fd == -1)
|
||||||
{
|
{
|
||||||
|
@ -1,255 +0,0 @@
|
|||||||
Author: Jiri Popelka <jpopelka@redhat.com>
|
|
||||||
References: bsc#872609, ISC-Bugs#21237
|
|
||||||
Upstream: yes
|
|
||||||
|
|
||||||
If the bound address failed DAD (is found to be in use on the link),
|
|
||||||
the dhcpv6 client sends a Decline message to the server as described
|
|
||||||
in section 18.1.7 of RFC-3315 (#559147)
|
|
||||||
(Submitted to dhcp-bugs@isc.org - [ISC-Bugs #26735])
|
|
||||||
|
|
||||||
diff --git a/client/dhc6.c b/client/dhc6.c
|
|
||||||
index c8d16e8..21d0203 100644
|
|
||||||
--- a/client/dhc6.c
|
|
||||||
+++ b/client/dhc6.c
|
|
||||||
@@ -115,6 +115,8 @@ void do_select6(void *input);
|
|
||||||
void do_refresh6(void *input);
|
|
||||||
static void do_release6(void *input);
|
|
||||||
static void start_bound(struct client_state *client);
|
|
||||||
+static void start_decline6(struct client_state *client);
|
|
||||||
+static void do_decline6(void *input);
|
|
||||||
static void start_informed(struct client_state *client);
|
|
||||||
void informed_handler(struct packet *packet, struct client_state *client);
|
|
||||||
void bound_handler(struct packet *packet, struct client_state *client);
|
|
||||||
@@ -2314,6 +2316,7 @@ start_release6(struct client_state *client)
|
|
||||||
cancel_timeout(do_select6, client);
|
|
||||||
cancel_timeout(do_refresh6, client);
|
|
||||||
cancel_timeout(do_release6, client);
|
|
||||||
+ cancel_timeout(do_decline6, client);
|
|
||||||
client->state = S_STOPPED;
|
|
||||||
|
|
||||||
/*
|
|
||||||
@@ -2968,6 +2971,7 @@ dhc6_check_reply(struct client_state *client, struct dhc6_lease *new)
|
|
||||||
break;
|
|
||||||
|
|
||||||
case S_STOPPED:
|
|
||||||
+ case S_DECLINED:
|
|
||||||
action = dhc6_stop_action;
|
|
||||||
break;
|
|
||||||
|
|
||||||
@@ -3084,6 +3088,7 @@ dhc6_check_reply(struct client_state *client, struct dhc6_lease *new)
|
|
||||||
break;
|
|
||||||
|
|
||||||
case S_STOPPED:
|
|
||||||
+ case S_DECLINED:
|
|
||||||
/* Nothing critical to do at this stage. */
|
|
||||||
break;
|
|
||||||
|
|
||||||
@@ -4214,17 +4219,23 @@ reply_handler(struct packet *packet, struct client_state *client)
|
|
||||||
cancel_timeout(do_select6, client);
|
|
||||||
cancel_timeout(do_refresh6, client);
|
|
||||||
cancel_timeout(do_release6, client);
|
|
||||||
+ cancel_timeout(do_decline6, client);
|
|
||||||
|
|
||||||
/* If this is in response to a Release/Decline, clean up and return. */
|
|
||||||
- if (client->state == S_STOPPED) {
|
|
||||||
- if (client->active_lease == NULL)
|
|
||||||
- return;
|
|
||||||
+ if ((client->state == S_STOPPED) ||
|
|
||||||
+ (client->state == S_DECLINED)) {
|
|
||||||
+
|
|
||||||
+ if (client->active_lease != NULL) {
|
|
||||||
+ dhc6_lease_destroy(&client->active_lease, MDL);
|
|
||||||
+ client->active_lease = NULL;
|
|
||||||
+ /* We should never wait for nothing!? */
|
|
||||||
+ if (stopping_finished())
|
|
||||||
+ exit(0);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (client->state == S_DECLINED)
|
|
||||||
+ start_init6(client);
|
|
||||||
|
|
||||||
- dhc6_lease_destroy(&client->active_lease, MDL);
|
|
||||||
- client->active_lease = NULL;
|
|
||||||
- /* We should never wait for nothing!? */
|
|
||||||
- if (stopping_finished())
|
|
||||||
- exit(0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -4798,7 +4809,11 @@ start_bound(struct client_state *client)
|
|
||||||
dhc6_marshall_values("new_", client, lease, ia, addr);
|
|
||||||
script_write_requested6(client);
|
|
||||||
|
|
||||||
- script_go(client);
|
|
||||||
+ // when script returns 3, DAD failed
|
|
||||||
+ if (script_go(client) == 3) {
|
|
||||||
+ start_decline6(client);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XXX: maybe we should loop on the old values instead? */
|
|
||||||
@@ -4851,6 +4866,149 @@ start_bound(struct client_state *client)
|
|
||||||
dhc6_check_times(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * Decline addresses.
|
|
||||||
+ */
|
|
||||||
+void
|
|
||||||
+start_decline6(struct client_state *client)
|
|
||||||
+{
|
|
||||||
+ /* Cancel any pending transmissions */
|
|
||||||
+ cancel_timeout(do_confirm6, client);
|
|
||||||
+ cancel_timeout(do_select6, client);
|
|
||||||
+ cancel_timeout(do_refresh6, client);
|
|
||||||
+ cancel_timeout(do_release6, client);
|
|
||||||
+ cancel_timeout(do_decline6, client);
|
|
||||||
+ client->state = S_DECLINED;
|
|
||||||
+
|
|
||||||
+ if (client->active_lease == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ /* Set timers per RFC3315 section 18.1.7. */
|
|
||||||
+ client->IRT = DEC_TIMEOUT * 100;
|
|
||||||
+ client->MRT = 0;
|
|
||||||
+ client->MRC = DEC_MAX_RC;
|
|
||||||
+ client->MRD = 0;
|
|
||||||
+
|
|
||||||
+ dhc6_retrans_init(client);
|
|
||||||
+ client->v6_handler = reply_handler;
|
|
||||||
+
|
|
||||||
+ client->refresh_type = DHCPV6_DECLINE;
|
|
||||||
+ do_decline6(client);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * do_decline6() creates a Decline packet and transmits it.
|
|
||||||
+ */
|
|
||||||
+static void
|
|
||||||
+do_decline6(void *input)
|
|
||||||
+{
|
|
||||||
+ struct client_state *client;
|
|
||||||
+ struct data_string ds;
|
|
||||||
+ int send_ret, added;
|
|
||||||
+ struct timeval elapsed, tv;
|
|
||||||
+
|
|
||||||
+ client = input;
|
|
||||||
+
|
|
||||||
+ if ((client->active_lease == NULL) || !active_prefix(client))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ if ((client->MRC != 0) && (client->txcount > client->MRC)) {
|
|
||||||
+ log_info("Max retransmission count exceeded.");
|
|
||||||
+ goto decline_done;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * Start_time starts at the first transmission.
|
|
||||||
+ */
|
|
||||||
+ if (client->txcount == 0) {
|
|
||||||
+ client->start_time.tv_sec = cur_tv.tv_sec;
|
|
||||||
+ client->start_time.tv_usec = cur_tv.tv_usec;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* elapsed = cur - start */
|
|
||||||
+ elapsed.tv_sec = cur_tv.tv_sec - client->start_time.tv_sec;
|
|
||||||
+ elapsed.tv_usec = cur_tv.tv_usec - client->start_time.tv_usec;
|
|
||||||
+ if (elapsed.tv_usec < 0) {
|
|
||||||
+ elapsed.tv_sec -= 1;
|
|
||||||
+ elapsed.tv_usec += 1000000;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ memset(&ds, 0, sizeof(ds));
|
|
||||||
+ if (!buffer_allocate(&ds.buffer, 4, MDL)) {
|
|
||||||
+ log_error("Unable to allocate memory for Decline.");
|
|
||||||
+ goto decline_done;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ds.data = ds.buffer->data;
|
|
||||||
+ ds.len = 4;
|
|
||||||
+ ds.buffer->data[0] = DHCPV6_DECLINE;
|
|
||||||
+ memcpy(ds.buffer->data + 1, client->dhcpv6_transaction_id, 3);
|
|
||||||
+
|
|
||||||
+ /* Form an elapsed option. */
|
|
||||||
+ /* Maximum value is 65535 1/100s coded as 0xffff. */
|
|
||||||
+ if ((elapsed.tv_sec < 0) || (elapsed.tv_sec > 655) ||
|
|
||||||
+ ((elapsed.tv_sec == 655) && (elapsed.tv_usec > 350000))) {
|
|
||||||
+ client->elapsed = 0xffff;
|
|
||||||
+ } else {
|
|
||||||
+ client->elapsed = elapsed.tv_sec * 100;
|
|
||||||
+ client->elapsed += elapsed.tv_usec / 10000;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ client->elapsed = htons(client->elapsed);
|
|
||||||
+
|
|
||||||
+ log_debug("XMT: Forming Decline.");
|
|
||||||
+ make_client6_options(client, &client->sent_options,
|
|
||||||
+ client->active_lease, DHCPV6_DECLINE);
|
|
||||||
+ dhcpv6_universe.encapsulate(&ds, NULL, NULL, client, NULL,
|
|
||||||
+ client->sent_options, &global_scope,
|
|
||||||
+ &dhcpv6_universe);
|
|
||||||
+
|
|
||||||
+ /* Append IA's (but don't release temporary addresses). */
|
|
||||||
+ if (wanted_ia_na &&
|
|
||||||
+ dhc6_add_ia_na(client, &ds, client->active_lease,
|
|
||||||
+ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) {
|
|
||||||
+ data_string_forget(&ds, MDL);
|
|
||||||
+ goto decline_done;
|
|
||||||
+ }
|
|
||||||
+ if (wanted_ia_pd &&
|
|
||||||
+ dhc6_add_ia_pd(client, &ds, client->active_lease,
|
|
||||||
+ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) {
|
|
||||||
+ data_string_forget(&ds, MDL);
|
|
||||||
+ goto decline_done;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Transmit and wait. */
|
|
||||||
+ log_info("XMT: Decline on %s, interval %ld0ms.",
|
|
||||||
+ client->name ? client->name : client->interface->name,
|
|
||||||
+ (long int)client->RT);
|
|
||||||
+
|
|
||||||
+ send_ret = send_packet6(client->interface, ds.data, ds.len,
|
|
||||||
+ &DHCPv6DestAddr);
|
|
||||||
+ if (send_ret != ds.len) {
|
|
||||||
+ log_error("dhc6: sendpacket6() sent %d of %d bytes",
|
|
||||||
+ send_ret, ds.len);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ data_string_forget(&ds, MDL);
|
|
||||||
+
|
|
||||||
+ /* Wait RT */
|
|
||||||
+ tv.tv_sec = cur_tv.tv_sec + client->RT / 100;
|
|
||||||
+ tv.tv_usec = cur_tv.tv_usec + (client->RT % 100) * 10000;
|
|
||||||
+ if (tv.tv_usec >= 1000000) {
|
|
||||||
+ tv.tv_sec += 1;
|
|
||||||
+ tv.tv_usec -= 1000000;
|
|
||||||
+ }
|
|
||||||
+ add_timeout(&tv, do_decline6, client, NULL, NULL);
|
|
||||||
+ dhc6_retrans_advance(client);
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+decline_done:
|
|
||||||
+ dhc6_lease_destroy(&client->active_lease, MDL);
|
|
||||||
+ client->active_lease = NULL;
|
|
||||||
+ start_init6(client);
|
|
||||||
+ return;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* While bound, ignore packets. In the future we'll want to answer
|
|
||||||
* Reconfigure-Request messages and the like.
|
|
||||||
*/
|
|
||||||
diff --git a/includes/dhcpd.h b/includes/dhcpd.h
|
|
||||||
index b5bec1c..6d500a3 100644
|
|
||||||
--- a/includes/dhcpd.h
|
|
||||||
+++ b/includes/dhcpd.h
|
|
||||||
@@ -1176,7 +1176,8 @@ enum dhcp_state {
|
|
||||||
S_BOUND = 5,
|
|
||||||
S_RENEWING = 6,
|
|
||||||
S_REBINDING = 7,
|
|
||||||
- S_STOPPED = 8
|
|
||||||
+ S_STOPPED = 8,
|
|
||||||
+ S_DECLINED = 9
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Possible pending client operations. */
|
|
@ -49,9 +49,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
References: bnc#870535
|
References: bnc#870535
|
||||||
|
|
||||||
|
|
||||||
|
Index: client/dhclient.c
|
||||||
|
===================================================================
|
||||||
--- client/dhclient.c.orig
|
--- client/dhclient.c.orig
|
||||||
+++ client/dhclient.c
|
+++ client/dhclient.c
|
||||||
@@ -71,6 +71,40 @@ int std_dhcid = 0;
|
@@ -76,6 +76,40 @@ int decline_wait_time = 10; /* Default t
|
||||||
assert (state_is == state_shouldbe). */
|
assert (state_is == state_shouldbe). */
|
||||||
#define ASSERT_STATE(state_is, state_shouldbe) {}
|
#define ASSERT_STATE(state_is, state_shouldbe) {}
|
||||||
|
|
||||||
@ -90,9 +92,9 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
#ifndef UNIT_TEST
|
#ifndef UNIT_TEST
|
||||||
static const char copyright[] = "Copyright 2004-2018 Internet Systems Consortium.";
|
static const char copyright[] = "Copyright 2004-2020 Internet Systems Consortium.";
|
||||||
static const char arr [] = "All rights reserved.";
|
static const char arr [] = "All rights reserved.";
|
||||||
@@ -767,6 +801,26 @@ main(int argc, char **argv) {
|
@@ -885,6 +919,26 @@ main(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +121,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
/* At this point, all the interfaces that the script thinks
|
/* At this point, all the interfaces that the script thinks
|
||||||
are relevant should be running, so now we once again call
|
are relevant should be running, so now we once again call
|
||||||
discover_interfaces(), and this time ask it to actually set
|
discover_interfaces(), and this time ask it to actually set
|
||||||
@@ -781,19 +835,42 @@ main(int argc, char **argv) {
|
@@ -899,19 +953,42 @@ main(int argc, char **argv) {
|
||||||
Not much entropy, but we're booting, so we're not likely to
|
Not much entropy, but we're booting, so we're not likely to
|
||||||
find anything better. */
|
find anything better. */
|
||||||
seed = 0;
|
seed = 0;
|
||||||
@ -164,7 +166,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
*/
|
*/
|
||||||
if ((local_family == AF_INET6) ||
|
if ((local_family == AF_INET6) ||
|
||||||
((local_family == AF_INET) && (duid_v4 == 1))) {
|
((local_family == AF_INET) && (duid_v4 == 1))) {
|
||||||
@@ -804,6 +881,20 @@ main(int argc, char **argv) {
|
@@ -922,6 +999,20 @@ main(int argc, char **argv) {
|
||||||
form_duid(&default_duid, MDL);
|
form_duid(&default_duid, MDL);
|
||||||
write_duid(&default_duid);
|
write_duid(&default_duid);
|
||||||
}
|
}
|
||||||
@ -185,7 +187,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(DHCPv6) && defined(DHCP4o6)
|
#if defined(DHCPv6) && defined(DHCP4o6)
|
||||||
@@ -1293,15 +1384,22 @@ void dhcpack (packet)
|
@@ -1411,15 +1502,22 @@ void dhcpack (packet)
|
||||||
if (client -> xid == packet -> raw -> xid)
|
if (client -> xid == packet -> raw -> xid)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -213,16 +215,20 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (client -> state != S_REBOOTING &&
|
if (client -> state != S_REBOOTING &&
|
||||||
@@ -1314,7 +1412,7 @@ void dhcpack (packet)
|
@@ -1432,9 +1530,10 @@ void dhcpack (packet)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
- log_info ("DHCPACK from %s", piaddr (packet -> client_addr));
|
- log_info ("DHCPACK of %s from %s",
|
||||||
+ log_info ("DHCPACK from %s (xid=0x%x)", piaddr (packet -> client_addr), client -> xid);
|
+ log_info ("DHCPACK of %s from %s (xid=0x%x)",
|
||||||
|
inet_ntoa(packet->raw->yiaddr),
|
||||||
|
- piaddr (packet->client_addr));
|
||||||
|
+ piaddr (packet->client_addr),
|
||||||
|
+ client -> xid);
|
||||||
|
|
||||||
lease = packet_to_lease (packet, client);
|
lease = packet_to_lease (packet, client);
|
||||||
if (!lease) {
|
if (!lease) {
|
||||||
@@ -1969,15 +2067,21 @@ void dhcpoffer (packet)
|
@@ -2101,15 +2200,21 @@ void dhcpoffer (packet)
|
||||||
/* If we're not receptive to an offer right now, or if the offer
|
/* If we're not receptive to an offer right now, or if the offer
|
||||||
has an unrecognizable transaction id, then just drop it. */
|
has an unrecognizable transaction id, then just drop it. */
|
||||||
if (!client ||
|
if (!client ||
|
||||||
@ -248,8 +254,8 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
+ return;
|
+ return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf (obuf, "%s from %s", name, piaddr (packet -> client_addr));
|
sprintf (obuf, "%s of %s from %s", name,
|
||||||
@@ -2215,11 +2319,11 @@ void dhcpnak (packet)
|
@@ -2350,11 +2455,11 @@ void dhcpnak (packet)
|
||||||
|
|
||||||
/* If we're not receptive to an offer right now, or if the offer
|
/* If we're not receptive to an offer right now, or if the offer
|
||||||
has an unrecognizable transaction id, then just drop it. */
|
has an unrecognizable transaction id, then just drop it. */
|
||||||
@ -266,7 +272,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
#if defined (DEBUG)
|
#if defined (DEBUG)
|
||||||
log_debug ("DHCPNAK in wrong transaction.");
|
log_debug ("DHCPNAK in wrong transaction.");
|
||||||
#endif
|
#endif
|
||||||
@@ -2234,9 +2338,15 @@ void dhcpnak (packet)
|
@@ -2369,9 +2474,15 @@ void dhcpnak (packet)
|
||||||
log_debug ("DHCPNAK in wrong state.");
|
log_debug ("DHCPNAK in wrong state.");
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
@ -283,7 +289,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
if (!client -> active) {
|
if (!client -> active) {
|
||||||
#if defined (DEBUG)
|
#if defined (DEBUG)
|
||||||
@@ -2369,11 +2479,11 @@ void send_discover (cpp)
|
@@ -2504,11 +2615,11 @@ void send_discover (cpp)
|
||||||
(long)(client -> interval));
|
(long)(client -> interval));
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
@ -300,46 +306,50 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
/* Send out a packet. */
|
/* Send out a packet. */
|
||||||
#if defined(DHCPv6) && defined(DHCP4o6)
|
#if defined(DHCPv6) && defined(DHCP4o6)
|
||||||
if (dhcpv4_over_dhcpv6) {
|
if (dhcpv4_over_dhcpv6) {
|
||||||
@@ -2664,10 +2774,10 @@ void send_request (cpp)
|
@@ -2901,10 +3012,12 @@ void send_request (cpp)
|
||||||
log_info ("DHCPREQUEST");
|
}
|
||||||
} else
|
|
||||||
#endif
|
strncpy(rip_buf, rip_str, sizeof(rip_buf)-1);
|
||||||
- log_info ("DHCPREQUEST on %s to %s port %d",
|
- log_info ("DHCPREQUEST for %s on %s to %s port %d", rip_buf,
|
||||||
+ log_info ("DHCPREQUEST on %s to %s port %d (xid=0x%x)",
|
+ log_info ("DHCPREQUEST for %s on %s to %s port %d (xid=0x%x)", rip_buf,
|
||||||
client -> name ? client -> name : client -> interface -> name,
|
client->name ? client->name : client->interface->name,
|
||||||
inet_ntoa (destination.sin_addr),
|
inet_ntoa(destination.sin_addr),
|
||||||
- ntohs (destination.sin_port));
|
- ntohs (destination.sin_port));
|
||||||
+ ntohs (destination.sin_port), client -> xid);
|
+ ntohs (destination.sin_port),
|
||||||
|
+ client -> xid
|
||||||
|
+ );
|
||||||
|
|
||||||
#if defined(DHCPv6) && defined(DHCP4o6)
|
#if defined(DHCPv6) && defined(DHCP4o6)
|
||||||
if (dhcpv4_over_dhcpv6) {
|
if (dhcpv4_over_dhcpv6) {
|
||||||
@@ -2724,10 +2834,10 @@ void send_decline (cpp)
|
@@ -2961,11 +3074,11 @@ void send_decline (cpp)
|
||||||
log_info ("DHCPDECLINE");
|
log_info ("DHCPDECLINE");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
- log_info ("DHCPDECLINE on %s to %s port %d",
|
- log_info ("DHCPDECLINE of %s on %s to %s port %d",
|
||||||
+ log_info ("DHCPDECLINE on %s to %s port %d (xid=0x%x)",
|
+ log_info ("DHCPDECLINE of %s on %s to %s port %d (xid=0x%x)",
|
||||||
client->name ? client->name : client->interface->name,
|
piaddr(client->requested_address),
|
||||||
|
(client->name ? client->name : client->interface->name),
|
||||||
inet_ntoa(sockaddr_broadcast.sin_addr),
|
inet_ntoa(sockaddr_broadcast.sin_addr),
|
||||||
- ntohs(sockaddr_broadcast.sin_port));
|
- ntohs(sockaddr_broadcast.sin_port));
|
||||||
+ ntohs(sockaddr_broadcast.sin_port), client -> xid);
|
+ ntohs(sockaddr_broadcast.sin_port), client->xid);
|
||||||
|
|
||||||
/* Send out a packet. */
|
/* Send out a packet. */
|
||||||
#if defined(DHCPv6) && defined(DHCP4o6)
|
#if defined(DHCPv6) && defined(DHCP4o6)
|
||||||
@@ -2786,10 +2896,10 @@ void send_release (cpp)
|
@@ -3024,11 +3137,11 @@ void send_release (cpp)
|
||||||
log_info ("DHCPRELEASE");
|
log_info ("DHCPRELEASE");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
- log_info ("DHCPRELEASE on %s to %s port %d",
|
- log_info ("DHCPRELEASE of %s on %s to %s port %d",
|
||||||
+ log_info ("DHCPRELEASE on %s to %s port %d (xid=0x%x)",
|
+ log_info ("DHCPRELEASE of %s on %s to %s port %d (xid=0x%x)",
|
||||||
client -> name ? client -> name : client -> interface -> name,
|
piaddr(client->active->address),
|
||||||
|
client->name ? client->name : client->interface->name,
|
||||||
inet_ntoa (destination.sin_addr),
|
inet_ntoa (destination.sin_addr),
|
||||||
- ntohs (destination.sin_port));
|
- ntohs (destination.sin_port));
|
||||||
+ ntohs (destination.sin_port), client -> xid);
|
+ ntohs (destination.sin_port), client->xid);
|
||||||
|
|
||||||
#if defined(DHCPv6) && defined(DHCP4o6)
|
#if defined(DHCPv6) && defined(DHCP4o6)
|
||||||
if (dhcpv4_over_dhcpv6) {
|
if (dhcpv4_over_dhcpv6) {
|
||||||
@@ -3066,10 +3176,17 @@ make_client_options(struct client_state
|
@@ -3305,10 +3418,17 @@ make_client_options(struct client_state
|
||||||
* This can be overridden by including a client id in the configuration
|
* This can be overridden by including a client id in the configuration
|
||||||
* file.
|
* file.
|
||||||
*/
|
*/
|
||||||
@ -358,7 +368,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
memset(&client_identifier, 0, sizeof(client_identifier));
|
memset(&client_identifier, 0, sizeof(client_identifier));
|
||||||
client_identifier.len = 1 + 4 + default_duid.len;
|
client_identifier.len = 1 + 4 + default_duid.len;
|
||||||
if (!buffer_allocate(&client_identifier.buffer,
|
if (!buffer_allocate(&client_identifier.buffer,
|
||||||
@@ -3160,12 +3277,13 @@ void make_discover (client, lease)
|
@@ -3399,12 +3519,13 @@ void make_discover (client, lease)
|
||||||
client -> packet.op = BOOTREQUEST;
|
client -> packet.op = BOOTREQUEST;
|
||||||
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
||||||
/* Assumes hw_address is known, otherwise a random value may result */
|
/* Assumes hw_address is known, otherwise a random value may result */
|
||||||
@ -374,7 +384,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
client -> packet.flags = 0;
|
client -> packet.flags = 0;
|
||||||
else
|
else
|
||||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||||
@@ -3177,7 +3295,7 @@ void make_discover (client, lease)
|
@@ -3416,7 +3537,7 @@ void make_discover (client, lease)
|
||||||
memset (&(client -> packet.siaddr),
|
memset (&(client -> packet.siaddr),
|
||||||
0, sizeof client -> packet.siaddr);
|
0, sizeof client -> packet.siaddr);
|
||||||
client -> packet.giaddr = giaddr;
|
client -> packet.giaddr = giaddr;
|
||||||
@ -383,7 +393,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
memcpy (client -> packet.chaddr,
|
memcpy (client -> packet.chaddr,
|
||||||
&client -> interface -> hw_address.hbuf [1],
|
&client -> interface -> hw_address.hbuf [1],
|
||||||
(unsigned)(client -> interface -> hw_address.hlen - 1));
|
(unsigned)(client -> interface -> hw_address.hlen - 1));
|
||||||
@@ -3234,7 +3352,8 @@ void make_request (client, lease)
|
@@ -3473,7 +3594,8 @@ void make_request (client, lease)
|
||||||
client -> packet.op = BOOTREQUEST;
|
client -> packet.op = BOOTREQUEST;
|
||||||
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
||||||
/* Assumes hw_address is known, otherwise a random value may result */
|
/* Assumes hw_address is known, otherwise a random value may result */
|
||||||
@ -393,7 +403,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
client -> packet.hops = 0;
|
client -> packet.hops = 0;
|
||||||
client -> packet.xid = client -> xid;
|
client -> packet.xid = client -> xid;
|
||||||
client -> packet.secs = 0; /* Filled in by send_request. */
|
client -> packet.secs = 0; /* Filled in by send_request. */
|
||||||
@@ -3266,7 +3385,7 @@ void make_request (client, lease)
|
@@ -3505,7 +3627,7 @@ void make_request (client, lease)
|
||||||
else
|
else
|
||||||
memset (&client -> packet.giaddr, 0,
|
memset (&client -> packet.giaddr, 0,
|
||||||
sizeof client -> packet.giaddr);
|
sizeof client -> packet.giaddr);
|
||||||
@ -402,7 +412,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
memcpy (client -> packet.chaddr,
|
memcpy (client -> packet.chaddr,
|
||||||
&client -> interface -> hw_address.hbuf [1],
|
&client -> interface -> hw_address.hbuf [1],
|
||||||
(unsigned)(client -> interface -> hw_address.hlen - 1));
|
(unsigned)(client -> interface -> hw_address.hlen - 1));
|
||||||
@@ -3309,7 +3428,8 @@ void make_decline (client, lease)
|
@@ -3548,7 +3670,8 @@ void make_decline (client, lease)
|
||||||
client -> packet.op = BOOTREQUEST;
|
client -> packet.op = BOOTREQUEST;
|
||||||
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
||||||
/* Assumes hw_address is known, otherwise a random value may result */
|
/* Assumes hw_address is known, otherwise a random value may result */
|
||||||
@ -412,7 +422,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
client -> packet.hops = 0;
|
client -> packet.hops = 0;
|
||||||
client -> packet.xid = client -> xid;
|
client -> packet.xid = client -> xid;
|
||||||
client -> packet.secs = 0; /* Filled in by send_request. */
|
client -> packet.secs = 0; /* Filled in by send_request. */
|
||||||
@@ -3326,9 +3446,10 @@ void make_decline (client, lease)
|
@@ -3565,9 +3688,10 @@ void make_decline (client, lease)
|
||||||
memset (&client -> packet.siaddr, 0,
|
memset (&client -> packet.siaddr, 0,
|
||||||
sizeof client -> packet.siaddr);
|
sizeof client -> packet.siaddr);
|
||||||
client -> packet.giaddr = giaddr;
|
client -> packet.giaddr = giaddr;
|
||||||
@ -426,7 +436,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
#ifdef DEBUG_PACKET
|
#ifdef DEBUG_PACKET
|
||||||
dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
|
dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
|
||||||
@@ -3371,7 +3492,8 @@ void make_release (client, lease)
|
@@ -3610,7 +3734,8 @@ void make_release (client, lease)
|
||||||
client -> packet.op = BOOTREQUEST;
|
client -> packet.op = BOOTREQUEST;
|
||||||
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
client -> packet.htype = client -> interface -> hw_address.hbuf [0];
|
||||||
/* Assumes hw_address is known, otherwise a random value may result */
|
/* Assumes hw_address is known, otherwise a random value may result */
|
||||||
@ -436,7 +446,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
client -> packet.hops = 0;
|
client -> packet.hops = 0;
|
||||||
client -> packet.xid = random ();
|
client -> packet.xid = random ();
|
||||||
client -> packet.secs = 0;
|
client -> packet.secs = 0;
|
||||||
@@ -3383,9 +3505,10 @@ void make_release (client, lease)
|
@@ -3622,9 +3747,10 @@ void make_release (client, lease)
|
||||||
memset (&client -> packet.siaddr, 0,
|
memset (&client -> packet.siaddr, 0,
|
||||||
sizeof client -> packet.siaddr);
|
sizeof client -> packet.siaddr);
|
||||||
client -> packet.giaddr = giaddr;
|
client -> packet.giaddr = giaddr;
|
||||||
@ -450,7 +460,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
#ifdef DEBUG_PACKET
|
#ifdef DEBUG_PACKET
|
||||||
dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
|
dump_raw ((unsigned char *)&client -> packet, client -> packet_length);
|
||||||
@@ -3538,17 +3661,13 @@ write_options(struct client_state *clien
|
@@ -3777,17 +3903,13 @@ write_options(struct client_state *clien
|
||||||
* is not how it is intended. Upcoming rearchitecting the client should
|
* is not how it is intended. Upcoming rearchitecting the client should
|
||||||
* address this "one daemon model."
|
* address this "one daemon model."
|
||||||
*/
|
*/
|
||||||
@ -471,7 +481,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
log_fatal("Impossible condition at %s:%d.", MDL);
|
log_fatal("Impossible condition at %s:%d.", MDL);
|
||||||
|
|
||||||
if ((ip->hw_address.hlen == 0) ||
|
if ((ip->hw_address.hlen == 0) ||
|
||||||
@@ -3598,6 +3717,13 @@ form_duid(struct data_string *duid, cons
|
@@ -3837,6 +3959,13 @@ form_duid(struct data_string *duid, cons
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,7 +495,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
/* Write the default DUID to the lease store. */
|
/* Write the default DUID to the lease store. */
|
||||||
static isc_result_t
|
static isc_result_t
|
||||||
write_duid(struct data_string *duid)
|
write_duid(struct data_string *duid)
|
||||||
@@ -5020,7 +5146,8 @@ client_dns_update(struct client_state *c
|
@@ -5276,7 +5405,8 @@ client_dns_update(struct client_state *c
|
||||||
NULL, client,
|
NULL, client,
|
||||||
client->sent_options, NULL,
|
client->sent_options, NULL,
|
||||||
&global_scope, oc, MDL)) {
|
&global_scope, oc, MDL)) {
|
||||||
@ -495,6 +505,8 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
(client_identifier.data[0] == 255)) {
|
(client_identifier.data[0] == 255)) {
|
||||||
/*
|
/*
|
||||||
* This appears to be an embedded DUID,
|
* This appears to be an embedded DUID,
|
||||||
|
Index: common/bpf.c
|
||||||
|
===================================================================
|
||||||
--- common/bpf.c.orig
|
--- common/bpf.c.orig
|
||||||
+++ common/bpf.c
|
+++ common/bpf.c
|
||||||
@@ -116,7 +116,7 @@ int if_register_bpf (info)
|
@@ -116,7 +116,7 @@ int if_register_bpf (info)
|
||||||
@ -506,9 +518,9 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
@@ -198,11 +198,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
|
@@ -237,11 +237,44 @@ int dhcp_bpf_relay_filter_len =
|
||||||
BPF_STMT(BPF_RET+BPF_K, 0),
|
sizeof dhcp_bpf_relay_filter / sizeof (struct bpf_insn);
|
||||||
};
|
#endif
|
||||||
|
|
||||||
+/* Packet filter program for DHCP over Infiniband.
|
+/* Packet filter program for DHCP over Infiniband.
|
||||||
+ * It is a generic UDP in IP packet filter (initialized to port 67 in [6].k).
|
+ * It is a generic UDP in IP packet filter (initialized to port 67 in [6].k).
|
||||||
@ -551,7 +563,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
#if defined (HAVE_TR_SUPPORT)
|
#if defined (HAVE_TR_SUPPORT)
|
||||||
struct bpf_insn dhcp_bpf_tr_filter [] = {
|
struct bpf_insn dhcp_bpf_tr_filter [] = {
|
||||||
/* accept all token ring packets due to variable length header */
|
/* accept all token ring packets due to variable length header */
|
||||||
@@ -549,7 +582,9 @@ void maybe_setup_fallback ()
|
@@ -600,7 +633,9 @@ void maybe_setup_fallback ()
|
||||||
|
|
||||||
#if defined(USE_BPF_RECEIVE) || defined(USE_BPF_HWADDR)
|
#if defined(USE_BPF_RECEIVE) || defined(USE_BPF_HWADDR)
|
||||||
void
|
void
|
||||||
@ -562,9 +574,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
struct ifaddrs *ifa;
|
struct ifaddrs *ifa;
|
||||||
struct ifaddrs *p;
|
struct ifaddrs *p;
|
||||||
struct sockaddr_dl *sa;
|
struct sockaddr_dl *sa;
|
||||||
|
Index: common/discover.c
|
||||||
|
===================================================================
|
||||||
--- common/discover.c.orig
|
--- common/discover.c.orig
|
||||||
+++ common/discover.c
|
+++ common/discover.c
|
||||||
@@ -881,7 +881,7 @@ discover_interfaces(int state) {
|
@@ -899,7 +899,7 @@ discover_interfaces(int state) {
|
||||||
if_register_send(tmp);
|
if_register_send(tmp);
|
||||||
} else {
|
} else {
|
||||||
/* get_hw_addr() was called by register. */
|
/* get_hw_addr() was called by register. */
|
||||||
@ -573,7 +587,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#ifdef DHCPv6
|
#ifdef DHCPv6
|
||||||
@@ -894,7 +894,7 @@ discover_interfaces(int state) {
|
@@ -912,7 +912,7 @@ discover_interfaces(int state) {
|
||||||
so now we have to call it explicitly
|
so now we have to call it explicitly
|
||||||
to not leave the hardware address unknown
|
to not leave the hardware address unknown
|
||||||
(some code expects it cannot be. */
|
(some code expects it cannot be. */
|
||||||
@ -582,9 +596,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
} else {
|
} else {
|
||||||
if_register_linklocal6(tmp);
|
if_register_linklocal6(tmp);
|
||||||
}
|
}
|
||||||
|
Index: common/dlpi.c
|
||||||
|
===================================================================
|
||||||
--- common/dlpi.c.orig
|
--- common/dlpi.c.orig
|
||||||
+++ common/dlpi.c
|
+++ common/dlpi.c
|
||||||
@@ -1339,7 +1339,9 @@ void maybe_setup_fallback ()
|
@@ -1343,7 +1343,9 @@ void maybe_setup_fallback ()
|
||||||
#endif /* USE_DLPI_SEND */
|
#endif /* USE_DLPI_SEND */
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -595,9 +611,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
int sock, unit;
|
int sock, unit;
|
||||||
long buf[DLPI_MAXDLBUF];
|
long buf[DLPI_MAXDLBUF];
|
||||||
union DL_primitives *dlp;
|
union DL_primitives *dlp;
|
||||||
|
Index: common/lpf.c
|
||||||
|
===================================================================
|
||||||
--- common/lpf.c.orig
|
--- common/lpf.c.orig
|
||||||
+++ common/lpf.c
|
+++ common/lpf.c
|
||||||
@@ -47,12 +47,22 @@
|
@@ -45,12 +45,22 @@
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <net/if.h>
|
#include <net/if.h>
|
||||||
@ -620,7 +638,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
#ifdef USE_LPF_SEND
|
#ifdef USE_LPF_SEND
|
||||||
void if_reinitialize_send (info)
|
void if_reinitialize_send (info)
|
||||||
struct interface_info *info;
|
struct interface_info *info;
|
||||||
@@ -80,10 +90,25 @@ int if_register_lpf (info)
|
@@ -78,10 +88,25 @@ int if_register_lpf (info)
|
||||||
struct sockaddr common;
|
struct sockaddr common;
|
||||||
} sa;
|
} sa;
|
||||||
struct ifreq ifr;
|
struct ifreq ifr;
|
||||||
@ -648,7 +666,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||||
errno == EAFNOSUPPORT || errno == EINVAL) {
|
errno == EAFNOSUPPORT || errno == EINVAL) {
|
||||||
@@ -107,6 +132,7 @@ int if_register_lpf (info)
|
@@ -105,6 +130,7 @@ int if_register_lpf (info)
|
||||||
memset (&sa, 0, sizeof sa);
|
memset (&sa, 0, sizeof sa);
|
||||||
sa.ll.sll_family = AF_PACKET;
|
sa.ll.sll_family = AF_PACKET;
|
||||||
sa.ll.sll_ifindex = ifr.ifr_ifindex;
|
sa.ll.sll_ifindex = ifr.ifr_ifindex;
|
||||||
@ -656,7 +674,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
if (bind (sock, &sa.common, sizeof sa)) {
|
if (bind (sock, &sa.common, sizeof sa)) {
|
||||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||||
@@ -122,8 +148,6 @@ int if_register_lpf (info)
|
@@ -120,8 +146,6 @@ int if_register_lpf (info)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -665,16 +683,16 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
#endif /* USE_LPF_SEND || USE_LPF_RECEIVE */
|
#endif /* USE_LPF_SEND || USE_LPF_RECEIVE */
|
||||||
@@ -178,6 +202,8 @@ void if_deregister_send (info)
|
@@ -176,6 +200,8 @@ void if_deregister_send (info)
|
||||||
in bpf includes... */
|
in bpf includes... */
|
||||||
extern struct sock_filter dhcp_bpf_filter [];
|
extern struct sock_filter dhcp_bpf_filter [];
|
||||||
extern int dhcp_bpf_filter_len;
|
extern int dhcp_bpf_filter_len;
|
||||||
+extern struct sock_filter dhcp_ib_bpf_filter [];
|
+extern struct sock_filter dhcp_ib_bpf_filter [];
|
||||||
+extern int dhcp_ib_bpf_filter_len;
|
+extern int dhcp_ib_bpf_filter_len;
|
||||||
|
|
||||||
#if defined (HAVE_TR_SUPPORT)
|
#if defined(RELAY_PORT)
|
||||||
extern struct sock_filter dhcp_bpf_tr_filter [];
|
extern struct sock_filter dhcp_bpf_relay_filter [];
|
||||||
@@ -185,6 +211,8 @@ extern int dhcp_bpf_tr_filter_len;
|
@@ -188,6 +214,8 @@ extern int dhcp_bpf_tr_filter_len;
|
||||||
static void lpf_tr_filter_setup (struct interface_info *);
|
static void lpf_tr_filter_setup (struct interface_info *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -683,7 +701,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
static void lpf_gen_filter_setup (struct interface_info *);
|
static void lpf_gen_filter_setup (struct interface_info *);
|
||||||
|
|
||||||
void if_register_receive (info)
|
void if_register_receive (info)
|
||||||
@@ -206,12 +234,14 @@ void if_register_receive (info)
|
@@ -209,12 +237,14 @@ void if_register_receive (info)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -699,7 +717,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
lpf_gen_filter_setup (info);
|
lpf_gen_filter_setup (info);
|
||||||
|
|
||||||
if (!quiet_interface_discovery)
|
if (!quiet_interface_discovery)
|
||||||
@@ -276,6 +306,38 @@ static void lpf_gen_filter_setup (info)
|
@@ -291,6 +321,38 @@ static void lpf_gen_filter_setup (info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -738,7 +756,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
#if defined (HAVE_TR_SUPPORT)
|
#if defined (HAVE_TR_SUPPORT)
|
||||||
static void lpf_tr_filter_setup (info)
|
static void lpf_tr_filter_setup (info)
|
||||||
struct interface_info *info;
|
struct interface_info *info;
|
||||||
@@ -315,6 +377,54 @@ static void lpf_tr_filter_setup (info)
|
@@ -330,6 +392,54 @@ static void lpf_tr_filter_setup (info)
|
||||||
#endif /* USE_LPF_RECEIVE */
|
#endif /* USE_LPF_RECEIVE */
|
||||||
|
|
||||||
#ifdef USE_LPF_SEND
|
#ifdef USE_LPF_SEND
|
||||||
@ -793,7 +811,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
||||||
struct interface_info *interface;
|
struct interface_info *interface;
|
||||||
struct packet *packet;
|
struct packet *packet;
|
||||||
@@ -335,6 +445,10 @@ ssize_t send_packet (interface, packet,
|
@@ -350,6 +460,10 @@ ssize_t send_packet (interface, packet,
|
||||||
return send_fallback (interface, packet, raw,
|
return send_fallback (interface, packet, raw,
|
||||||
len, from, to, hto);
|
len, from, to, hto);
|
||||||
|
|
||||||
@ -804,7 +822,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
if (hto == NULL && interface->anycast_mac_addr.hlen)
|
if (hto == NULL && interface->anycast_mac_addr.hlen)
|
||||||
hto = &interface->anycast_mac_addr;
|
hto = &interface->anycast_mac_addr;
|
||||||
|
|
||||||
@@ -439,7 +553,15 @@ ssize_t receive_packet (interface, buf,
|
@@ -454,7 +568,15 @@ ssize_t receive_packet (interface, buf,
|
||||||
|
|
||||||
bufix = 0;
|
bufix = 0;
|
||||||
/* Decode the physical header... */
|
/* Decode the physical header... */
|
||||||
@ -821,7 +839,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
/* If a physical layer checksum failed (dunno of any
|
/* If a physical layer checksum failed (dunno of any
|
||||||
physical layer that supports this, but WTH), skip this
|
physical layer that supports this, but WTH), skip this
|
||||||
@@ -507,33 +629,44 @@ void maybe_setup_fallback ()
|
@@ -522,33 +644,44 @@ void maybe_setup_fallback ()
|
||||||
|
|
||||||
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
||||||
void
|
void
|
||||||
@ -884,7 +902,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
break;
|
break;
|
||||||
case ARPHRD_IEEE802:
|
case ARPHRD_IEEE802:
|
||||||
#ifdef ARPHRD_IEEE802_TR
|
#ifdef ARPHRD_IEEE802_TR
|
||||||
@@ -541,18 +674,37 @@ get_hw_addr(const char *name, struct har
|
@@ -556,18 +689,37 @@ get_hw_addr(const char *name, struct har
|
||||||
#endif /* ARPHRD_IEEE802_TR */
|
#endif /* ARPHRD_IEEE802_TR */
|
||||||
hw->hlen = 7;
|
hw->hlen = 7;
|
||||||
hw->hbuf[0] = HTYPE_IEEE802;
|
hw->hbuf[0] = HTYPE_IEEE802;
|
||||||
@ -926,6 +944,8 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
+ freeifaddrs(ifaddrs);
|
+ freeifaddrs(ifaddrs);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Index: common/print.c
|
||||||
|
===================================================================
|
||||||
--- common/print.c.orig
|
--- common/print.c.orig
|
||||||
+++ common/print.c
|
+++ common/print.c
|
||||||
@@ -173,11 +173,11 @@ char *print_hw_addr (htype, hlen, data)
|
@@ -173,11 +173,11 @@ char *print_hw_addr (htype, hlen, data)
|
||||||
@ -942,9 +962,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
habuf [0] = 0;
|
habuf [0] = 0;
|
||||||
else {
|
else {
|
||||||
s = habuf;
|
s = habuf;
|
||||||
|
Index: common/socket.c
|
||||||
|
===================================================================
|
||||||
--- common/socket.c.orig
|
--- common/socket.c.orig
|
||||||
+++ common/socket.c
|
+++ common/socket.c
|
||||||
@@ -331,7 +331,7 @@ void if_register_send (info)
|
@@ -358,7 +358,7 @@ void if_register_send (info)
|
||||||
info->wfdesc = if_register_socket(info, AF_INET, 0, NULL);
|
info->wfdesc = if_register_socket(info, AF_INET, 0, NULL);
|
||||||
/* If this is a normal IPv4 address, get the hardware address. */
|
/* If this is a normal IPv4 address, get the hardware address. */
|
||||||
if (strcmp(info->name, "fallback") != 0)
|
if (strcmp(info->name, "fallback") != 0)
|
||||||
@ -953,7 +975,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
#if defined (USE_SOCKET_FALLBACK)
|
#if defined (USE_SOCKET_FALLBACK)
|
||||||
/* Fallback only registers for send, but may need to receive as
|
/* Fallback only registers for send, but may need to receive as
|
||||||
well. */
|
well. */
|
||||||
@@ -394,7 +394,7 @@ void if_register_receive (info)
|
@@ -421,7 +421,7 @@ void if_register_receive (info)
|
||||||
#endif /* IP_PKTINFO... */
|
#endif /* IP_PKTINFO... */
|
||||||
/* If this is a normal IPv4 address, get the hardware address. */
|
/* If this is a normal IPv4 address, get the hardware address. */
|
||||||
if (strcmp(info->name, "fallback") != 0)
|
if (strcmp(info->name, "fallback") != 0)
|
||||||
@ -962,7 +984,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
if (!quiet_interface_discovery)
|
if (!quiet_interface_discovery)
|
||||||
log_info ("Listening on Socket/%s%s%s",
|
log_info ("Listening on Socket/%s%s%s",
|
||||||
@@ -508,7 +508,7 @@ if_register6(struct interface_info *info
|
@@ -577,7 +577,7 @@ if_register6(struct interface_info *info
|
||||||
if (req_multi)
|
if (req_multi)
|
||||||
if_register_multicast(info);
|
if_register_multicast(info);
|
||||||
|
|
||||||
@ -971,7 +993,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
if (!quiet_interface_discovery) {
|
if (!quiet_interface_discovery) {
|
||||||
if (info->shared_network != NULL) {
|
if (info->shared_network != NULL) {
|
||||||
@@ -564,7 +564,7 @@ if_register_linklocal6(struct interface_
|
@@ -633,7 +633,7 @@ if_register_linklocal6(struct interface_
|
||||||
info->rfdesc = sock;
|
info->rfdesc = sock;
|
||||||
info->wfdesc = sock;
|
info->wfdesc = sock;
|
||||||
|
|
||||||
@ -980,7 +1002,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
if (!quiet_interface_discovery) {
|
if (!quiet_interface_discovery) {
|
||||||
if (info->shared_network != NULL) {
|
if (info->shared_network != NULL) {
|
||||||
@@ -1148,7 +1148,9 @@ void maybe_setup_fallback ()
|
@@ -1246,7 +1246,9 @@ void maybe_setup_fallback ()
|
||||||
#if defined(sun) && defined(USE_V4_PKTINFO)
|
#if defined(sun) && defined(USE_V4_PKTINFO)
|
||||||
/* This code assumes the existence of SIOCGLIFHWADDR */
|
/* This code assumes the existence of SIOCGLIFHWADDR */
|
||||||
void
|
void
|
||||||
@ -991,9 +1013,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
struct sockaddr_dl *dladdrp;
|
struct sockaddr_dl *dladdrp;
|
||||||
int sock, i;
|
int sock, i;
|
||||||
struct lifreq lifr;
|
struct lifreq lifr;
|
||||||
|
Index: includes/dhcpd.h
|
||||||
|
===================================================================
|
||||||
--- includes/dhcpd.h.orig
|
--- includes/dhcpd.h.orig
|
||||||
+++ includes/dhcpd.h
|
+++ includes/dhcpd.h
|
||||||
@@ -1345,6 +1345,7 @@ struct interface_info {
|
@@ -1372,6 +1372,7 @@ struct interface_info {
|
||||||
struct shared_network *shared_network;
|
struct shared_network *shared_network;
|
||||||
/* Networks connected to this interface. */
|
/* Networks connected to this interface. */
|
||||||
struct hardware hw_address; /* Its physical address. */
|
struct hardware hw_address; /* Its physical address. */
|
||||||
@ -1001,7 +1025,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
struct in_addr *addresses; /* Addresses associated with this
|
struct in_addr *addresses; /* Addresses associated with this
|
||||||
* interface.
|
* interface.
|
||||||
*/
|
*/
|
||||||
@@ -2584,7 +2585,7 @@ void print_dns_status (int, struct dhcp_
|
@@ -2641,7 +2642,7 @@ void print_dns_status (int, struct dhcp_
|
||||||
#endif
|
#endif
|
||||||
const char *print_time(TIME);
|
const char *print_time(TIME);
|
||||||
|
|
||||||
@ -1010,9 +1034,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
char *buf_to_hex (const unsigned char *s, unsigned len,
|
char *buf_to_hex (const unsigned char *s, unsigned len,
|
||||||
const char *file, int line);
|
const char *file, int line);
|
||||||
char *format_lease_id(const unsigned char *s, unsigned len, int format,
|
char *format_lease_id(const unsigned char *s, unsigned len, int format,
|
||||||
|
Index: server/dhcp.c
|
||||||
|
===================================================================
|
||||||
--- server/dhcp.c.orig
|
--- server/dhcp.c.orig
|
||||||
+++ server/dhcp.c
|
+++ server/dhcp.c
|
||||||
@@ -1991,11 +1991,12 @@ void echo_client_id(packet, lease, in_op
|
@@ -2035,11 +2035,12 @@ void echo_client_id(packet, lease, in_op
|
||||||
|
|
||||||
/* Check if echo-client-id is enabled */
|
/* Check if echo-client-id is enabled */
|
||||||
oc = lookup_option(&server_universe, in_options, SV_ECHO_CLIENT_ID);
|
oc = lookup_option(&server_universe, in_options, SV_ECHO_CLIENT_ID);
|
||||||
@ -1027,7 +1053,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
struct data_string client_id;
|
struct data_string client_id;
|
||||||
unsigned int opcode = DHO_DHCP_CLIENT_IDENTIFIER;
|
unsigned int opcode = DHO_DHCP_CLIENT_IDENTIFIER;
|
||||||
|
|
||||||
@@ -3801,9 +3802,11 @@ void dhcp_reply (lease)
|
@@ -3948,9 +3949,11 @@ void dhcp_reply (lease)
|
||||||
} else
|
} else
|
||||||
bufs |= 2; /* XXX */
|
bufs |= 2; /* XXX */
|
||||||
|
|
||||||
@ -1042,9 +1068,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
raw.htype = lease -> hardware_addr.hbuf [0];
|
raw.htype = lease -> hardware_addr.hbuf [0];
|
||||||
|
|
||||||
/* See if this is a Microsoft client that NUL-terminates its
|
/* See if this is a Microsoft client that NUL-terminates its
|
||||||
|
Index: server/dhcpleasequery.c
|
||||||
|
===================================================================
|
||||||
--- server/dhcpleasequery.c.orig
|
--- server/dhcpleasequery.c.orig
|
||||||
+++ server/dhcpleasequery.c
|
+++ server/dhcpleasequery.c
|
||||||
@@ -299,7 +299,7 @@ dhcpleasequery(struct packet *packet, in
|
@@ -302,7 +302,7 @@ dhcpleasequery(struct packet *packet, in
|
||||||
assoc_ips,
|
assoc_ips,
|
||||||
nassoc_ips);
|
nassoc_ips);
|
||||||
|
|
||||||
@ -1053,7 +1081,7 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
if (packet->raw->hlen+1 > sizeof(h.hbuf)) {
|
if (packet->raw->hlen+1 > sizeof(h.hbuf)) {
|
||||||
log_info("%s: hardware length too long, "
|
log_info("%s: hardware length too long, "
|
||||||
@@ -409,11 +409,13 @@ dhcpleasequery(struct packet *packet, in
|
@@ -412,11 +412,13 @@ dhcpleasequery(struct packet *packet, in
|
||||||
* Set the hardware address fields.
|
* Set the hardware address fields.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -1071,9 +1099,11 @@ Date: Tue Mar 25 23:15:58 2014 +0200
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Set client identifier option.
|
* Set client identifier option.
|
||||||
|
Index: server/mdb.c
|
||||||
|
===================================================================
|
||||||
--- server/mdb.c.orig
|
--- server/mdb.c.orig
|
||||||
+++ server/mdb.c
|
+++ server/mdb.c
|
||||||
@@ -618,6 +618,9 @@ int find_hosts_by_haddr (struct host_dec
|
@@ -640,6 +640,9 @@ int find_hosts_by_haddr (struct host_dec
|
||||||
return ret;
|
return ret;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@ Date: Mon, 14 Sep 2015 18:53:34 +0200
|
|||||||
Subject: [PATCH] client: fail on script pre-init error (bsc#912098)
|
Subject: [PATCH] client: fail on script pre-init error (bsc#912098)
|
||||||
References: bsc#912098
|
References: bsc#912098
|
||||||
|
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
Index: dhcp-4.4.2/client/dhclient.c
|
||||||
index b438629..82d6ed5 100644
|
===================================================================
|
||||||
--- a/client/dhclient.c
|
--- dhcp-4.4.2.orig/client/dhclient.c
|
||||||
+++ b/client/dhclient.c
|
+++ dhcp-4.4.2/client/dhclient.c
|
||||||
@@ -632,7 +632,8 @@ main(int argc, char **argv) {
|
@@ -882,7 +882,8 @@ main(int argc, char **argv) {
|
||||||
* in case somebody cares.
|
* in case somebody cares.
|
||||||
*/
|
*/
|
||||||
script_init(NULL, "NBI", NULL);
|
script_init(NULL, "NBI", NULL);
|
||||||
@ -18,8 +18,8 @@ index b438629..82d6ed5 100644
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If we haven't been asked to persist, waiting for new
|
* If we haven't been asked to persist, waiting for new
|
||||||
@@ -644,6 +645,8 @@ main(int argc, char **argv) {
|
@@ -894,6 +895,8 @@ main(int argc, char **argv) {
|
||||||
exit(0);
|
finish(0);
|
||||||
}
|
}
|
||||||
} else if (!release_mode && !exit_mode) {
|
} else if (!release_mode && !exit_mode) {
|
||||||
+ unsigned int failed = 0;
|
+ unsigned int failed = 0;
|
||||||
@ -27,7 +27,7 @@ index b438629..82d6ed5 100644
|
|||||||
/* Call the script with the list of interfaces. */
|
/* Call the script with the list of interfaces. */
|
||||||
for (ip = interfaces; ip; ip = ip->next) {
|
for (ip = interfaces; ip; ip = ip->next) {
|
||||||
/*
|
/*
|
||||||
@@ -665,7 +668,16 @@ main(int argc, char **argv) {
|
@@ -915,7 +918,16 @@ main(int argc, char **argv) {
|
||||||
"alias_",
|
"alias_",
|
||||||
ip->client->alias);
|
ip->client->alias);
|
||||||
}
|
}
|
||||||
@ -45,6 +45,3 @@ index b438629..82d6ed5 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.1.4
|
|
||||||
|
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
|
Index: client/dhclient.c
|
||||||
|
===================================================================
|
||||||
--- client/dhclient.c.orig
|
--- client/dhclient.c.orig
|
||||||
+++ client/dhclient.c
|
+++ client/dhclient.c
|
||||||
@@ -252,6 +252,17 @@ main(int argc, char **argv) {
|
@@ -284,6 +284,18 @@ main(int argc, char **argv) {
|
||||||
|
#else
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
#endif
|
#endif
|
||||||
|
+
|
||||||
+#ifdef DHCPv6
|
+#ifdef DHCPv6
|
||||||
+ /* Support being called using `dhclient4` or `dhclient6` symlinks */
|
+ /* Support being called using `dhclient4` or `dhclient6` symlinks */
|
||||||
+ if (argv[0][strlen(argv[0]) - 1] == '4') {
|
+ if (argv[0][strlen(argv[0]) - 1] == '4') {
|
||||||
@ -18,9 +21,11 @@
|
|||||||
/* Initialize client globals. */
|
/* Initialize client globals. */
|
||||||
memset(&default_duid, 0, sizeof(default_duid));
|
memset(&default_duid, 0, sizeof(default_duid));
|
||||||
|
|
||||||
|
Index: relay/dhcrelay.c
|
||||||
|
===================================================================
|
||||||
--- relay/dhcrelay.c.orig
|
--- relay/dhcrelay.c.orig
|
||||||
+++ relay/dhcrelay.c
|
+++ relay/dhcrelay.c
|
||||||
@@ -237,6 +237,17 @@ main(int argc, char **argv) {
|
@@ -300,6 +300,17 @@ main(int argc, char **argv) {
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -38,9 +43,11 @@
|
|||||||
/* Make sure that file descriptors 0(stdin), 1,(stdout), and
|
/* Make sure that file descriptors 0(stdin), 1,(stdout), and
|
||||||
2(stderr) are open. To do this, we assume that when we
|
2(stderr) are open. To do this, we assume that when we
|
||||||
open a file the lowest available file descriptor is used. */
|
open a file the lowest available file descriptor is used. */
|
||||||
|
Index: server/dhcpd.c
|
||||||
|
===================================================================
|
||||||
--- server/dhcpd.c.orig
|
--- server/dhcpd.c.orig
|
||||||
+++ server/dhcpd.c
|
+++ server/dhcpd.c
|
||||||
@@ -260,6 +260,17 @@ main(int argc, char **argv) {
|
@@ -301,6 +301,17 @@ main(int argc, char **argv) {
|
||||||
progname = argv[0];
|
progname = argv[0];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:2fd177bef02856f05fe17713ced9bfcc7d94f14c933c15f2f2fbedc9cc57a3c3
|
|
||||||
size 10189202
|
|
@ -1,17 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
Comment: GPGTools - http://gpgtools.org
|
|
||||||
|
|
||||||
iQIzBAABAgAdFiEEvg6XSLcYJToou4n/8bEb8FzwLlcFAlqN9aIACgkQ8bEb8Fzw
|
|
||||||
LlfmNQ/+OKtQwHU+ymYE0v/r+Ux1/at5Cob5TSiBx/l7Um26nxvBLVgFO6cfoL6X
|
|
||||||
ZVsA56YFHtsMwDBktWirFxAhou6S66W455O6FJJ75NRhZoi/lpvxf2LJLCHp+R21
|
|
||||||
XvCMLZ2ZKziIsDRZBbYUifcDT7r65Vvo88ZV4JEJMPC8PLqxvq/OpET2ZRzH17Fl
|
|
||||||
xkD4T+mySPGGJI1rodMtpFaFunjWhgXOZC59rscfJmiDkuQR+hH6KF3fnUmaL3wo
|
|
||||||
qhlzVD/EX4FP9FLZOsNXlLLq3oAzbwFZ+nq33ubabC000vuktvfpoG2HChWYmuZi
|
|
||||||
wxNtuVa2Su8PSeho0FIoJHMhw+QulBUYi/KyJowEGTKqKIEA6cMdnDKQ7emoTEAH
|
|
||||||
iUV+qYg+eceaTokDHHsbX/VXlP4fjIsGPWWga3CxFz9li/ld7CcxchIOsWg89/pu
|
|
||||||
Zd9kAwtrF4li5EVhy9rfuprpWfUgAL4hEw8CA6xFpFs6dafe6YiESiM5qzN4VxzN
|
|
||||||
NC+QzcUzr5r1KBMwyIzoVj1K9ZWEwEur54nCl6sB4crihTW/Acc0co+4DTUOrz9/
|
|
||||||
tg4/i3cVyuh8cqjPURgg3+NMvjQCBI5w7kWM+45NOnzieVJYYMZEB/vo8c2xs8mS
|
|
||||||
hynQR9Oab2DJZcaSpcAJ0jae7BWM3qQpOdB81D6n2dsRr6tymCQ=
|
|
||||||
=1kxC
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
dhcp-4.4.2.tar.gz
Normal file
3
dhcp-4.4.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1a7ccd64a16e5e68f7b5e0f527fd07240a2892ea53fe245620f4f5f607004521
|
||||||
|
size 9906235
|
16
dhcp-4.4.2.tar.gz.asc
Normal file
16
dhcp-4.4.2.tar.gz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABAgAdFiEErj+seWcR7Fn8AHqkdLtrmky7PTgFAl4oFp4ACgkQdLtrmky7
|
||||||
|
PThiqA//TfSFypzVHjkfv+bI6dKbuRHWO9xNci8VXddQQTGFdu1afso+9KHFwkKD
|
||||||
|
ET6id7BNGzi62KJrw5tYB/C3m66IO/2nOixOXi+Ay/xbbHBA+zoknIQlK9NadDBd
|
||||||
|
yJNNWwQlQhpZvio4cugvg6ybkIC4ApzsTrvzIGpM0+WEnB4T1/k+C+SAq0DC5Bud
|
||||||
|
cJgGDmuJFoEPe+k/k6giDdDV5Ijgb5jRjvCay81sDvA9o87ku/EfavHFJwYNsjyN
|
||||||
|
lEq1M3teNj7j+d44v5j0Ko/ANWmB9xDV0tjK3qA/ZE4Onctur1Q/XrYJd14J/QHT
|
||||||
|
ACEngzClVcJ6A24m2RApFTugJwpGs60C5fuiDbf/xnpxMxOIOkUEyHe3iujI0O4h
|
||||||
|
vWIYFb2VsBATg/rlBHOl9otYomkku27iVgVW0KOw9eshdAy9YOjJ6ycg0gMvXwKB
|
||||||
|
BnzVxFC1iEOF7zivWAflEEs6tD2haqhPEHT6EqyHngSUOtynd89qYMQxn5YRO11N
|
||||||
|
WEo6OMiCkRSvO0SBOzGJP1WwBEkvAd6UiUhrTwPbgec7shsb6EwamGiXdy0oQu7S
|
||||||
|
wH/Ka0uKfvfdhtjEBm4z74rWpnMl8sm4AY7m6qIp4a9UGLqSH6Wq88W3Skwl4xuo
|
||||||
|
2s/ruHJnbnZ80ZfW0z+zSCeyvErDAGs8oKe8+VQwTokxJG2eXRY=
|
||||||
|
=0p7W
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -1,191 +0,0 @@
|
|||||||
commit 21ae396088a3fbe046e3122286d1288eeacce7d3
|
|
||||||
Author: Thomas Markwalder <tmark@isc.org>
|
|
||||||
Date: Fri Dec 1 09:21:42 2017 -0500
|
|
||||||
|
|
||||||
[v4_3] Use 0 instead of -1 to indicate empty heap index
|
|
||||||
|
|
||||||
Merges in rt46719.
|
|
||||||
|
|
||||||
--- includes/dhcpd.h.orig
|
|
||||||
+++ includes/dhcpd.h
|
|
||||||
@@ -1596,8 +1596,9 @@ struct iasubopt {
|
|
||||||
*/
|
|
||||||
#define EXPIRED_IPV6_CLEANUP_TIME (60*60)
|
|
||||||
|
|
||||||
- int heap_index; /* index into heap, or -1
|
|
||||||
- (internal use only) */
|
|
||||||
+ /* index into heaps, or -1 (internal use only) */
|
|
||||||
+ int active_index;
|
|
||||||
+ int inactive_index;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A pointer to the state of the ddns update for this lease.
|
|
||||||
--- server/mdb6.c.orig
|
|
||||||
+++ server/mdb6.c
|
|
||||||
@@ -216,7 +216,8 @@ iasubopt_allocate(struct iasubopt **iasu
|
|
||||||
|
|
||||||
tmp->refcnt = 1;
|
|
||||||
tmp->state = FTS_FREE;
|
|
||||||
- tmp->heap_index = -1;
|
|
||||||
+ tmp->active_index = 0;
|
|
||||||
+ tmp->inactive_index = 0;
|
|
||||||
tmp->plen = 255;
|
|
||||||
|
|
||||||
*iasubopt = tmp;
|
|
||||||
@@ -600,14 +601,18 @@ lease_older(void *a, void *b) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
- * Helper function for lease address/prefix heaps.
|
|
||||||
+ * Helper functions for lease address/prefix heaps.
|
|
||||||
* Callback when an address's position in the heap changes.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
-lease_index_changed(void *iasubopt, unsigned int new_heap_index) {
|
|
||||||
- ((struct iasubopt *)iasubopt)-> heap_index = new_heap_index;
|
|
||||||
+active_changed(void *iasubopt, unsigned int new_heap_index) {
|
|
||||||
+ ((struct iasubopt *)iasubopt)->active_index = new_heap_index;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void
|
|
||||||
+inactive_changed(void *iasubopt, unsigned int new_heap_index) {
|
|
||||||
+ ((struct iasubopt *)iasubopt)->inactive_index = new_heap_index;
|
|
||||||
+}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
*
|
|
||||||
@@ -660,13 +665,13 @@ ipv6_pool_allocate(struct ipv6_pool **po
|
|
||||||
dfree(tmp, file, line);
|
|
||||||
return ISC_R_NOMEMORY;
|
|
||||||
}
|
|
||||||
- if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, lease_index_changed,
|
|
||||||
+ if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, active_changed,
|
|
||||||
0, &(tmp->active_timeouts)) != ISC_R_SUCCESS) {
|
|
||||||
iasubopt_free_hash_table(&(tmp->leases), file, line);
|
|
||||||
dfree(tmp, file, line);
|
|
||||||
return ISC_R_NOMEMORY;
|
|
||||||
}
|
|
||||||
- if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, lease_index_changed,
|
|
||||||
+ if (isc_heap_create(dhcp_gbl_ctx.mctx, lease_older, inactive_changed,
|
|
||||||
0, &(tmp->inactive_timeouts)) != ISC_R_SUCCESS) {
|
|
||||||
isc_heap_destroy(&(tmp->active_timeouts));
|
|
||||||
iasubopt_free_hash_table(&(tmp->leases), file, line);
|
|
||||||
@@ -1186,7 +1191,7 @@ cleanup_lease6(ia_hash_t *ia_table,
|
|
||||||
* Remove the old lease from the active heap and from the hash table
|
|
||||||
* then remove the lease from the IA and clean up the IA if necessary.
|
|
||||||
*/
|
|
||||||
- isc_heap_delete(pool->active_timeouts, test_iasubopt->heap_index);
|
|
||||||
+ isc_heap_delete(pool->active_timeouts, test_iasubopt->active_index);
|
|
||||||
pool->num_active--;
|
|
||||||
if (pool->ipv6_pond)
|
|
||||||
pool->ipv6_pond->num_active--;
|
|
||||||
@@ -1259,7 +1264,7 @@ add_lease6(struct ipv6_pool *pool, struc
|
|
||||||
if ((test_iasubopt->state == FTS_ACTIVE) ||
|
|
||||||
(test_iasubopt->state == FTS_ABANDONED)) {
|
|
||||||
isc_heap_delete(pool->active_timeouts,
|
|
||||||
- test_iasubopt->heap_index);
|
|
||||||
+ test_iasubopt->active_index);
|
|
||||||
pool->num_active--;
|
|
||||||
if (pool->ipv6_pond)
|
|
||||||
pool->ipv6_pond->num_active--;
|
|
||||||
@@ -1271,7 +1276,7 @@ add_lease6(struct ipv6_pool *pool, struc
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
isc_heap_delete(pool->inactive_timeouts,
|
|
||||||
- test_iasubopt->heap_index);
|
|
||||||
+ test_iasubopt->inactive_index);
|
|
||||||
pool->num_inactive--;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1392,14 +1397,13 @@ lease6_usable(struct iasubopt *lease) {
|
|
||||||
static isc_result_t
|
|
||||||
move_lease_to_active(struct ipv6_pool *pool, struct iasubopt *lease) {
|
|
||||||
isc_result_t insert_result;
|
|
||||||
- int old_heap_index;
|
|
||||||
|
|
||||||
- old_heap_index = lease->heap_index;
|
|
||||||
insert_result = isc_heap_insert(pool->active_timeouts, lease);
|
|
||||||
if (insert_result == ISC_R_SUCCESS) {
|
|
||||||
iasubopt_hash_add(pool->leases, &lease->addr,
|
|
||||||
sizeof(lease->addr), lease, MDL);
|
|
||||||
- isc_heap_delete(pool->inactive_timeouts, old_heap_index);
|
|
||||||
+ isc_heap_delete(pool->inactive_timeouts,
|
|
||||||
+ lease->inactive_index);
|
|
||||||
pool->num_active++;
|
|
||||||
pool->num_inactive--;
|
|
||||||
lease->state = FTS_ACTIVE;
|
|
||||||
@@ -1449,16 +1453,16 @@ renew_lease6(struct ipv6_pool *pool, str
|
|
||||||
if (lease->state == FTS_ACTIVE) {
|
|
||||||
if (old_end_time <= lease->hard_lifetime_end_time) {
|
|
||||||
isc_heap_decreased(pool->active_timeouts,
|
|
||||||
- lease->heap_index);
|
|
||||||
+ lease->active_index);
|
|
||||||
} else {
|
|
||||||
isc_heap_increased(pool->active_timeouts,
|
|
||||||
- lease->heap_index);
|
|
||||||
+ lease->active_index);
|
|
||||||
}
|
|
||||||
return ISC_R_SUCCESS;
|
|
||||||
} else if (lease->state == FTS_ABANDONED) {
|
|
||||||
char tmp_addr[INET6_ADDRSTRLEN];
|
|
||||||
lease->state = FTS_ACTIVE;
|
|
||||||
- isc_heap_increased(pool->active_timeouts, lease->heap_index);
|
|
||||||
+ isc_heap_increased(pool->active_timeouts, lease->active_index);
|
|
||||||
log_info("Reclaiming previously abandoned address %s",
|
|
||||||
inet_ntop(AF_INET6, &(lease->addr), tmp_addr,
|
|
||||||
sizeof(tmp_addr)));
|
|
||||||
@@ -1480,9 +1484,7 @@ static isc_result_t
|
|
||||||
move_lease_to_inactive(struct ipv6_pool *pool, struct iasubopt *lease,
|
|
||||||
binding_state_t state) {
|
|
||||||
isc_result_t insert_result;
|
|
||||||
- int old_heap_index;
|
|
||||||
|
|
||||||
- old_heap_index = lease->heap_index;
|
|
||||||
insert_result = isc_heap_insert(pool->inactive_timeouts, lease);
|
|
||||||
if (insert_result == ISC_R_SUCCESS) {
|
|
||||||
/*
|
|
||||||
@@ -1533,7 +1535,7 @@ move_lease_to_inactive(struct ipv6_pool
|
|
||||||
|
|
||||||
iasubopt_hash_delete(pool->leases,
|
|
||||||
&lease->addr, sizeof(lease->addr), MDL);
|
|
||||||
- isc_heap_delete(pool->active_timeouts, old_heap_index);
|
|
||||||
+ isc_heap_delete(pool->active_timeouts, lease->active_index);
|
|
||||||
lease->state = state;
|
|
||||||
pool->num_active--;
|
|
||||||
pool->num_inactive++;
|
|
||||||
@@ -1611,7 +1613,7 @@ decline_lease6(struct ipv6_pool *pool, s
|
|
||||||
pool->ipv6_pond->num_abandoned++;
|
|
||||||
|
|
||||||
lease->hard_lifetime_end_time = MAX_TIME;
|
|
||||||
- isc_heap_decreased(pool->active_timeouts, lease->heap_index);
|
|
||||||
+ isc_heap_decreased(pool->active_timeouts, lease->active_index);
|
|
||||||
return ISC_R_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1884,7 +1886,7 @@ cleanup_old_expired(struct ipv6_pool *po
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
- isc_heap_delete(pool->inactive_timeouts, tmp->heap_index);
|
|
||||||
+ isc_heap_delete(pool->inactive_timeouts, tmp->inactive_index);
|
|
||||||
pool->num_inactive--;
|
|
||||||
|
|
||||||
if (tmp->ia != NULL) {
|
|
||||||
--- server/tests/mdb6_unittest.c.orig
|
|
||||||
+++ server/tests/mdb6_unittest.c
|
|
||||||
@@ -65,8 +65,13 @@ ATF_TC_BODY(iaaddr_basic, tc)
|
|
||||||
if (iaaddr->state != FTS_FREE) {
|
|
||||||
atf_tc_fail("ERROR: bad state %s:%d", MDL);
|
|
||||||
}
|
|
||||||
- if (iaaddr->heap_index != -1) {
|
|
||||||
- atf_tc_fail("ERROR: bad heap_index %s:%d", MDL);
|
|
||||||
+ if (iaaddr->active_index != 0) {
|
|
||||||
+ atf_tc_fail("ERROR: bad active_index :%d %s:%d",
|
|
||||||
+ iaaddr->active_index, MDL);
|
|
||||||
+ }
|
|
||||||
+ if (iaaddr->inactive_index != 0) {
|
|
||||||
+ atf_tc_fail("ERROR: bad inactive_index %d %s:%d",
|
|
||||||
+ iaaddr->inactive_index, MDL);
|
|
||||||
}
|
|
||||||
if (iasubopt_reference(&iaaddr_copy, iaaddr, MDL) != ISC_R_SUCCESS) {
|
|
||||||
atf_tc_fail("ERROR: iasubopt_reference() %s:%d", MDL);
|
|
204
dhcp.changes
204
dhcp.changes
@ -1,3 +1,207 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Jan 24 13:20:58 UTC 2021 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- update to 4.4.2:
|
||||||
|
* Please note that that ISC DHCP is now licensed under the Mozilla Public
|
||||||
|
License, MPL 2.0.
|
||||||
|
|
||||||
|
In general, the areas of focus for ISC DHCP 4.4 were:
|
||||||
|
|
||||||
|
1. Dynamic DNS additions
|
||||||
|
2. dhclient improvements
|
||||||
|
3. Support for dynamic shared libraries
|
||||||
|
|
||||||
|
* Added the interface name to socket initialization failure log messages.
|
||||||
|
Prior to this the log messages stated only the error reason without
|
||||||
|
stating the target interface.
|
||||||
|
* Corrected buffer pointer logic in dhcrelay functions that manipulate
|
||||||
|
agent relay options. Thanks to Thomas Imbert of MSRC Vulnerabilities
|
||||||
|
& Mitigations for reporting the issue.
|
||||||
|
* Corrected unresolved symbol errors building relay_unittests when
|
||||||
|
configured to build using libtool.
|
||||||
|
* A new configuration parameter, ping-cltt-secs (v4 operation only), has
|
||||||
|
been added to allow the user to specify the number of seconds that must
|
||||||
|
elapse since CLTT before a ping check is conducted. Prior to this, the
|
||||||
|
value was hard coded at 60 seconds. Please see the server man pages for
|
||||||
|
a more detailed discussion.
|
||||||
|
* A new configuration parameter, ping-timeout-ms (v4 operation only),
|
||||||
|
has been added that allows the user to specify the amount of time
|
||||||
|
the server waits for a ping-check response in milliseconds rather
|
||||||
|
than in seconds (via ping-timeout). When greater than zero, the value
|
||||||
|
of ping-timeout-ms will override the value of ping-timeout. Thanks
|
||||||
|
to Jay Doran from Bluecat Networks for suggesting this feature.
|
||||||
|
* An experimental tool called, Keama (KEA Migration Assistant), which helps
|
||||||
|
translate ISC DHCP configurations to Kea configurations, is now included
|
||||||
|
in the distribution.
|
||||||
|
* Corrected a misuse of the BIND9 DDNS API which caused DDNS updates to be
|
||||||
|
carried out over TCP rather than UDP. The coding error was exposed by
|
||||||
|
migration to BIND9 9.11. Thanks to Jinmei Tatuya at Infoblox for
|
||||||
|
reporting the issue.
|
||||||
|
* Bind9 now defaults to requiring python to build. The Makefile for
|
||||||
|
building Bind9 when bundled with ISC DHCP was modified to turn off
|
||||||
|
this dependency.
|
||||||
|
* Corrected a dual-stack mixed-mode issue that occurs when both
|
||||||
|
ddns-guard-id-must-match and ddns-other-guard-is-dynamic
|
||||||
|
are enabled and that caused the server to incorrectly interpret
|
||||||
|
the presence of a guard record belonging to another client as
|
||||||
|
a case of no guard record at all. Thanks to Fernando Soto
|
||||||
|
from BlueCat Networks for reporting this issue.
|
||||||
|
* Corrected a compilation issue that occurred when building without DNS
|
||||||
|
update ability (e.g. by undefining NSUPDATE).
|
||||||
|
* Corrected an issue that was causing the server, when running in
|
||||||
|
DHPCv4 mode, to segfault when class lease limits are reached.
|
||||||
|
Thanks to Peter Nagy at Porion-Digital for reporting the matter
|
||||||
|
and submitting a patch.
|
||||||
|
* Made minor changes to eliminate warnings when compiled with GCC 9.
|
||||||
|
Thanks to Brett Neumeier for bringing the matter to our attention.
|
||||||
|
* Fixed potential memory leaks in parser error message generation
|
||||||
|
spotted by Coverity, CIDs: 1448191, 1448193, 1448194, 1448195
|
||||||
|
* Updated URL of IEEE oui.txt in contrib/dhcp-lease-list.pl. Thanks
|
||||||
|
to Tommy Smith for contributing the patch.
|
||||||
|
* Fixed define flags when using SO_BINDTODEVICE. Thanks to Joe LeVeque for
|
||||||
|
reporting the issue.
|
||||||
|
* Applied a patch from OpenBSD to always set the scope id of outbound
|
||||||
|
DHPCv6 packets. Note this change only applies when compiling under
|
||||||
|
OpenBSD. Thanks to Brad Smith at OpenBSD from bringing it to our
|
||||||
|
attention.
|
||||||
|
* Modified dhclient to not discard config file leases that are
|
||||||
|
duplicates of server-provided leases and to retain such leases
|
||||||
|
after they have been used as the fallback active lease and
|
||||||
|
DHCP service has been restored. This allows them to be used
|
||||||
|
more than once during the lifetime of a dhclient instance.
|
||||||
|
This applies to DHCPv4 operation only.
|
||||||
|
* Corrected a number of reference counter and zero-length buffer leaks.
|
||||||
|
Thanks to Christopher Ertl of MSRC Vulnerabilities & Mitigations for
|
||||||
|
pointing them out.
|
||||||
|
* Closed a small window of time between the installation of graceful
|
||||||
|
shutdown signal handlers and application context startup, during which
|
||||||
|
the receipt of shutdown signal would cause a REQUIRE() assertion to
|
||||||
|
occur. Note this issue is only visible when compiling with
|
||||||
|
ENABLE_GENTLE_SHUTDOWN defined.
|
||||||
|
* Corrected a buffer overflow that can occur when retrieving zone
|
||||||
|
names that are more than 255 characters in length.
|
||||||
|
* The "d" domain name option format was incorrectly handled as text
|
||||||
|
instead of RFC 1035 wire format. Thanks to Jay Doran at BlueCat Networks
|
||||||
|
for reporting this issue.
|
||||||
|
* Improved the error message issued when a host declaration has both
|
||||||
|
a uid and a dhcp-client-identifier. Server configuration parsing will
|
||||||
|
now fail if a host declaration specifies more than one uid.
|
||||||
|
* Updated developer's documentation on building and running unit tests.
|
||||||
|
Removed support for --with-atf=bind as BIND9 no longer bundles in ATF
|
||||||
|
source.
|
||||||
|
* Fixed a syntax error in ldap.c which cropped up under Ubuntu
|
||||||
|
18.04.1/gcc 7.4.0. Thanks to Charles Hedrick for pointing it out.
|
||||||
|
* Added clarification to dhcp-options.5 section on ip-address values
|
||||||
|
describing the first-use DNS resolution of options with hostnames as
|
||||||
|
values (e.g. next-server).
|
||||||
|
* The option format for the server option omapi-key was changed to a
|
||||||
|
format type 'k' (key name); while server options ldap-port and
|
||||||
|
ldap-init-retry were changed to 'L' (unsigned 32-bit integer). These
|
||||||
|
three options were inadvertantly broken when the 'd' format content
|
||||||
|
was changed to comply with RFC 1035 wire format (see Gitlab #2).
|
||||||
|
* 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.
|
||||||
|
! Option reference count was not correctly decremented in error path
|
||||||
|
when parsing buffer for options. Reported by Felix Wilhelm, Google
|
||||||
|
Security Team.
|
||||||
|
CVE: CVE-2018-5733
|
||||||
|
! Corrected an issue where large sized 'X/x' format options were causing
|
||||||
|
option handling logic to overwrite memory when expanding them to human
|
||||||
|
readable form. Reported by Felix Wilhelm, Google Security Team.
|
||||||
|
CVE: CVE-2018-5732
|
||||||
|
* Added use of new Bind9 compatibility header files, that are now necessary
|
||||||
|
to supply type definitions for primitive data types, removed from Bind9
|
||||||
|
proper. Altered util/bind.sh to pull from Bind9 repo on gitlab.
|
||||||
|
* Duplicate address detection when binding to a new IPv6 address was added
|
||||||
|
to the following dhclient scripts: linux,freebsd,netbsd,openbsd, and macos.
|
||||||
|
The scripts will check for DAD errors after binding to a new IPv6 address
|
||||||
|
for at most --dad-wait-time seconds. If a DAD error is detected the script
|
||||||
|
will exit with a value of 3, instructing dhclient to decline the address. If
|
||||||
|
dad-wait-time is zero (the default), DAD error checking is not peformed.
|
||||||
|
* Support for sending and receiving additional DHCP4 options has been added
|
||||||
|
to both the dhcpd and dhclient. Specifically: option codes 93,94, and 97
|
||||||
|
(RFC 4578); code 150 (RFC 5859); and codes 209,219, and 211 (RFC 5071).
|
||||||
|
Beyond configuring, sending, requesting, and receiving these options neither
|
||||||
|
server nor client apply any additional logic based on their values.
|
||||||
|
Thanks to Peter Lewis for requesting this change.
|
||||||
|
* Added clarifying text to dhcpd.conf.5 explaining the class match expressions
|
||||||
|
cannot rely on the results of executable statements.
|
||||||
|
* Fixed a bug which causes dhcpd and dhclient to crash on certain
|
||||||
|
systems when given relative path names for lease or pid files on
|
||||||
|
the command line. Affected systems are those on which the C library
|
||||||
|
function, realpath() does not support a second parameter value of
|
||||||
|
NULL (see manpages for realpath(3)).
|
||||||
|
* Fixed a build issue when building with embedded BIND9 under OpenBSD that
|
||||||
|
was causing BIND9 build to not generate dns/enumclass.h and dns/enumtype.h.
|
||||||
|
* Added <dhcp>/m4/README to the distribution tarball. Some versions of
|
||||||
|
ac_local() treat the absence of the m4 subdirectory as error rather than
|
||||||
|
warning. This was causing the call to autoreconf, necessary for building
|
||||||
|
with libtool, to fail.
|
||||||
|
* Added experimental support for relay port (draft-ietf-dhc-relay-port-10.txt)
|
||||||
|
feature for DHCPv4, DHCPv6 and DHCPv4-over-DHCPv6. Relay port has to be
|
||||||
|
enabled at compile time via --enable-relay-port and is fully backward
|
||||||
|
compatible (i.e. works with previous implementations of servers and relays
|
||||||
|
using the standard ports). A new --rp <relay-port> command line option
|
||||||
|
specifies to dhcrelay an alternate source port for upstream (i.e. toward
|
||||||
|
the server) messages. Thanks to Naiming Shen and Enke Chen of Cisco
|
||||||
|
systems for submitting these patches.
|
||||||
|
* Added --release-on-roam to dhcpd server. When enabled and the server detects
|
||||||
|
that a DHCPv6 client (IAID+DUID) has roamed to a new network, it will release
|
||||||
|
the pre-existing leases on the old network and emit a log statement similar
|
||||||
|
to the following:
|
||||||
|
|
||||||
|
"Client: <id> roamed to new network, releasing lease: <address>"
|
||||||
|
|
||||||
|
The server will carry out all of the same steps that would normally occur
|
||||||
|
when a client explicitly releases a lease. This behavior is disabled by
|
||||||
|
default and may only be specified globally. Prior to this the server renders
|
||||||
|
the leases unavailable until they expire or the server is restarted. Clients
|
||||||
|
that need leases in multiple networks must supply a unique IAID in each IA.
|
||||||
|
When release-on-roam is disabled (the default) the server maintains the
|
||||||
|
prior behavior of making such leases unavailable until they expire or the
|
||||||
|
server is restarted. Clients that need leases in multiple networks must
|
||||||
|
supply a unique IAID in each IA. This parameter may only be specified at
|
||||||
|
the global level. Thanks to Fernando Soto from BlueCat Networks for
|
||||||
|
suggesting this change.
|
||||||
|
* Support for delayed-ack is now compiled in by default. Prior to this
|
||||||
|
it had to be enabled at compile time via --enable-delayed-acks. The
|
||||||
|
default value for delayed-ack, however, has been changed from 28 to 0
|
||||||
|
(i.e. disabled). This was done to minimize the impact on users not
|
||||||
|
currently using the feature. Please note that the delayed-ack feature
|
||||||
|
is not currently compatible with support for DHPCv4-over-DHCPv6 so
|
||||||
|
when a 4to6 port command line argument enables this in the server the
|
||||||
|
delayed-ack value is reset to 0.
|
||||||
|
* Added to the server (-6) a new statement, local-address6, which specifies
|
||||||
|
the source address of packets sent by the server. An additional flag,
|
||||||
|
bind-local-address6, disabled by default, binds the service socket to
|
||||||
|
to local-address6. Note that bind-local-address does not work with direct
|
||||||
|
clients: a relay has to forward packets to the server using the
|
||||||
|
local-address6 destination.
|
||||||
|
* The server now recognizes environment variables PATH_DHCPD_DB and
|
||||||
|
PATH_DHCPD_PID. These had been incorrectly compiled out of the code
|
||||||
|
unless DHCPv6 support was disabled. Additionally, the server man
|
||||||
|
pages were corrected to accurately reflect how the server chooses
|
||||||
|
file names (see lease-file-name and pid-file-name statements). Thanks
|
||||||
|
to Fernando Soto at Bluecat Networks for bringing this matter to our
|
||||||
|
attention.
|
||||||
|
* Removed an "Impossible condition" error upon exit in the dhcpd server that
|
||||||
|
has been shutdown via OMAPI. This condition was only apparent under Solaris
|
||||||
|
when building with --enable-use-sockets and --enable-ipv4-pktinfo.
|
||||||
|
* Corrected some minor Coverity issues: CID 1426059, 1426058, and 1426057.
|
||||||
|
* Added missing text to dhclient.8 and expanded release note coverage
|
||||||
|
for --address-prefix-len changes.
|
||||||
|
- remove dhcp-CVE-2019-6470.patch,
|
||||||
|
0013-dhcp-4.2.x-dhcpv6-decline-on-DAD-failure.872609.patch: merged upstream
|
||||||
|
- 0006-dhcp-4.3.2-dhclient-send-hostname-or-fqdn.patch
|
||||||
|
0009-dhcp-4.2.6-close-on-exec.patch
|
||||||
|
0016-infiniband-support.patch
|
||||||
|
0018-client-fail-on-script-pre-init-error-bsc-912098.patch
|
||||||
|
0021-dhcp-ip-family-symlinks.patch: refresh against newer code base
|
||||||
|
- build with --enable-log-pid (log pid) and enable-binary-leases (faster
|
||||||
|
binary looup for large leases files)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 17 13:56:54 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
|
Tue Nov 17 13:56:54 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
|
||||||
|
|
||||||
|
396
dhcp.keyring
396
dhcp.keyring
@ -1,152 +1,252 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Comment: GPGTools - http://gpgtools.org
|
||||||
|
|
||||||
mQINBFf1aL4BEADaw6pPFCoWEtbcGEbfFRsCxEK2PDjzG7+PWTDUpdJgzMvHKvWU
|
mQINBFwq9BQBEADHjPDCwsHVtxnMNilgu187W8a9rYTMLgLfQwioSbjsF7dUJu8m
|
||||||
BkKKpxxkWk6+irY4fZnaRkXKR6ggkTDRXucpssayXt95ZXdniOWGOuEGvGmIcif9
|
r1w2stcsatRs7HBk/j26RNJagY2Jt0QufOQLlTePpTl6UPU8EeiJ8c15DNf45TMk
|
||||||
klfvDLxK3dq1WrsRGs35FE4puxldS0RAS8dcRlq0bqMpnaSPxay8bdvQF8v5syIF
|
pa/3MdIVpDnBioyD1JNqsI4z+yCYZ7p/TRVCyh5vCcwmt5pdKjKMTcu7aD2PtTtI
|
||||||
vW2ySfT21e1YgaMdSCu92kmg7lzrPccKFNuX3xkosGIglnoVcjpXqsZEIZjj6YAw
|
yhTIetJavy1HQmgOl4/t/nKL7Lll2xtZ56JFUt7epo0h69fiUvPewkhykzoEf4UG
|
||||||
cZiEGB1Lxc88WjWbhrct0S1Z4zITapRAFdY65i1POmHmcyqEDlhYvbPIfk99PUvB
|
ZFHSLZKqdMNPs/Jr9n7zS+iOgEXJnKDkp8SoXpAcgJ5fncROMXpxgY2U+G5rB9n0
|
||||||
o6SbvE5IGChc+O5cqwp9i8sTw/ABewUkv2rcRfjaehQzIm6HHq3lX+ukqinic1fc
|
/hvV1zG+EP6OLIGqekiDUga84LdmR/8Cyc7DimUmaoIZXrAo0Alpt0aZ8GimdKmh
|
||||||
+FsZnQNQXUoh9z3InKPzWkxOcc1DiXkMcXUdxSi7C0zghR/tFKTLHeTOxj8j6oaX
|
qirIguJOSrrsZTeZLilCWu37fRIjCQ3dSMNyhHJaOhRJQpQOEDG7jHxFak7627aF
|
||||||
DfWpdhBfFch2ogVQXZMyPaQxuObtG9aVffbpQsTHzAitz5/M7lXj2044DE8p9gcq
|
UnVwBAOK3NlFfbomapXQm64lYNoONGrpV0ctueD3VoPipxIyzNHHgcsXDZ6C00sv
|
||||||
ORMZnqAE/uVuYvGzdQZJEx8pDma4Aegx/Nn0Wpv19U2zw2dfGon3Ckrdi8G77K10
|
SbuuS9jlFEDonA6S8tApKgkEJuToBuopM4xqqwHNJ4e6QoXYjERIgIBTco3r/76D
|
||||||
5++BB0ZFDia93kkEodcyJtdLMhFSxXV2XMMN8frO4jhHq86lnG71kbb5Y2ZdrkXz
|
o22ZxSK1m2m2i+p0gnWTlFn6RH+r6gfLwZRj8iR4fa0yMn3DztyTO6H8AiaslONt
|
||||||
BCGo6sVMVqWWEXUp4COfgEboeDneLUTlVLFQbgqpgWCCFZKz/k0hQpZbOQARAQAB
|
LV2kvkhBar1/6dzlBvMdiRBejrVnw+Jg2bOmYTncFN00szPOXbEalps8wwARAQAB
|
||||||
tE1JbnRlcm5ldCBTeXN0ZW1zIENvbnNvcnRpdW0sIEluYy4gKFNpZ25pbmcga2V5
|
tE1JbnRlcm5ldCBTeXN0ZW1zIENvbnNvcnRpdW0sIEluYy4gKFNpZ25pbmcga2V5
|
||||||
LCAyMDE3LTIwMTgpIDxjb2Rlc2lnbkBpc2Mub3JnPokCPwQTAQgAKQUCV/VovgIb
|
LCAyMDE5LTIwMjApIDxjb2Rlc2lnbkBpc2Mub3JnPokCVAQTAQgAPhYhBK4/rHln
|
||||||
AwUJBF9JgAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEPGxG/Bc8C5XwvEP
|
EexZ/AB6pHS7a5pMuz04BQJcKvQUAhsDBQkD7JcABQsJCAcCBhUKCQgLAgQWAgMB
|
||||||
/jRPx7GaTG4PqXiNptV36r1q+Eg92oRozUqNcuhN/l09gThyClfQylsEhZBcTT3I
|
Ah4BAheAAAoJEHS7a5pMuz0476oP/1+UaSHfe4WVHV43QaQ/z1rw7vg2aHEwyWJA
|
||||||
VAjqqqAott5XNqw8pyPjERMFnqal0zBMZTln9RLkLnvoWQrHnEzG3CJ9Ndkk7niM
|
1D1tBr9+LvfohswwWBLIjcKRaoXZ4pLBFjuiYHBTsdaAQFeQQvQTXMmBx21ZyUZj
|
||||||
DOpRI71h8+nMl7YbkXOy87qamvoZ2BQZcdL+a8R5p733JaPMDUy5leZKNiywThQQ
|
tjim8f9T1JhmIrMx6tF14NbqFpjw82Mv0rc8y74pdRvkdnFigqLKUoN2tFQlKeG+
|
||||||
iEtpWuz5u+zoALP5EKedPKCr0+xfGTUS5qptR2nHnRXnZouPfbQWKyEWtC3Qbiu+
|
5T24zNwrGrlR3S7gnM47nD1JqKwt4GnczLnMBW/0gbLscMUpAeNo/gY4g0GV/zkn
|
||||||
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
|
||||||
=E+8v
|
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
|
||||||
|
=MkGo
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
54
dhcp.spec
54
dhcp.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package dhcp
|
# spec file for package dhcp
|
||||||
#
|
#
|
||||||
# Copyright (c) 2020 SUSE LLC
|
# Copyright (c) 2021 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,26 +16,25 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%if 0%{?usrmerged}
|
%define isc_version 4.4.2
|
||||||
%define sbindir %_sbindir
|
|
||||||
%else
|
|
||||||
%define sbindir /sbin
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%define isc_version 4.3.6-P1
|
|
||||||
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||||
%if ! %{defined _fillupdir}
|
%if ! %{defined _fillupdir}
|
||||||
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||||||
%endif
|
%endif
|
||||||
|
%if 0%{?usrmerged}
|
||||||
|
%define sbindir %{_sbindir}
|
||||||
|
%else
|
||||||
|
%define sbindir /sbin
|
||||||
|
%endif
|
||||||
Name: dhcp
|
Name: dhcp
|
||||||
Version: 4.3.5
|
Version: 4.4.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Common Files Used by ISC DHCP Software
|
Summary: Common Files Used by ISC DHCP Software
|
||||||
License: BSD-3-Clause
|
License: MPL-2.0
|
||||||
Group: Productivity/Networking/Boot/Servers
|
Group: Productivity/Networking/Boot/Servers
|
||||||
URL: http://www.isc.org/software/dhcp
|
URL: https://www.isc.org/software/dhcp
|
||||||
Source0: dhcp-%{isc_version}.tar.gz
|
Source0: https://ftp.isc.org/isc/dhcp/%{isc_version}/dhcp-%{isc_version}.tar.gz
|
||||||
Source1: dhcp-%{isc_version}.tar.gz.asc
|
Source1: https://ftp.isc.org/isc/dhcp/%{isc_version}/dhcp-%{isc_version}.tar.gz.asc
|
||||||
Source2: %{name}.keyring
|
Source2: %{name}.keyring
|
||||||
#
|
#
|
||||||
Source10: dhcpd.script
|
Source10: dhcpd.script
|
||||||
@ -79,8 +78,6 @@ Patch9: 0009-dhcp-4.2.6-close-on-exec.patch
|
|||||||
Patch10: 0010-dhcp-4.2.2-quiet-dhclient.patch
|
Patch10: 0010-dhcp-4.2.2-quiet-dhclient.patch
|
||||||
# PATCH-FIX-OPENSUSE dhcp-4.2.x-chown-server-leases bnc#868253
|
# PATCH-FIX-OPENSUSE dhcp-4.2.x-chown-server-leases bnc#868253
|
||||||
Patch12: 0012-dhcp-4.2.x-chown-server-leases.bnc868253.patch
|
Patch12: 0012-dhcp-4.2.x-chown-server-leases.bnc868253.patch
|
||||||
# PATCH-FIX-SLE dhcp-4.2.x-dhcpv6-decline-on-DAD-failure bnc#872609
|
|
||||||
Patch13: 0013-dhcp-4.2.x-dhcpv6-decline-on-DAD-failure.872609.patch
|
|
||||||
# PATCH-FIX-SLE dhclient6-unsigned-lifetimes-for-script bsc#926159
|
# PATCH-FIX-SLE dhclient6-unsigned-lifetimes-for-script bsc#926159
|
||||||
Patch14: 0014-dhclient6-unsigned-lifetimes-for-script-bsc-926159.patch
|
Patch14: 0014-dhclient6-unsigned-lifetimes-for-script-bsc-926159.patch
|
||||||
# PATCH-FIX-SLE Expose-next-server-DHCPv4-option-to-dhclient-script bsc#928390
|
# PATCH-FIX-SLE Expose-next-server-DHCPv4-option-to-dhclient-script bsc#928390
|
||||||
@ -94,7 +91,6 @@ Patch18: 0018-client-fail-on-script-pre-init-error-bsc-912098.patch
|
|||||||
# PATCH-FIX-SLE dhcp-4.2.4-P1-interval bsc#947780
|
# PATCH-FIX-SLE dhcp-4.2.4-P1-interval bsc#947780
|
||||||
Patch20: 0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch
|
Patch20: 0020-dhcp-4.x.x-fixed-improper-lease-duration-checking.patch
|
||||||
Patch21: 0021-dhcp-ip-family-symlinks.patch
|
Patch21: 0021-dhcp-ip-family-symlinks.patch
|
||||||
Patch22: dhcp-CVE-2019-6470.patch
|
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: dos2unix
|
BuildRequires: dos2unix
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
@ -108,14 +104,14 @@ BuildRequires: sysuser-tools
|
|||||||
Summary: ISC DHCP Server
|
Summary: ISC DHCP Server
|
||||||
Group: Productivity/Networking/Boot/Servers
|
Group: Productivity/Networking/Boot/Servers
|
||||||
Requires: dhcp = %{version}
|
Requires: dhcp = %{version}
|
||||||
|
Requires(post): %fillup_prereq
|
||||||
|
%systemd_ordering
|
||||||
%if 0%{?suse_version} < 1500
|
%if 0%{?suse_version} < 1500
|
||||||
Requires: net-tools
|
Requires: net-tools
|
||||||
%endif
|
%endif
|
||||||
Requires(post): %fillup_prereq
|
|
||||||
%systemd_ordering
|
|
||||||
%if 0%{?suse_version} >= 1330
|
%if 0%{?suse_version} >= 1330
|
||||||
Requires(pre): group(nogroup)
|
Requires(pre): group(nogroup)
|
||||||
%sysusers_requires
|
# %sysusers_requires
|
||||||
%else
|
%else
|
||||||
Requires(pre): shadow
|
Requires(pre): shadow
|
||||||
%endif
|
%endif
|
||||||
@ -137,11 +133,11 @@ Requires: net-tools
|
|||||||
Summary: ISC DHCP Relay Agent
|
Summary: ISC DHCP Relay Agent
|
||||||
Group: Productivity/Networking/Boot/Servers
|
Group: Productivity/Networking/Boot/Servers
|
||||||
Requires: dhcp = %{version}
|
Requires: dhcp = %{version}
|
||||||
|
Requires(post): %fillup_prereq
|
||||||
|
%systemd_ordering
|
||||||
%if 0%{?suse_version} < 1500
|
%if 0%{?suse_version} < 1500
|
||||||
Requires: net-tools
|
Requires: net-tools
|
||||||
%endif
|
%endif
|
||||||
Requires(post): %fillup_prereq
|
|
||||||
%systemd_ordering
|
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Header Files and Libraries for dhcpctl API
|
Summary: Header Files and Libraries for dhcpctl API
|
||||||
@ -199,7 +195,6 @@ with the Internet Software Consortium (ISC) dhcpctl API.
|
|||||||
%patch9
|
%patch9
|
||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
%patch13 -p1
|
|
||||||
%patch14
|
%patch14
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16
|
%patch16
|
||||||
@ -207,7 +202,6 @@ with the Internet Software Consortium (ISC) dhcpctl API.
|
|||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch20
|
%patch20
|
||||||
%patch21
|
%patch21
|
||||||
%patch22
|
|
||||||
##
|
##
|
||||||
find . -type f -name \*.cat\* -exec rm -f {} \;
|
find . -type f -name \*.cat\* -exec rm -f {} \;
|
||||||
dos2unix contrib/ms2isc/*
|
dos2unix contrib/ms2isc/*
|
||||||
@ -242,16 +236,14 @@ LDFLAGS="-Wl,-z,relro,-z,now -pie"
|
|||||||
FFLAGS="$CFLAGS"
|
FFLAGS="$CFLAGS"
|
||||||
CXXFLAGS="$CFLAGS"
|
CXXFLAGS="$CFLAGS"
|
||||||
export CFLAGS LDFLAGS FFLAGS CXXFLAGS
|
export CFLAGS LDFLAGS FFLAGS CXXFLAGS
|
||||||
#
|
|
||||||
#libtoolize --force
|
|
||||||
#autoreconf -f -i
|
|
||||||
#
|
|
||||||
%configure \
|
%configure \
|
||||||
--enable-dhcpv6 \
|
--enable-dhcpv6 \
|
||||||
--enable-failover \
|
--enable-failover \
|
||||||
--enable-paranoia \
|
--enable-paranoia \
|
||||||
--enable-early-chroot \
|
--enable-early-chroot \
|
||||||
--enable-secs-byteorder \
|
--disable-libtool \
|
||||||
|
--enable-log-pid \
|
||||||
|
--enable-binary-leases \
|
||||||
--with-ldap \
|
--with-ldap \
|
||||||
--with-ldapcrypto \
|
--with-ldapcrypto \
|
||||||
--with-cli-pid-file=%{_localstatedir}/run/dhclient.pid \
|
--with-cli-pid-file=%{_localstatedir}/run/dhclient.pid \
|
||||||
@ -264,12 +256,12 @@ export CFLAGS LDFLAGS FFLAGS CXXFLAGS
|
|||||||
--with-srv6-lease-file=%{_localstatedir}/lib/dhcp6/db/dhcpd6.leases
|
--with-srv6-lease-file=%{_localstatedir}/lib/dhcp6/db/dhcpd6.leases
|
||||||
#
|
#
|
||||||
: building bind sources
|
: building bind sources
|
||||||
make -j1 -C bind all
|
%make_build -j1 -C bind all
|
||||||
cat bind/configure.log
|
cat bind/configure.log
|
||||||
cat bind/build.log
|
cat bind/build.log
|
||||||
cat bind/install.log
|
cat bind/install.log
|
||||||
: building dhcp sources
|
: building dhcp sources
|
||||||
make %{?_smp_mflags}
|
%make_build
|
||||||
%if 0%{?suse_version} >= 1330
|
%if 0%{?suse_version} >= 1330
|
||||||
%sysusers_generate_pre %{SOURCE47} dhcp-server
|
%sysusers_generate_pre %{SOURCE47} dhcp-server
|
||||||
%endif
|
%endif
|
||||||
@ -397,7 +389,7 @@ for l in lib/lib*.a ; do
|
|||||||
done
|
done
|
||||||
popd
|
popd
|
||||||
# move also all dhcp-devel files to dhcp subdirectories
|
# move also all dhcp-devel files to dhcp subdirectories
|
||||||
mv %{buildroot}%{_includedir}/{dhcpctl,isc-dhcp,omapip} \
|
mv %{buildroot}%{_includedir}/{dhcpctl,omapip} \
|
||||||
%{buildroot}%{_includedir}/dhcp/
|
%{buildroot}%{_includedir}/dhcp/
|
||||||
mv %{buildroot}%{_libdir}/lib*.* \
|
mv %{buildroot}%{_libdir}/lib*.* \
|
||||||
%{buildroot}%{_libdir}/dhcp/
|
%{buildroot}%{_libdir}/dhcp/
|
||||||
|
Loading…
Reference in New Issue
Block a user