4.3.2b1
This commit is contained in:
parent
b72dfb9de9
commit
9568cf3620
@ -1,7 +1,7 @@
|
||||
diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c
|
||||
--- dhcp-4.3.0a1/client/clparse.c.cloexec 2013-12-19 15:34:41.638886256 +0100
|
||||
+++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 15:34:41.657885985 +0100
|
||||
@@ -253,7 +253,7 @@ int read_client_conf_file (const char *n
|
||||
diff -up dhcp-4.3.2b1/client/clparse.c.LzrZDt dhcp-4.3.2b1/client/clparse.c
|
||||
--- dhcp-4.3.2b1/client/clparse.c.LzrZDt 2015-02-08 15:22:43.305597445 +0100
|
||||
+++ dhcp-4.3.2b1/client/clparse.c 2015-02-08 15:22:43.381596392 +0100
|
||||
@@ -247,7 +247,7 @@ int read_client_conf_file (const char *n
|
||||
int token;
|
||||
isc_result_t status;
|
||||
|
||||
@ -10,7 +10,7 @@ diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c
|
||||
return uerr2isc (errno);
|
||||
|
||||
cfile = NULL;
|
||||
@@ -290,7 +290,7 @@ void read_client_leases ()
|
||||
@@ -323,7 +323,7 @@ void read_client_leases ()
|
||||
|
||||
/* Open the lease file. If we can't open it, just return -
|
||||
we can safely trust the server to remember our state. */
|
||||
@ -19,10 +19,10 @@ diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c
|
||||
return;
|
||||
|
||||
cfile = NULL;
|
||||
diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
--- dhcp-4.3.0a1/client/dhclient.c.cloexec 2013-12-19 15:34:41.629886384 +0100
|
||||
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:36:41.608180467 +0100
|
||||
@@ -148,11 +148,11 @@ main(int argc, char **argv) {
|
||||
diff -up dhcp-4.3.2b1/client/dhclient.c.LzrZDt dhcp-4.3.2b1/client/dhclient.c
|
||||
--- dhcp-4.3.2b1/client/dhclient.c.LzrZDt 2015-02-08 15:22:43.259598082 +0100
|
||||
+++ dhcp-4.3.2b1/client/dhclient.c 2015-02-08 15:22:43.383596364 +0100
|
||||
@@ -150,11 +150,11 @@ main(int argc, char **argv) {
|
||||
/* Make sure that file descriptors 0 (stdin), 1, (stdout), and
|
||||
2 (stderr) are open. To do this, we assume that when we
|
||||
open a file the lowest available file descriptor is used. */
|
||||
@ -37,7 +37,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if (fd == 2)
|
||||
log_perror = 0; /* No sense logging to /dev/null. */
|
||||
else if (fd != -1)
|
||||
@@ -504,7 +504,7 @@ main(int argc, char **argv) {
|
||||
@@ -516,7 +516,7 @@ main(int argc, char **argv) {
|
||||
long temp;
|
||||
int e;
|
||||
|
||||
@ -46,7 +46,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
e = fscanf(pidfd, "%ld\n", &temp);
|
||||
oldpid = (pid_t)temp;
|
||||
|
||||
@@ -554,7 +554,7 @@ main(int argc, char **argv) {
|
||||
@@ -571,7 +571,7 @@ main(int argc, char **argv) {
|
||||
strncpy(new_path_dhclient_pid, path_dhclient_pid, pfx);
|
||||
sprintf(new_path_dhclient_pid + pfx, "-%s.pid", ip->name);
|
||||
|
||||
@ -55,7 +55,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
e = fscanf(pidfd, "%ld\n", &temp);
|
||||
oldpid = (pid_t)temp;
|
||||
|
||||
@@ -579,7 +579,7 @@ main(int argc, char **argv) {
|
||||
@@ -596,7 +596,7 @@ main(int argc, char **argv) {
|
||||
int dhc_running = 0;
|
||||
char procfn[256] = "";
|
||||
|
||||
@ -64,7 +64,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) {
|
||||
snprintf(procfn,256,"/proc/%u",dhcpid);
|
||||
dhc_running = (access(procfn, F_OK) == 0);
|
||||
@@ -3077,7 +3077,7 @@ void rewrite_client_leases ()
|
||||
@@ -3119,7 +3119,7 @@ void rewrite_client_leases ()
|
||||
|
||||
if (leaseFile != NULL)
|
||||
fclose (leaseFile);
|
||||
@ -73,7 +73,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if (leaseFile == NULL) {
|
||||
log_error ("can't create %s: %m", path_dhclient_db);
|
||||
return;
|
||||
@@ -3261,7 +3261,7 @@ write_duid(struct data_string *duid)
|
||||
@@ -3312,7 +3312,7 @@ write_duid(struct data_string *duid)
|
||||
return DHCP_R_INVALIDARG;
|
||||
|
||||
if (leaseFile == NULL) { /* XXX? */
|
||||
@ -82,7 +82,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if (leaseFile == NULL) {
|
||||
log_error("can't create %s: %m", path_dhclient_db);
|
||||
return ISC_R_IOERROR;
|
||||
@@ -3441,7 +3441,7 @@ int write_client_lease (client, lease, r
|
||||
@@ -3492,7 +3492,7 @@ int write_client_lease (client, lease, r
|
||||
return 1;
|
||||
|
||||
if (leaseFile == NULL) { /* XXX */
|
||||
@ -91,7 +91,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if (leaseFile == NULL) {
|
||||
log_error ("can't create %s: %m", path_dhclient_db);
|
||||
return 0;
|
||||
@@ -3952,9 +3952,9 @@ void go_daemon ()
|
||||
@@ -4010,9 +4010,9 @@ void go_daemon ()
|
||||
(void) close(2);
|
||||
|
||||
/* Reopen them on /dev/null. */
|
||||
@ -104,7 +104,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
|
||||
write_client_pid_file ();
|
||||
|
||||
@@ -3971,14 +3971,14 @@ void write_client_pid_file ()
|
||||
@@ -4029,14 +4029,14 @@ void write_client_pid_file ()
|
||||
return;
|
||||
}
|
||||
|
||||
@ -121,9 +121,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
|
||||
if (!pf) {
|
||||
close(pfdesc);
|
||||
log_error ("Can't fdopen %s: %m", path_dhclient_pid);
|
||||
diff -up dhcp-4.3.0a1/common/bpf.c.cloexec dhcp-4.3.0a1/common/bpf.c
|
||||
--- dhcp-4.3.0a1/common/bpf.c.cloexec 2013-12-19 15:34:41.640886227 +0100
|
||||
+++ dhcp-4.3.0a1/common/bpf.c 2013-12-19 15:34:41.661885928 +0100
|
||||
diff -up dhcp-4.3.2b1/common/bpf.c.LzrZDt dhcp-4.3.2b1/common/bpf.c
|
||||
--- dhcp-4.3.2b1/common/bpf.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/bpf.c 2015-02-08 15:22:43.383596364 +0100
|
||||
@@ -95,7 +95,7 @@ int if_register_bpf (info)
|
||||
for (b = 0; 1; b++) {
|
||||
/* %Audit% 31 bytes max. %2004.06.17,Safe% */
|
||||
@ -133,9 +133,9 @@ diff -up dhcp-4.3.0a1/common/bpf.c.cloexec dhcp-4.3.0a1/common/bpf.c
|
||||
if (sock < 0) {
|
||||
if (errno == EBUSY) {
|
||||
continue;
|
||||
diff -up dhcp-4.3.0a1/common/dlpi.c.cloexec dhcp-4.3.0a1/common/dlpi.c
|
||||
--- dhcp-4.3.0a1/common/dlpi.c.cloexec 2013-12-19 15:34:41.641886213 +0100
|
||||
+++ dhcp-4.3.0a1/common/dlpi.c 2013-12-19 15:34:41.662885914 +0100
|
||||
diff -up dhcp-4.3.2b1/common/dlpi.c.LzrZDt dhcp-4.3.2b1/common/dlpi.c
|
||||
--- dhcp-4.3.2b1/common/dlpi.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/dlpi.c 2015-02-08 15:22:43.383596364 +0100
|
||||
@@ -804,7 +804,7 @@ dlpiopen(const char *ifname) {
|
||||
}
|
||||
*dp = '\0';
|
||||
@ -145,10 +145,10 @@ diff -up dhcp-4.3.0a1/common/dlpi.c.cloexec dhcp-4.3.0a1/common/dlpi.c
|
||||
}
|
||||
|
||||
/*
|
||||
diff -up dhcp-4.3.0a1/common/nit.c.cloexec dhcp-4.3.0a1/common/nit.c
|
||||
--- dhcp-4.3.0a1/common/nit.c.cloexec 2013-12-19 15:34:41.642886199 +0100
|
||||
+++ dhcp-4.3.0a1/common/nit.c 2013-12-19 15:34:41.662885914 +0100
|
||||
@@ -81,7 +81,7 @@ int if_register_nit (info)
|
||||
diff -up dhcp-4.3.2b1/common/nit.c.LzrZDt dhcp-4.3.2b1/common/nit.c
|
||||
--- dhcp-4.3.2b1/common/nit.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/nit.c 2015-02-08 15:22:43.384596350 +0100
|
||||
@@ -75,7 +75,7 @@ int if_register_nit (info)
|
||||
struct strioctl sio;
|
||||
|
||||
/* Open a NIT device */
|
||||
@ -157,10 +157,10 @@ diff -up dhcp-4.3.0a1/common/nit.c.cloexec dhcp-4.3.0a1/common/nit.c
|
||||
if (sock < 0)
|
||||
log_fatal ("Can't open NIT device for %s: %m", info -> name);
|
||||
|
||||
diff -up dhcp-4.3.0a1/common/resolv.c.cloexec dhcp-4.3.0a1/common/resolv.c
|
||||
--- dhcp-4.3.0a1/common/resolv.c.cloexec 2013-12-11 01:25:12.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/common/resolv.c 2013-12-19 15:34:41.663885900 +0100
|
||||
@@ -50,7 +50,7 @@ void read_resolv_conf (parse_time)
|
||||
diff -up dhcp-4.3.2b1/common/resolv.c.LzrZDt dhcp-4.3.2b1/common/resolv.c
|
||||
--- dhcp-4.3.2b1/common/resolv.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/resolv.c 2015-02-08 15:22:43.384596350 +0100
|
||||
@@ -44,7 +44,7 @@ void read_resolv_conf (parse_time)
|
||||
struct domain_search_list *dp, *dl, *nd;
|
||||
isc_result_t status;
|
||||
|
||||
@ -169,10 +169,10 @@ diff -up dhcp-4.3.0a1/common/resolv.c.cloexec dhcp-4.3.0a1/common/resolv.c
|
||||
log_error ("Can't open %s: %m", path_resolv_conf);
|
||||
return;
|
||||
}
|
||||
diff -up dhcp-4.3.0a1/common/upf.c.cloexec dhcp-4.3.0a1/common/upf.c
|
||||
--- dhcp-4.3.0a1/common/upf.c.cloexec 2013-12-19 15:34:41.642886199 +0100
|
||||
+++ dhcp-4.3.0a1/common/upf.c 2013-12-19 15:34:41.663885900 +0100
|
||||
@@ -77,7 +77,7 @@ int if_register_upf (info)
|
||||
diff -up dhcp-4.3.2b1/common/upf.c.LzrZDt dhcp-4.3.2b1/common/upf.c
|
||||
--- dhcp-4.3.2b1/common/upf.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/upf.c 2015-02-08 15:22:43.384596350 +0100
|
||||
@@ -71,7 +71,7 @@ int if_register_upf (info)
|
||||
/* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */
|
||||
sprintf(filename, "/dev/pf/pfilt%d", b);
|
||||
|
||||
@ -181,10 +181,10 @@ diff -up dhcp-4.3.0a1/common/upf.c.cloexec dhcp-4.3.0a1/common/upf.c
|
||||
if (sock < 0) {
|
||||
if (errno == EBUSY) {
|
||||
continue;
|
||||
diff -up dhcp-4.3.0a1/omapip/trace.c.cloexec dhcp-4.3.0a1/omapip/trace.c
|
||||
--- dhcp-4.3.0a1/omapip/trace.c.cloexec 2013-12-11 01:01:03.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/omapip/trace.c 2013-12-19 15:34:41.663885900 +0100
|
||||
@@ -142,10 +142,10 @@ isc_result_t trace_begin (const char *fi
|
||||
diff -up dhcp-4.3.2b1/omapip/trace.c.LzrZDt dhcp-4.3.2b1/omapip/trace.c
|
||||
--- dhcp-4.3.2b1/omapip/trace.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/omapip/trace.c 2015-02-08 15:22:43.384596350 +0100
|
||||
@@ -138,10 +138,10 @@ isc_result_t trace_begin (const char *fi
|
||||
return DHCP_R_INVALIDARG;
|
||||
}
|
||||
|
||||
@ -197,7 +197,7 @@ diff -up dhcp-4.3.0a1/omapip/trace.c.cloexec dhcp-4.3.0a1/omapip/trace.c
|
||||
0600);
|
||||
}
|
||||
|
||||
@@ -433,7 +433,7 @@ void trace_file_replay (const char *file
|
||||
@@ -429,7 +429,7 @@ void trace_file_replay (const char *file
|
||||
isc_result_t result;
|
||||
int len;
|
||||
|
||||
@ -206,10 +206,10 @@ diff -up dhcp-4.3.0a1/omapip/trace.c.cloexec dhcp-4.3.0a1/omapip/trace.c
|
||||
if (!traceinfile) {
|
||||
log_error("Can't open tracefile %s: %m", filename);
|
||||
return;
|
||||
diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c
|
||||
--- dhcp-4.3.0a1/relay/dhcrelay.c.cloexec 2013-12-13 22:26:21.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/relay/dhcrelay.c 2013-12-19 15:34:41.664885886 +0100
|
||||
@@ -193,11 +193,11 @@ main(int argc, char **argv) {
|
||||
diff -up dhcp-4.3.2b1/relay/dhcrelay.c.LzrZDt dhcp-4.3.2b1/relay/dhcrelay.c
|
||||
--- dhcp-4.3.2b1/relay/dhcrelay.c.LzrZDt 2015-01-29 15:12:13.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/relay/dhcrelay.c 2015-02-08 15:22:43.385596336 +0100
|
||||
@@ -187,11 +187,11 @@ main(int argc, char **argv) {
|
||||
/* Make sure that file descriptors 0(stdin), 1,(stdout), and
|
||||
2(stderr) are open. To do this, we assume that when we
|
||||
open a file the lowest available file descriptor is used. */
|
||||
@ -224,7 +224,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c
|
||||
if (fd == 2)
|
||||
log_perror = 0; /* No sense logging to /dev/null. */
|
||||
else if (fd != -1)
|
||||
@@ -564,13 +564,13 @@ main(int argc, char **argv) {
|
||||
@@ -558,13 +558,13 @@ main(int argc, char **argv) {
|
||||
|
||||
if (no_pid_file == ISC_FALSE) {
|
||||
pfdesc = open(path_dhcrelay_pid,
|
||||
@ -240,10 +240,10 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c
|
||||
if (!pf)
|
||||
log_error("Can't fdopen %s: %m",
|
||||
path_dhcrelay_pid);
|
||||
diff -up dhcp-4.3.0a1/server/confpars.c.cloexec dhcp-4.3.0a1/server/confpars.c
|
||||
--- dhcp-4.3.0a1/server/confpars.c.cloexec 2013-12-11 01:25:12.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/server/confpars.c 2013-12-19 15:34:41.665885871 +0100
|
||||
@@ -117,7 +117,7 @@ isc_result_t read_conf_file (const char
|
||||
diff -up dhcp-4.3.2b1/server/confpars.c.LzrZDt dhcp-4.3.2b1/server/confpars.c
|
||||
--- dhcp-4.3.2b1/server/confpars.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/confpars.c 2015-02-08 15:22:43.386596322 +0100
|
||||
@@ -111,7 +111,7 @@ isc_result_t read_conf_file (const char
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -252,10 +252,10 @@ diff -up dhcp-4.3.0a1/server/confpars.c.cloexec dhcp-4.3.0a1/server/confpars.c
|
||||
if (leasep) {
|
||||
log_error ("Can't open lease database %s: %m --",
|
||||
path_dhcpd_db);
|
||||
diff -up dhcp-4.3.0a1/server/db.c.cloexec dhcp-4.3.0a1/server/db.c
|
||||
--- dhcp-4.3.0a1/server/db.c.cloexec 2013-12-11 01:25:12.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/server/db.c 2013-12-19 15:34:41.666885857 +0100
|
||||
@@ -1081,7 +1081,7 @@ void db_startup (testp)
|
||||
diff -up dhcp-4.3.2b1/server/db.c.LzrZDt dhcp-4.3.2b1/server/db.c
|
||||
--- dhcp-4.3.2b1/server/db.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/db.c 2015-02-08 15:22:43.387596309 +0100
|
||||
@@ -1075,7 +1075,7 @@ void db_startup (testp)
|
||||
}
|
||||
#endif
|
||||
if (!testp) {
|
||||
@ -264,7 +264,7 @@ diff -up dhcp-4.3.0a1/server/db.c.cloexec dhcp-4.3.0a1/server/db.c
|
||||
if (!db_file)
|
||||
log_fatal ("Can't open %s for append.", path_dhcpd_db);
|
||||
expire_all_pools ();
|
||||
@@ -1129,12 +1129,12 @@ int new_lease_file ()
|
||||
@@ -1123,12 +1123,12 @@ int new_lease_file ()
|
||||
path_dhcpd_db, (int)t) >= sizeof newfname)
|
||||
log_fatal("new_lease_file: lease file path too long");
|
||||
|
||||
@ -279,10 +279,10 @@ diff -up dhcp-4.3.0a1/server/db.c.cloexec dhcp-4.3.0a1/server/db.c
|
||||
log_error("Can't fdopen new lease file: %m");
|
||||
close(db_fd);
|
||||
goto fdfail;
|
||||
diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c
|
||||
--- dhcp-4.3.0a1/server/dhcpd.c.cloexec 2013-12-13 22:26:01.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/server/dhcpd.c 2013-12-19 15:37:17.258674472 +0100
|
||||
@@ -193,11 +193,11 @@ main(int argc, char **argv) {
|
||||
diff -up dhcp-4.3.2b1/server/dhcpd.c.LzrZDt dhcp-4.3.2b1/server/dhcpd.c
|
||||
--- dhcp-4.3.2b1/server/dhcpd.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/dhcpd.c 2015-02-08 15:24:12.505358479 +0100
|
||||
@@ -188,11 +188,11 @@ main(int argc, char **argv) {
|
||||
/* Make sure that file descriptors 0 (stdin), 1, (stdout), and
|
||||
2 (stderr) are open. To do this, we assume that when we
|
||||
open a file the lowest available file descriptor is used. */
|
||||
@ -297,25 +297,16 @@ diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c
|
||||
if (fd == 2)
|
||||
log_perror = 0; /* No sense logging to /dev/null. */
|
||||
else if (fd != -1)
|
||||
@@ -716,7 +716,7 @@ main(int argc, char **argv) {
|
||||
@@ -735,7 +735,7 @@ main(int argc, char **argv) {
|
||||
* appropriate.
|
||||
*/
|
||||
if (no_pid_file == ISC_FALSE) {
|
||||
/*Read previous pid file. */
|
||||
- if ((i = open (path_dhcpd_pid, O_RDONLY)) >= 0) {
|
||||
+ if ((i = open (path_dhcpd_pid, O_RDONLY | O_CLOEXEC)) >= 0) {
|
||||
status = read(i, pbuf, (sizeof pbuf) - 1);
|
||||
close (i);
|
||||
if (status > 0) {
|
||||
@@ -735,7 +735,7 @@ main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
/* Write new pid file. */
|
||||
- i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC, 0644);
|
||||
+ i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644);
|
||||
if (i >= 0) {
|
||||
sprintf(pbuf, "%d\n", (int) getpid());
|
||||
IGNORE_RET (write(i, pbuf, strlen(pbuf)));
|
||||
@@ -763,9 +763,9 @@ main(int argc, char **argv) {
|
||||
IGNORE_RET(write(i, pbuf, strlen(pbuf)));
|
||||
@@ -779,9 +779,9 @@ main(int argc, char **argv) {
|
||||
(void) close(2);
|
||||
|
||||
/* Reopen them on /dev/null. */
|
||||
@ -328,9 +319,9 @@ diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c
|
||||
log_perror = 0; /* No sense logging to /dev/null. */
|
||||
|
||||
IGNORE_RET (chdir("/"));
|
||||
diff -up dhcp-4.3.0a1/server/ldap.c.cloexec dhcp-4.3.0a1/server/ldap.c
|
||||
--- dhcp-4.3.0a1/server/ldap.c.cloexec 2013-12-11 01:25:12.000000000 +0100
|
||||
+++ dhcp-4.3.0a1/server/ldap.c 2013-12-19 15:34:41.667885843 +0100
|
||||
diff -up dhcp-4.3.2b1/server/ldap.c.LzrZDt dhcp-4.3.2b1/server/ldap.c
|
||||
--- dhcp-4.3.2b1/server/ldap.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/ldap.c 2015-02-08 15:22:43.388596295 +0100
|
||||
@@ -684,7 +684,7 @@ ldap_start (void)
|
||||
|
||||
if (ldap_debug_file != NULL && ldap_debug_fd == -1)
|
||||
|
@ -1,7 +1,7 @@
|
||||
diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
--- dhcp-4.3.0/common/lpf.c.IPoIB-log-id 2014-02-18 15:52:12.292569480 +0100
|
||||
+++ dhcp-4.3.0/common/lpf.c 2014-02-18 15:52:12.297569411 +0100
|
||||
@@ -164,6 +164,8 @@ int if_register_lpf (info)
|
||||
diff -up dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id dhcp-4.3.2b1/common/lpf.c
|
||||
--- dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id 2015-02-08 17:37:47.055023959 +0100
|
||||
+++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:41:21.294972666 +0100
|
||||
@@ -152,6 +152,8 @@ int if_register_lpf (info)
|
||||
void if_register_send (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
@ -10,7 +10,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
/* If we're using the lpf API for sending and receiving,
|
||||
we don't need to register this interface twice. */
|
||||
#ifndef USE_LPF_RECEIVE
|
||||
@@ -171,11 +173,15 @@ void if_register_send (info)
|
||||
@@ -159,11 +161,15 @@ void if_register_send (info)
|
||||
#else
|
||||
info -> wfdesc = info -> rfdesc;
|
||||
#endif
|
||||
@ -27,7 +27,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
&info -> hw_address.hbuf [1]),
|
||||
(info -> shared_network ? "/" : ""),
|
||||
(info -> shared_network ?
|
||||
@@ -185,6 +191,10 @@ void if_register_send (info)
|
||||
@@ -173,6 +179,10 @@ void if_register_send (info)
|
||||
void if_deregister_send (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
@ -38,7 +38,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
/* don't need to close twice if we are using lpf for sending and
|
||||
receiving */
|
||||
#ifndef USE_LPF_RECEIVE
|
||||
@@ -197,7 +207,7 @@ void if_deregister_send (info)
|
||||
@@ -185,7 +195,7 @@ void if_deregister_send (info)
|
||||
log_info ("Disabling output on LPF/%s/%s%s%s",
|
||||
info -> name,
|
||||
print_hw_addr (info -> hw_address.hbuf [0],
|
||||
@ -47,27 +47,27 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
&info -> hw_address.hbuf [1]),
|
||||
(info -> shared_network ? "/" : ""),
|
||||
(info -> shared_network ?
|
||||
@@ -224,7 +234,7 @@ static void lpf_gen_filter_setup (struct
|
||||
@@ -212,6 +222,8 @@ static void lpf_gen_filter_setup (struct
|
||||
void if_register_receive (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
- int val;
|
||||
+ int val, hlen;
|
||||
|
||||
+ int hlen;
|
||||
+
|
||||
/* Open a LPF device and hang it on this interface... */
|
||||
info -> rfdesc = if_register_lpf (info);
|
||||
@@ -236,7 +246,9 @@ void if_register_receive (info)
|
||||
if (errno != ENOPROTOOPT)
|
||||
|
||||
@@ -225,7 +237,9 @@ void if_register_receive (info)
|
||||
log_fatal ("Failed to set auxiliary packet data: %m");
|
||||
}
|
||||
}
|
||||
- }
|
||||
+ hlen = info -> hw_address.hlen;
|
||||
+ } else
|
||||
+ hlen = 9;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_TR_SUPPORT)
|
||||
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
|
||||
@@ -249,7 +261,7 @@ void if_register_receive (info)
|
||||
@@ -241,7 +255,7 @@ void if_register_receive (info)
|
||||
log_info ("Listening on LPF/%s/%s%s%s",
|
||||
info -> name,
|
||||
print_hw_addr (info -> hw_address.hbuf [0],
|
||||
@ -76,7 +76,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
&info -> hw_address.hbuf [1]),
|
||||
(info -> shared_network ? "/" : ""),
|
||||
(info -> shared_network ?
|
||||
@@ -259,6 +271,10 @@ void if_register_receive (info)
|
||||
@@ -251,6 +265,10 @@ void if_register_receive (info)
|
||||
void if_deregister_receive (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
@ -87,7 +87,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
/* for LPF this is simple, packet filters are removed when sockets
|
||||
are closed */
|
||||
close (info -> rfdesc);
|
||||
@@ -267,7 +283,7 @@ void if_deregister_receive (info)
|
||||
@@ -259,7 +277,7 @@ void if_deregister_receive (info)
|
||||
log_info ("Disabling input on LPF/%s/%s%s%s",
|
||||
info -> name,
|
||||
print_hw_addr (info -> hw_address.hbuf [0],
|
||||
@ -96,10 +96,10 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
|
||||
&info -> hw_address.hbuf [1]),
|
||||
(info -> shared_network ? "/" : ""),
|
||||
(info -> shared_network ?
|
||||
diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
--- dhcp-4.3.0/server/dhcp.c.IPoIB-log-id 2014-02-18 15:52:12.204570695 +0100
|
||||
+++ dhcp-4.3.0/server/dhcp.c 2014-02-18 15:52:12.299569383 +0100
|
||||
@@ -74,6 +74,42 @@ const int dhcp_type_name_max = ((sizeof
|
||||
diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c
|
||||
--- dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id 2015-02-08 17:37:46.980025024 +0100
|
||||
+++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:37:47.061023874 +0100
|
||||
@@ -77,6 +77,42 @@ const int dhcp_type_name_max = ((sizeof
|
||||
# define send_packet trace_packet_send
|
||||
#endif
|
||||
|
||||
@ -142,7 +142,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
void
|
||||
dhcp (struct packet *packet) {
|
||||
int ms_nulltp = 0;
|
||||
@@ -102,9 +138,7 @@ dhcp (struct packet *packet) {
|
||||
@@ -105,9 +141,7 @@ dhcp (struct packet *packet) {
|
||||
|
||||
log_info("%s from %s via %s: %s", s,
|
||||
(packet->raw->htype
|
||||
@ -153,7 +153,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
: "<no identifier>"),
|
||||
packet->raw->giaddr.s_addr
|
||||
? inet_ntoa(packet->raw->giaddr)
|
||||
@@ -286,9 +320,7 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
@@ -289,9 +323,7 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
*/
|
||||
snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s",
|
||||
(packet -> raw -> htype
|
||||
@ -164,7 +164,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
: (lease
|
||||
? print_hex_1(lease->uid_len, lease->uid, 60)
|
||||
: "<no identifier>")),
|
||||
@@ -478,9 +510,7 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
@@ -481,9 +513,7 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
"DHCPREQUEST for %s%s from %s %s%s%svia %s",
|
||||
piaddr (cip), smbuf,
|
||||
(packet -> raw -> htype
|
||||
@ -175,7 +175,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
: (lease
|
||||
? print_hex_1(lease->uid_len, lease->uid, 60)
|
||||
: "<no identifier>")),
|
||||
@@ -719,9 +749,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
@@ -724,9 +754,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
if ((oc = lookup_option (&dhcp_universe, packet -> options,
|
||||
DHO_DHCP_REQUESTED_ADDRESS))) {
|
||||
log_info ("DHCPRELEASE from %s specified requested-address.",
|
||||
@ -186,7 +186,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
}
|
||||
|
||||
oc = lookup_option (&dhcp_universe, packet -> options,
|
||||
@@ -795,9 +823,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
@@ -800,9 +828,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
"DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)",
|
||||
cstr,
|
||||
(packet -> raw -> htype
|
||||
@ -197,7 +197,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
: (lease
|
||||
? print_hex_1(lease->uid_len, lease->uid, 60)
|
||||
: "<no identifier>")),
|
||||
@@ -886,9 +912,7 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
@@ -891,9 +917,7 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
"DHCPDECLINE of %s from %s %s%s%svia %s",
|
||||
piaddr (cip),
|
||||
(packet -> raw -> htype
|
||||
@ -208,7 +208,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
: (lease
|
||||
? print_hex_1(lease->uid_len, lease->uid, 60)
|
||||
: "<no identifier>")),
|
||||
@@ -1541,8 +1565,7 @@ void dhcpinform (packet, ms_nulltp)
|
||||
@@ -1544,8 +1568,7 @@ void dhcpinform (packet, ms_nulltp)
|
||||
/* Report what we're sending. */
|
||||
snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip),
|
||||
(packet->raw->htype && packet->raw->hlen) ?
|
||||
@ -218,7 +218,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
"<no client hardware address>");
|
||||
log_info("%s %s", msgbuf, gip.len ? piaddr(gip) :
|
||||
packet->interface->name);
|
||||
@@ -1682,9 +1705,7 @@ void nak_lease (packet, cip)
|
||||
@@ -1711,9 +1734,7 @@ void nak_lease (packet, cip, network_gro
|
||||
/* Report what we're sending... */
|
||||
log_info ("DHCPNAK on %s to %s via %s",
|
||||
piaddr (*cip),
|
||||
@ -229,7 +229,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
packet -> raw -> giaddr.s_addr
|
||||
? inet_ntoa (packet -> raw -> giaddr)
|
||||
: packet -> interface -> name);
|
||||
@@ -3468,7 +3489,7 @@ void dhcp_reply (lease)
|
||||
@@ -3617,7 +3638,7 @@ void dhcp_reply (lease)
|
||||
? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER")
|
||||
: "BOOTREPLY"),
|
||||
piaddr (lease -> ip_addr),
|
||||
@ -238,7 +238,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
? print_hw_addr (lease -> hardware_addr.hbuf [0],
|
||||
lease -> hardware_addr.hlen - 1,
|
||||
&lease -> hardware_addr.hbuf [1])
|
||||
@@ -4022,10 +4043,7 @@ int find_lease (struct lease **lp,
|
||||
@@ -4171,10 +4192,7 @@ int find_lease (struct lease **lp,
|
||||
if (uid_lease) {
|
||||
if (uid_lease->binding_state == FTS_ACTIVE) {
|
||||
log_error ("client %s has duplicate%s on %s",
|
||||
@ -250,7 +250,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
|
||||
" leases",
|
||||
(ip_lease -> subnet ->
|
||||
shared_network -> name));
|
||||
@@ -4192,9 +4210,7 @@ int find_lease (struct lease **lp,
|
||||
@@ -4341,9 +4359,7 @@ int find_lease (struct lease **lp,
|
||||
log_error("uid lease %s for client %s is duplicate "
|
||||
"on %s",
|
||||
piaddr(uid_lease->ip_addr),
|
||||
|
@ -1,59 +0,0 @@
|
||||
From 1dceab6c75ce7bad309da9114d9e7f518291a955 Mon Sep 17 00:00:00 2001
|
||||
From: Shawn Routhier <sar@isc.org>
|
||||
Date: Wed, 10 Sep 2014 20:26:40 -0700
|
||||
Subject: [PATCH] [master] Remove unneeded defines for errors
|
||||
|
||||
As part of 4.2.0 we renamed a number of errors but continued
|
||||
to include the old ones in case somebody was building something
|
||||
using our libraries. This #ifdefs them and by defaults removes them
|
||||
from the compile.
|
||||
---
|
||||
diff --git a/includes/omapip/result.h b/includes/omapip/result.h
|
||||
index 3e4cf6a..ae5f7d6 100644
|
||||
--- a/includes/omapip/result.h
|
||||
+++ b/includes/omapip/result.h
|
||||
@@ -80,13 +80,13 @@
|
||||
|
||||
// Included for historical reasons, these should be removed as
|
||||
// soon as reasonable
|
||||
+#ifdef INCLUDE_OLD_DHCP_ISC_ERROR_CODES
|
||||
#define ISC_R_HOSTUNKNOWN DHCP_R_HOSTUNKNOWN
|
||||
#define ISC_R_VERSIONMISMATCH DHCP_R_VERSIONMISMATCH
|
||||
#define ISC_R_PROTOCOLERROR DHCP_R_PROTOCOLERROR
|
||||
#define ISC_R_INVALIDARG DHCP_R_INVALIDARG
|
||||
#define ISC_R_NOTYET DHCP_R_NOTYET
|
||||
#define ISC_R_UNCHANGED DHCP_R_UNCHANGED
|
||||
-#define ISC_R_MULTIPLE DHCP_R_MULTIPLE
|
||||
#define ISC_R_KEYCONFLICT DHCP_R_KEYCONFLICT
|
||||
#define ISC_R_BADPARSE DHCP_R_BADPARSE
|
||||
#define ISC_R_NOKEYS DHCP_R_NOKEYS
|
||||
@@ -113,6 +113,7 @@
|
||||
#define ISC_R_NOT_EQUAL DHCP_R_NOT_EQUAL
|
||||
#define ISC_R_CONNRESET DHCP_R_CONNRESET
|
||||
#define ISC_R_UNKNOWNATTRIBUTE DHCP_R_UNKNOWNATTRIBUTE
|
||||
+#endif
|
||||
|
||||
isc_result_t
|
||||
dhcp_result_register(void);
|
||||
diff --git a/includes/site.h b/includes/site.h
|
||||
index d87b309..19a2e11 100644
|
||||
--- a/includes/site.h
|
||||
+++ b/includes/site.h
|
||||
@@ -304,6 +304,14 @@
|
||||
removal of this define. Use at your own risk. */
|
||||
/* #define ENABLE_GENTLE_SHUTDOWN */
|
||||
|
||||
+/* Include old error codes. This is provided in case you
|
||||
+ are building an external program similar to omshell for
|
||||
+ which you need the ISC_R_* error codes. You should switch
|
||||
+ to DHCP_R_* error codes for those that have been defined
|
||||
+ (see includes/omapip/result.h). The extra defines and
|
||||
+ this option will be removed at some time. */
|
||||
+/* #define INCLUDE_OLD_DHCP_ISC_ERROR_CODES */
|
||||
+
|
||||
/* Include definitions for various options. In general these
|
||||
should be left as is, but if you have already defined one
|
||||
of these and prefer your definition you can comment the
|
||||
--
|
||||
2.1.0
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 4d5514f9579197a4200a52332a9047da1424b3ee Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Popelka <jpopelka@redhat.com>
|
||||
Date: Thu, 4 Sep 2014 16:03:38 +0200
|
||||
Subject: [PATCH] [dhclient -6] fix lease time exporting
|
||||
|
||||
addr->preferred_life and addr->max_life are u_int32_t
|
||||
so casting them to (int) causes problems with big values,
|
||||
for example with 'infinity' (0xffffffff), which is
|
||||
then represented as '-1' in dhclient-script.
|
||||
|
||||
Signed-off-by: Jiri Popelka <jpopelka@redhat.com>
|
||||
---
|
||||
client/dhc6.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/client/dhc6.c b/client/dhc6.c
|
||||
index c724b58..04a8fa0 100644
|
||||
--- a/client/dhc6.c
|
||||
+++ b/client/dhc6.c
|
||||
@@ -3862,10 +3862,10 @@ dhc6_marshall_values(const char *prefix, struct client_state *client,
|
||||
}
|
||||
client_envadd(client, prefix, "life_starts", "%d",
|
||||
(int)(addr->starts));
|
||||
- client_envadd(client, prefix, "preferred_life", "%d",
|
||||
- (int)(addr->preferred_life));
|
||||
- client_envadd(client, prefix, "max_life", "%d",
|
||||
- (int)(addr->max_life));
|
||||
+ client_envadd(client, prefix, "preferred_life", "%u",
|
||||
+ addr->preferred_life);
|
||||
+ client_envadd(client, prefix, "max_life", "%u",
|
||||
+ addr->max_life);
|
||||
}
|
||||
|
||||
/* ia fields. */
|
||||
--
|
||||
2.1.0
|
||||
|
@ -1,11 +0,0 @@
|
||||
diff -up dhcp-4.3.0a1/common/packet.c.ffff dhcp-4.3.0a1/common/packet.c
|
||||
--- dhcp-4.3.0a1/common/packet.c.ffff 2013-12-20 13:59:42.947165977 +0100
|
||||
+++ dhcp-4.3.0a1/common/packet.c 2013-12-20 13:59:43.137163326 +0100
|
||||
@@ -326,6 +326,7 @@ decode_udp_ip_header(struct interface_in
|
||||
len = ulen - sizeof(udp);
|
||||
|
||||
usum = udp.uh_sum;
|
||||
+ if (usum == 0xffff) usum = 0;
|
||||
udp.uh_sum = 0;
|
||||
|
||||
/* XXX: We have to pass &udp, because we have to zero the checksum
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
|
||||
--- dhcp-4.3.1b1/common/discover.c.AyFwkY 2014-07-02 19:58:38.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/common/discover.c 2014-07-10 17:58:21.588696480 +0200
|
||||
diff -up dhcp-4.3.2b1/common/discover.c.getifaddrs dhcp-4.3.2b1/common/discover.c
|
||||
--- dhcp-4.3.2b1/common/discover.c.getifaddrs 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/discover.c 2015-02-08 17:48:39.435651386 +0100
|
||||
@@ -373,391 +373,13 @@ end_iface_scan(struct iface_conf_list *i
|
||||
ifaces->sock = -1;
|
||||
}
|
||||
@ -179,7 +179,7 @@ diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
|
||||
- log_error("Interface name '%s' too long", name);
|
||||
- return 0;
|
||||
- }
|
||||
- strcpy(info->name, name);
|
||||
- strncpy(info->name, name, sizeof(info->name) - 1);
|
||||
-
|
||||
-#ifdef ALIAS_NAMED_PERMUTED
|
||||
- /* interface aliases look like "eth0:1" or "wlan1:3" */
|
||||
@ -196,7 +196,7 @@ diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
|
||||
-#endif
|
||||
-
|
||||
- memset(&tmp, 0, sizeof(tmp));
|
||||
- strcpy(tmp.ifr_name, name);
|
||||
- strncpy(tmp.ifr_name, name, sizeof(tmp.ifr_name) - 1);
|
||||
- if (ioctl(ifaces->sock, SIOCGIFADDR, &tmp) < 0) {
|
||||
- if (errno == EADDRNOTAVAIL) {
|
||||
- continue;
|
||||
@ -209,7 +209,7 @@ diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
|
||||
- memcpy(&info->addr, &tmp.ifr_addr, sizeof(tmp.ifr_addr));
|
||||
-
|
||||
- memset(&tmp, 0, sizeof(tmp));
|
||||
- strcpy(tmp.ifr_name, name);
|
||||
- strncpy(tmp.ifr_name, name, sizeof(tmp.ifr_name) - 1);
|
||||
- if (ioctl(ifaces->sock, SIOCGIFFLAGS, &tmp) < 0) {
|
||||
- log_error("Error getting interface flags for '%s'; %m",
|
||||
- name);
|
||||
@ -390,7 +390,7 @@ diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c
|
||||
* -----------
|
||||
*
|
||||
- * FreeBSD, NetBSD, OpenBSD, and OS X all have the getifaddrs()
|
||||
+ * FreeBSD, NetBSD, OpenBSD, OS X and Linux all have the getifaddrs()
|
||||
+ * FreeBSD, NetBSD, OpenBSD, OS X and Linux all have the getifaddrs()
|
||||
* function.
|
||||
*
|
||||
* The getifaddrs() man page describes the use.
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1/configure.ac.ldapgssapi dhcp-4.3.1/configure.ac
|
||||
--- dhcp-4.3.1/configure.ac.ldapgssapi 2014-11-04 16:08:35.017148053 +0100
|
||||
+++ dhcp-4.3.1/configure.ac 2014-11-04 16:21:09.696504777 +0100
|
||||
diff -up dhcp-4.3.2b1/configure.ac.ldapgssapi dhcp-4.3.2b1/configure.ac
|
||||
--- dhcp-4.3.2b1/configure.ac.ldapgssapi 2015-02-08 18:01:27.962621131 +0100
|
||||
+++ dhcp-4.3.2b1/configure.ac 2015-02-08 18:01:27.966621074 +0100
|
||||
@@ -671,19 +671,40 @@ AC_ARG_WITH(ldapcrypto,
|
||||
[ldapcrypto=$withval],
|
||||
[ldapcrypto=no])
|
||||
@ -47,9 +47,9 @@ diff -up dhcp-4.3.1/configure.ac.ldapgssapi dhcp-4.3.1/configure.ac
|
||||
fi
|
||||
fi
|
||||
|
||||
diff -up dhcp-4.3.1/includes/dhcpd.h.ldapgssapi dhcp-4.3.1/includes/dhcpd.h
|
||||
--- dhcp-4.3.1/includes/dhcpd.h.ldapgssapi 2014-11-04 16:08:34.952148968 +0100
|
||||
+++ dhcp-4.3.1/includes/dhcpd.h 2014-11-04 16:26:14.597202025 +0100
|
||||
diff -up dhcp-4.3.2b1/includes/dhcpd.h.ldapgssapi dhcp-4.3.2b1/includes/dhcpd.h
|
||||
--- dhcp-4.3.2b1/includes/dhcpd.h.ldapgssapi 2015-02-08 18:01:27.924621669 +0100
|
||||
+++ dhcp-4.3.2b1/includes/dhcpd.h 2015-02-08 18:03:03.145273551 +0100
|
||||
@@ -103,7 +103,14 @@ typedef time_t TIME;
|
||||
#if defined(LDAP_CONFIGURATION)
|
||||
# include <ldap.h>
|
||||
@ -66,23 +66,23 @@ diff -up dhcp-4.3.1/includes/dhcpd.h.ldapgssapi dhcp-4.3.1/includes/dhcpd.h
|
||||
|
||||
#if !defined (BYTE_NAME_HASH_SIZE)
|
||||
# define BYTE_NAME_HASH_SIZE 401 /* Default would be ridiculous. */
|
||||
@@ -733,6 +740,13 @@ struct lease_state {
|
||||
#define SV_LOG_THRESHOLD_LOW 83
|
||||
#define SV_LOG_THRESHOLD_HIGH 84
|
||||
@@ -743,6 +750,13 @@ struct lease_state {
|
||||
#define SV_SERVER_ID_CHECK 86
|
||||
#define SV_PREFIX_LEN_MODE 87
|
||||
|
||||
+#if defined(LDAP_CONFIGURATION)
|
||||
+#if defined (LDAP_USE_GSSAPI)
|
||||
+# define SV_LDAP_GSSAPI_KEYTAB 85
|
||||
+# define SV_LDAP_GSSAPI_PRINCIPAL 86
|
||||
+# define SV_LDAP_GSSAPI_KEYTAB 88
|
||||
+# define SV_LDAP_GSSAPI_PRINCIPAL 89
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
#if !defined (DEFAULT_PING_TIMEOUT)
|
||||
# define DEFAULT_PING_TIMEOUT 1
|
||||
#endif
|
||||
diff -up dhcp-4.3.1/server/krb_helper.c.ldapgssapi dhcp-4.3.1/server/krb_helper.c
|
||||
--- dhcp-4.3.1/server/krb_helper.c.ldapgssapi 2014-11-04 16:08:35.018148039 +0100
|
||||
+++ dhcp-4.3.1/server/krb_helper.c 2014-11-04 16:08:35.018148039 +0100
|
||||
diff -up dhcp-4.3.2b1/server/krb_helper.c.ldapgssapi dhcp-4.3.2b1/server/krb_helper.c
|
||||
--- dhcp-4.3.2b1/server/krb_helper.c.ldapgssapi 2015-02-08 18:01:27.967621060 +0100
|
||||
+++ dhcp-4.3.2b1/server/krb_helper.c 2015-02-08 18:01:27.967621060 +0100
|
||||
@@ -0,0 +1,220 @@
|
||||
+/* krb_helper.c
|
||||
+
|
||||
@ -304,9 +304,9 @@ diff -up dhcp-4.3.1/server/krb_helper.c.ldapgssapi dhcp-4.3.1/server/krb_helper.
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
diff -up dhcp-4.3.1/server/krb_helper.h.ldapgssapi dhcp-4.3.1/server/krb_helper.h
|
||||
--- dhcp-4.3.1/server/krb_helper.h.ldapgssapi 2014-11-04 16:08:35.019148025 +0100
|
||||
+++ dhcp-4.3.1/server/krb_helper.h 2014-11-04 16:08:35.018148039 +0100
|
||||
diff -up dhcp-4.3.2b1/server/krb_helper.h.ldapgssapi dhcp-4.3.2b1/server/krb_helper.h
|
||||
--- dhcp-4.3.2b1/server/krb_helper.h.ldapgssapi 2015-02-08 18:01:27.968621046 +0100
|
||||
+++ dhcp-4.3.2b1/server/krb_helper.h 2015-02-08 18:01:27.967621060 +0100
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* krb_helper.h
|
||||
+
|
||||
@ -348,9 +348,9 @@ diff -up dhcp-4.3.1/server/krb_helper.h.ldapgssapi dhcp-4.3.1/server/krb_helper.
|
||||
+ */
|
||||
+
|
||||
+isc_result_t krb5_get_tgt(const char *, const char *);
|
||||
diff -up dhcp-4.3.1/server/ldap.c.ldapgssapi dhcp-4.3.1/server/ldap.c
|
||||
--- dhcp-4.3.1/server/ldap.c.ldapgssapi 2014-11-04 16:08:34.989148447 +0100
|
||||
+++ dhcp-4.3.1/server/ldap.c 2014-11-04 16:08:35.019148025 +0100
|
||||
diff -up dhcp-4.3.2b1/server/ldap.c.ldapgssapi dhcp-4.3.2b1/server/ldap.c
|
||||
--- dhcp-4.3.2b1/server/ldap.c.ldapgssapi 2015-02-08 18:01:27.955621230 +0100
|
||||
+++ dhcp-4.3.2b1/server/ldap.c 2015-02-08 18:01:27.968621046 +0100
|
||||
@@ -39,10 +39,16 @@
|
||||
|
||||
#include "dhcpd.h"
|
||||
@ -592,9 +592,9 @@ diff -up dhcp-4.3.1/server/ldap.c.ldapgssapi dhcp-4.3.1/server/ldap.c
|
||||
}
|
||||
|
||||
#if defined (DEBUG_LDAP)
|
||||
diff -up dhcp-4.3.1/server/Makefile.am.ldapgssapi dhcp-4.3.1/server/Makefile.am
|
||||
--- dhcp-4.3.1/server/Makefile.am.ldapgssapi 2014-11-04 16:08:35.019148025 +0100
|
||||
+++ dhcp-4.3.1/server/Makefile.am 2014-11-04 16:37:24.616639706 +0100
|
||||
diff -up dhcp-4.3.2b1/server/Makefile.am.ldapgssapi dhcp-4.3.2b1/server/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/Makefile.am.ldapgssapi 2015-02-08 18:01:27.943621400 +0100
|
||||
+++ dhcp-4.3.2b1/server/Makefile.am 2015-02-08 18:01:27.968621046 +0100
|
||||
@@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
|
||||
sbin_PROGRAMS = dhcpd
|
||||
dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
|
||||
@ -604,9 +604,9 @@ diff -up dhcp-4.3.1/server/Makefile.am.ldapgssapi dhcp-4.3.1/server/Makefile.am
|
||||
|
||||
dhcpd_CFLAGS = $(LDAP_CFLAGS)
|
||||
dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.la ../dhcpctl/libdhcpctl.la \
|
||||
diff -up dhcp-4.3.1/server/stables.c.ldapgssapi dhcp-4.3.1/server/stables.c
|
||||
--- dhcp-4.3.1/server/stables.c.ldapgssapi 2014-11-04 16:08:35.020148010 +0100
|
||||
+++ dhcp-4.3.1/server/stables.c 2014-11-04 16:42:09.109552243 +0100
|
||||
diff -up dhcp-4.3.2b1/server/stables.c.ldapgssapi dhcp-4.3.2b1/server/stables.c
|
||||
--- dhcp-4.3.2b1/server/stables.c.ldapgssapi 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/stables.c 2015-02-08 18:01:27.969621032 +0100
|
||||
@@ -259,6 +259,10 @@ static struct option server_options[] =
|
||||
{ "ldap-tls-ciphers", "t", &server_universe, 76, 1 },
|
||||
{ "ldap-tls-randfile", "t", &server_universe, 77, 1 },
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c
|
||||
--- dhcp-4.3.1b1/client/dhclient.c.bmgpWV 2014-07-10 17:50:26.922402550 +0200
|
||||
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:53:43.629623477 +0200
|
||||
diff -up dhcp-4.3.2b1/client/dhclient.c.lpf-ib dhcp-4.3.2b1/client/dhclient.c
|
||||
--- dhcp-4.3.2b1/client/dhclient.c.lpf-ib 2015-02-08 17:19:42.107405843 +0100
|
||||
+++ dhcp-4.3.2b1/client/dhclient.c 2015-02-08 17:19:42.116405716 +0100
|
||||
@@ -114,6 +114,8 @@ static int check_domain_name_list(const
|
||||
static int check_option_values(struct universe *universe, unsigned int opt,
|
||||
const char *ptr, size_t len);
|
||||
@ -54,9 +54,9 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c
|
||||
/* Individual States:
|
||||
*
|
||||
* Each routine is called from the dhclient_state_machine() in one of
|
||||
diff -up dhcp-4.3.1b1/common/bpf.c.bmgpWV dhcp-4.3.1b1/common/bpf.c
|
||||
--- dhcp-4.3.1b1/common/bpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200
|
||||
+++ dhcp-4.3.1b1/common/bpf.c 2014-07-10 17:52:57.705272295 +0200
|
||||
diff -up dhcp-4.3.2b1/common/bpf.c.lpf-ib dhcp-4.3.2b1/common/bpf.c
|
||||
--- dhcp-4.3.2b1/common/bpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
|
||||
+++ dhcp-4.3.2b1/common/bpf.c 2015-02-08 17:19:42.116405716 +0100
|
||||
@@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
|
||||
BPF_STMT(BPF_RET+BPF_K, 0),
|
||||
};
|
||||
@ -102,12 +102,12 @@ diff -up dhcp-4.3.1b1/common/bpf.c.bmgpWV dhcp-4.3.1b1/common/bpf.c
|
||||
#if defined (HAVE_TR_SUPPORT)
|
||||
struct bpf_insn dhcp_bpf_tr_filter [] = {
|
||||
/* accept all token ring packets due to variable length header */
|
||||
diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
--- dhcp-4.3.1b1/common/lpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200
|
||||
+++ dhcp-4.3.1b1/common/lpf.c 2014-07-10 17:52:57.706272281 +0200
|
||||
@@ -46,6 +46,17 @@
|
||||
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
||||
diff -up dhcp-4.3.2b1/common/lpf.c.lpf-ib dhcp-4.3.2b1/common/lpf.c
|
||||
--- dhcp-4.3.2b1/common/lpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
|
||||
+++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:36:15.072329845 +0100
|
||||
@@ -47,6 +47,17 @@
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
+#include <ifaddrs.h>
|
||||
+
|
||||
@ -123,18 +123,14 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
#endif
|
||||
|
||||
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
|
||||
@@ -92,10 +103,21 @@ int if_register_lpf (info)
|
||||
@@ -80,10 +91,20 @@ int if_register_lpf (info)
|
||||
struct sockaddr common;
|
||||
} sa;
|
||||
} sa;
|
||||
struct ifreq ifr;
|
||||
+ int type;
|
||||
+ int protocol;
|
||||
|
||||
/* Make an LPF socket. */
|
||||
- if ((sock = socket(PF_PACKET, SOCK_RAW,
|
||||
- htons((short)ETH_P_ALL))) < 0) {
|
||||
+ get_hw_addr(info);
|
||||
+
|
||||
+ get_hw_addr(info);
|
||||
+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
|
||||
+ type = SOCK_DGRAM;
|
||||
+ protocol = ETHERTYPE_IP;
|
||||
@ -142,12 +138,15 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
+ type = SOCK_RAW;
|
||||
+ protocol = ETH_P_ALL;
|
||||
+ }
|
||||
+
|
||||
|
||||
/* Make an LPF socket. */
|
||||
- if ((sock = socket(PF_PACKET, SOCK_RAW,
|
||||
- htons((short)ETH_P_ALL))) < 0) {
|
||||
+ if ((sock = socket(PF_PACKET, type, htons((short)protocol))) < 0) {
|
||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||
errno == EAFNOSUPPORT || errno == EINVAL) {
|
||||
@@ -118,6 +140,7 @@ int if_register_lpf (info)
|
||||
@@ -106,6 +127,7 @@ int if_register_lpf (info)
|
||||
/* Bind to the interface name */
|
||||
memset (&sa, 0, sizeof sa);
|
||||
sa.ll.sll_family = AF_PACKET;
|
||||
@ -155,8 +154,8 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
sa.ll.sll_ifindex = ifr.ifr_ifindex;
|
||||
if (bind (sock, &sa.common, sizeof sa)) {
|
||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||
@@ -133,8 +156,6 @@ int if_register_lpf (info)
|
||||
log_fatal ("Bind socket to interface: %m");
|
||||
@@ -122,8 +144,6 @@ int if_register_lpf (info)
|
||||
|
||||
}
|
||||
|
||||
- get_hw_addr(info->name, &info->hw_address);
|
||||
@ -164,7 +163,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
return sock;
|
||||
}
|
||||
#endif /* USE_LPF_SEND || USE_LPF_RECEIVE */
|
||||
@@ -189,6 +210,8 @@ void if_deregister_send (info)
|
||||
@@ -178,6 +198,8 @@ void if_deregister_send (info)
|
||||
in bpf includes... */
|
||||
extern struct sock_filter dhcp_bpf_filter [];
|
||||
extern int dhcp_bpf_filter_len;
|
||||
@ -173,26 +172,25 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
|
||||
#if defined (HAVE_TR_SUPPORT)
|
||||
extern struct sock_filter dhcp_bpf_tr_filter [];
|
||||
@@ -206,11 +229,13 @@ void if_register_receive (info)
|
||||
/* Open a LPF device and hang it on this interface... */
|
||||
info -> rfdesc = if_register_lpf (info);
|
||||
|
||||
- val = 1;
|
||||
- if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val,
|
||||
- sizeof val) < 0) {
|
||||
- if (errno != ENOPROTOOPT)
|
||||
@@ -196,11 +218,12 @@ void if_register_receive (info)
|
||||
#ifdef PACKET_AUXDATA
|
||||
{
|
||||
int val = 1;
|
||||
-
|
||||
- if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
|
||||
- &val, sizeof(val)) < 0) {
|
||||
- if (errno != ENOPROTOOPT) {
|
||||
- log_fatal ("Failed to set auxiliary packet data: %m");
|
||||
+ if (info->hw_address.hbuf[0] != HTYPE_INFINIBAND) {
|
||||
+ val = 1;
|
||||
+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA,
|
||||
+ &val, sizeof val) < 0) {
|
||||
+ if (errno != ENOPROTOOPT)
|
||||
+ if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
|
||||
+ &val, sizeof(val)) < 0) {
|
||||
+ if (errno != ENOPROTOOPT) {
|
||||
+ log_fatal ("Failed to set auxiliary packet data: %m");
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
#if defined (HAVE_TR_SUPPORT)
|
||||
@@ -256,15 +281,28 @@ static void lpf_gen_filter_setup (info)
|
||||
}
|
||||
@@ -250,15 +273,28 @@ static void lpf_gen_filter_setup (info)
|
||||
|
||||
memset(&p, 0, sizeof(p));
|
||||
|
||||
@ -230,7 +228,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
|
||||
if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
|
||||
sizeof p) < 0) {
|
||||
@@ -321,6 +359,54 @@ static void lpf_tr_filter_setup (info)
|
||||
@@ -315,6 +351,54 @@ static void lpf_tr_filter_setup (info)
|
||||
#endif /* USE_LPF_RECEIVE */
|
||||
|
||||
#ifdef USE_LPF_SEND
|
||||
@ -285,7 +283,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
|
||||
struct interface_info *interface;
|
||||
struct packet *packet;
|
||||
@@ -341,6 +427,11 @@ ssize_t send_packet (interface, packet,
|
||||
@@ -335,6 +419,11 @@ ssize_t send_packet (interface, packet,
|
||||
return send_fallback (interface, packet, raw,
|
||||
len, from, to, hto);
|
||||
|
||||
@ -297,7 +295,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
if (hto == NULL && interface->anycast_mac_addr.hlen)
|
||||
hto = &interface->anycast_mac_addr;
|
||||
|
||||
@@ -362,6 +453,42 @@ ssize_t send_packet (interface, packet,
|
||||
@@ -355,6 +444,42 @@ ssize_t send_packet (interface, packet,
|
||||
#endif /* USE_LPF_SEND */
|
||||
|
||||
#ifdef USE_LPF_RECEIVE
|
||||
@ -340,18 +338,18 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
ssize_t receive_packet (interface, buf, len, from, hfrom)
|
||||
struct interface_info *interface;
|
||||
unsigned char *buf;
|
||||
@@ -388,6 +515,10 @@ ssize_t receive_packet (interface, buf,
|
||||
@@ -380,6 +505,10 @@ ssize_t receive_packet (interface, buf,
|
||||
.msg_controllen = sizeof(cmsgbuf),
|
||||
};
|
||||
struct cmsghdr *cmsg;
|
||||
|
||||
+ if (interface->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
|
||||
+ return receive_packet_ib(interface, buf, len, from, hfrom);
|
||||
+ }
|
||||
+
|
||||
length = recvmsg (interface -> rfdesc, &msg, 0);
|
||||
length = recvmsg (interface->rfdesc, &msg, 0);
|
||||
if (length <= 0)
|
||||
return length;
|
||||
@@ -469,11 +600,33 @@ void maybe_setup_fallback ()
|
||||
@@ -489,11 +618,33 @@ void maybe_setup_fallback ()
|
||||
#endif
|
||||
|
||||
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
|
||||
@ -388,7 +386,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
|
||||
if (strlen(name) >= sizeof(tmp.ifr_name)) {
|
||||
log_fatal("Device name too long: \"%s\"", name);
|
||||
@@ -487,16 +640,62 @@ get_hw_addr(const char *name, struct har
|
||||
@@ -507,16 +658,62 @@ get_hw_addr(const char *name, struct har
|
||||
memset(&tmp, 0, sizeof(tmp));
|
||||
strcpy(tmp.ifr_name, name);
|
||||
if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
|
||||
@ -454,7 +452,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
break;
|
||||
case ARPHRD_IEEE802:
|
||||
#ifdef ARPHRD_IEEE802_TR
|
||||
@@ -504,18 +703,48 @@ get_hw_addr(const char *name, struct har
|
||||
@@ -524,18 +721,48 @@ get_hw_addr(const char *name, struct har
|
||||
#endif /* ARPHRD_IEEE802_TR */
|
||||
hw->hlen = 7;
|
||||
hw->hbuf[0] = HTYPE_IEEE802;
|
||||
@ -507,7 +505,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
hw->hlen = 0;
|
||||
hw->hbuf[0] = HTYPE_RESERVED;
|
||||
/* 0xdeadbeef should never occur on the wire,
|
||||
@@ -528,10 +757,13 @@ get_hw_addr(const char *name, struct har
|
||||
@@ -548,10 +775,13 @@ get_hw_addr(const char *name, struct har
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
@ -524,10 +522,10 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
|
||||
+ freeifaddrs(ifaddrs);
|
||||
}
|
||||
#endif
|
||||
diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
|
||||
--- dhcp-4.3.1b1/common/socket.c.bmgpWV 2014-07-02 19:58:38.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/common/socket.c 2014-07-10 17:52:57.706272281 +0200
|
||||
@@ -322,7 +322,7 @@ void if_register_send (info)
|
||||
diff -up dhcp-4.3.2b1/common/socket.c.lpf-ib dhcp-4.3.2b1/common/socket.c
|
||||
--- dhcp-4.3.2b1/common/socket.c.lpf-ib 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/common/socket.c 2015-02-08 17:19:42.118405688 +0100
|
||||
@@ -328,7 +328,7 @@ void if_register_send (info)
|
||||
info->wfdesc = if_register_socket(info, AF_INET, 0, NULL);
|
||||
/* If this is a normal IPv4 address, get the hardware address. */
|
||||
if (strcmp(info->name, "fallback") != 0)
|
||||
@ -536,7 +534,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
|
||||
#if defined (USE_SOCKET_FALLBACK)
|
||||
/* Fallback only registers for send, but may need to receive as
|
||||
well. */
|
||||
@@ -385,7 +385,7 @@ void if_register_receive (info)
|
||||
@@ -391,7 +391,7 @@ void if_register_receive (info)
|
||||
#endif /* IP_PKTINFO... */
|
||||
/* If this is a normal IPv4 address, get the hardware address. */
|
||||
if (strcmp(info->name, "fallback") != 0)
|
||||
@ -545,7 +543,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
|
||||
|
||||
if (!quiet_interface_discovery)
|
||||
log_info ("Listening on Socket/%s%s%s",
|
||||
@@ -499,7 +499,7 @@ if_register6(struct interface_info *info
|
||||
@@ -505,7 +505,7 @@ if_register6(struct interface_info *info
|
||||
if (req_multi)
|
||||
if_register_multicast(info);
|
||||
|
||||
@ -554,7 +552,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
|
||||
|
||||
if (!quiet_interface_discovery) {
|
||||
if (info->shared_network != NULL) {
|
||||
@@ -555,7 +555,7 @@ if_register_linklocal6(struct interface_
|
||||
@@ -561,7 +561,7 @@ if_register_linklocal6(struct interface_
|
||||
info->rfdesc = sock;
|
||||
info->wfdesc = sock;
|
||||
|
||||
@ -563,10 +561,10 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
|
||||
|
||||
if (!quiet_interface_discovery) {
|
||||
if (info->shared_network != NULL) {
|
||||
diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h
|
||||
--- dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV 2014-07-10 17:50:26.923402536 +0200
|
||||
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:52:57.707272266 +0200
|
||||
@@ -1248,6 +1248,7 @@ struct interface_info {
|
||||
diff -up dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib dhcp-4.3.2b1/includes/dhcpd.h
|
||||
--- dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib 2015-02-08 17:19:42.108405829 +0100
|
||||
+++ dhcp-4.3.2b1/includes/dhcpd.h 2015-02-08 17:19:42.119405674 +0100
|
||||
@@ -1264,6 +1264,7 @@ struct interface_info {
|
||||
struct shared_network *shared_network;
|
||||
/* Networks connected to this interface. */
|
||||
struct hardware hw_address; /* Its physical address. */
|
||||
@ -574,7 +572,7 @@ diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h
|
||||
struct in_addr *addresses; /* Addresses associated with this
|
||||
* interface.
|
||||
*/
|
||||
@@ -2439,7 +2440,7 @@ void print_dns_status (int, struct dhcp_
|
||||
@@ -2475,7 +2476,7 @@ void print_dns_status (int, struct dhcp_
|
||||
#endif
|
||||
const char *print_time(TIME);
|
||||
|
||||
|
@ -1,40 +0,0 @@
|
||||
diff -up dhcp-4.3.0a1/server/confpars.c.range6 dhcp-4.3.0a1/server/confpars.c
|
||||
--- dhcp-4.3.0a1/server/confpars.c.range6 2013-12-20 13:53:44.899161427 +0100
|
||||
+++ dhcp-4.3.0a1/server/confpars.c 2013-12-20 13:56:31.595835977 +0100
|
||||
@@ -3925,6 +3925,18 @@ add_ipv6_pond_to_network(struct group *g
|
||||
return;
|
||||
}
|
||||
|
||||
+static void
|
||||
+check_addr_in_subnet(struct subnet *subnet, struct iaddr *addr) {
|
||||
+ char lowbuf [INET6_ADDRSTRLEN], netbuf [INET6_ADDRSTRLEN];
|
||||
+
|
||||
+ if (!addr_eq(subnet->net, subnet_number(*addr, subnet->netmask))) {
|
||||
+ strncpy(lowbuf, piaddr(*addr), INET6_ADDRSTRLEN);
|
||||
+ strncpy(netbuf, piaddr(subnet->net), INET6_ADDRSTRLEN);
|
||||
+ log_fatal("bad range6, address %s not in subnet6 %s/%d",
|
||||
+ lowbuf, netbuf, subnet->prefix_len);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
|
||||
/* address-range6-declaration :== ip-address6 ip-address6 SEMI
|
||||
| ip-address6 SLASH number SEMI
|
||||
@@ -3967,6 +3979,8 @@ parse_address_range6(struct parse *cfile
|
||||
memset(&net, 0, sizeof(net));
|
||||
net.cidrnet.lo_addr = lo;
|
||||
|
||||
+ check_addr_in_subnet(group->subnet, &lo);
|
||||
+
|
||||
/*
|
||||
* See if we we're using range or CIDR notation or TEMPORARY
|
||||
*/
|
||||
@@ -4036,6 +4050,8 @@ parse_address_range6(struct parse *cfile
|
||||
return;
|
||||
}
|
||||
|
||||
+ check_addr_in_subnet(group->subnet, &hi);
|
||||
+
|
||||
/*
|
||||
* Convert our range to a set of CIDR networks.
|
||||
*/
|
@ -1,39 +0,0 @@
|
||||
From f3d697a84e90f31a86874e334240ee1360a2fbf8 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Popelka <jpopelka@redhat.com>
|
||||
Date: Thu, 9 Oct 2014 18:57:22 +0200
|
||||
Subject: [PATCH] Work-around for hop-limit set to 1
|
||||
|
||||
---
|
||||
common/socket.c | 16 +++++++++++++++-
|
||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/common/socket.c b/common/socket.c
|
||||
index b8b44a6..93406ef 100644
|
||||
--- a/common/socket.c
|
||||
+++ b/common/socket.c
|
||||
@@ -301,7 +301,21 @@ if_register_socket(struct interface_info *info, int family,
|
||||
}
|
||||
|
||||
if ((family == AF_INET6) &&
|
||||
- ((info->flags & INTERFACE_UPSTREAM) != 0)) {
|
||||
+ /*
|
||||
+ * rfc3315 says that: "If relay agent relays messages to
|
||||
+ * All_DHCP_Servers multicast address or other multicast addresses,
|
||||
+ * it sets the Hop Limit field to 32."
|
||||
+ *
|
||||
+ * Because we use the same socket for all (upper/lower)
|
||||
+ * interfaces, the hop limit is the same for both/all.
|
||||
+ * There should be INTERFACE_UPSTREAM in the below condition, but
|
||||
+ * problem is when the interface which registers the socket is
|
||||
+ * lower interface, in that case the hop limit was not set
|
||||
+ * (i.e. set to 1) for both.
|
||||
+ * Because rfc doesn't say anything about hop limit for lower,
|
||||
+ * it'd be lesser evil to have 32 in both cases.
|
||||
+ */
|
||||
+ ((info->flags & INTERFACE_STREAMS) != 0)) {
|
||||
int hop_limit = 32;
|
||||
if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
|
||||
&hop_limit, sizeof(int)) < 0) {
|
||||
--
|
||||
2.1.0
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1b1/client/Makefile.am.brGmwh dhcp-4.3.1b1/client/Makefile.am
|
||||
--- dhcp-4.3.1b1/client/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:36:30.484250976 +0200
|
||||
diff -up dhcp-4.3.2b1/client/Makefile.am.SRPsDM dhcp-4.3.2b1/client/Makefile.am
|
||||
--- dhcp-4.3.2b1/client/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/client/Makefile.am 2015-02-08 15:13:29.091275576 +0100
|
||||
@@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c
|
||||
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
|
||||
scripts/netbsd scripts/nextstep scripts/openbsd \
|
||||
@ -12,10 +12,10 @@ diff -up dhcp-4.3.1b1/client/Makefile.am.brGmwh dhcp-4.3.1b1/client/Makefile.am
|
||||
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
||||
diff -up dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh dhcp-4.3.1b1/common/tests/Makefile.am
|
||||
--- dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh 2014-07-10 17:36:30.485250962 +0200
|
||||
+++ dhcp-4.3.1b1/common/tests/Makefile.am 2014-07-10 17:38:04.010924566 +0200
|
||||
@@ -13,21 +13,20 @@ ATF_TESTS += alloc_unittest dns_unittest
|
||||
diff -up dhcp-4.3.2b1/common/tests/Makefile.am.SRPsDM dhcp-4.3.2b1/common/tests/Makefile.am
|
||||
--- dhcp-4.3.2b1/common/tests/Makefile.am.SRPsDM 2015-02-08 15:13:29.092275562 +0100
|
||||
+++ dhcp-4.3.2b1/common/tests/Makefile.am 2015-02-08 15:14:29.583437471 +0100
|
||||
@@ -13,14 +13,14 @@ ATF_TESTS += alloc_unittest dns_unittest
|
||||
alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
alloc_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
alloc_unittest_LDADD += ../libdhcp.a \
|
||||
@ -34,7 +34,10 @@ diff -up dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh dhcp-4.3.1b1/common/tests/
|
||||
|
||||
misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
misc_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
misc_unittest_LDADD += ../libdhcp.a \
|
||||
@@ -31,9 +31,8 @@ misc_unittest_LDADD += ../libdhcp.a \
|
||||
ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
ns_name_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
ns_name_unittest_LDADD += ../libdhcp.a \
|
||||
- ../../omapip/libomapi.a ../../bind/lib/libirs.a \
|
||||
- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
|
||||
-
|
||||
@ -43,9 +46,9 @@ diff -up dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh dhcp-4.3.1b1/common/tests/
|
||||
check: $(ATF_TESTS)
|
||||
atf-run | atf-report
|
||||
|
||||
diff -up dhcp-4.3.1b1/configure.ac.brGmwh dhcp-4.3.1b1/configure.ac
|
||||
--- dhcp-4.3.1b1/configure.ac.brGmwh 2014-07-02 20:01:26.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:36:30.485250962 +0200
|
||||
diff -up dhcp-4.3.2b1/configure.ac.SRPsDM dhcp-4.3.2b1/configure.ac
|
||||
--- dhcp-4.3.2b1/configure.ac.SRPsDM 2015-01-29 14:59:59.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/configure.ac 2015-02-08 15:13:29.092275562 +0100
|
||||
@@ -562,20 +562,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
|
||||
|
||||
libbind=
|
||||
@ -98,9 +101,9 @@ diff -up dhcp-4.3.1b1/configure.ac.brGmwh dhcp-4.3.1b1/configure.ac
|
||||
|
||||
case "$host" in
|
||||
*-darwin*)
|
||||
diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh dhcp-4.3.1b1/dhcpctl/Makefile.am
|
||||
--- dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/dhcpctl/Makefile.am 2014-07-10 17:36:30.485250962 +0200
|
||||
diff -up dhcp-4.3.2b1/dhcpctl/Makefile.am.SRPsDM dhcp-4.3.2b1/dhcpctl/Makefile.am
|
||||
--- dhcp-4.3.2b1/dhcpctl/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/dhcpctl/Makefile.am 2015-02-08 15:13:29.092275562 +0100
|
||||
@@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS)
|
||||
|
||||
omshell_SOURCES = omshell.c
|
||||
@ -116,9 +119,9 @@ diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh dhcp-4.3.1b1/dhcpctl/Makefile.a
|
||||
- ../bind/lib/libirs.a ../bind/lib/libdns.a \
|
||||
- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
|
||||
+ $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
diff -up dhcp-4.3.1b1/Makefile.am.brGmwh dhcp-4.3.1b1/Makefile.am
|
||||
--- dhcp-4.3.1b1/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/Makefile.am 2014-07-10 17:36:30.484250976 +0200
|
||||
diff -up dhcp-4.3.2b1/Makefile.am.SRPsDM dhcp-4.3.2b1/Makefile.am
|
||||
--- dhcp-4.3.2b1/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/Makefile.am 2015-02-08 15:13:29.092275562 +0100
|
||||
@@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
|
||||
bind/Makefile bind/bind.tar.gz bind/version.tmp \
|
||||
common/tests/Atffile server/tests/Atffile
|
||||
@ -134,9 +137,9 @@ diff -up dhcp-4.3.1b1/Makefile.am.brGmwh dhcp-4.3.1b1/Makefile.am
|
||||
|
||||
nobase_include_HEADERS = dhcpctl/dhcpctl.h
|
||||
|
||||
diff -up dhcp-4.3.1b1/omapip/Makefile.am.brGmwh dhcp-4.3.1b1/omapip/Makefile.am
|
||||
--- dhcp-4.3.1b1/omapip/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/omapip/Makefile.am 2014-07-10 17:36:30.486250948 +0200
|
||||
diff -up dhcp-4.3.2b1/omapip/Makefile.am.SRPsDM dhcp-4.3.2b1/omapip/Makefile.am
|
||||
--- dhcp-4.3.2b1/omapip/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/omapip/Makefile.am 2015-02-08 15:13:29.093275549 +0100
|
||||
@@ -10,6 +10,5 @@ man_MANS = omapi.3
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
||||
@ -146,9 +149,9 @@ diff -up dhcp-4.3.1b1/omapip/Makefile.am.brGmwh dhcp-4.3.1b1/omapip/Makefile.am
|
||||
-
|
||||
+svtest_LDADD = libomapi.a \
|
||||
+ $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
diff -up dhcp-4.3.1b1/relay/Makefile.am.brGmwh dhcp-4.3.1b1/relay/Makefile.am
|
||||
--- dhcp-4.3.1b1/relay/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:36:30.486250948 +0200
|
||||
diff -up dhcp-4.3.2b1/relay/Makefile.am.SRPsDM dhcp-4.3.2b1/relay/Makefile.am
|
||||
--- dhcp-4.3.2b1/relay/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/relay/Makefile.am 2015-02-08 15:13:29.093275549 +0100
|
||||
@@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
|
||||
sbin_PROGRAMS = dhcrelay
|
||||
dhcrelay_SOURCES = dhcrelay.c
|
||||
@ -159,9 +162,9 @@ diff -up dhcp-4.3.1b1/relay/Makefile.am.brGmwh dhcp-4.3.1b1/relay/Makefile.am
|
||||
man_MANS = dhcrelay.8
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
||||
diff -up dhcp-4.3.1b1/server/Makefile.am.brGmwh dhcp-4.3.1b1/server/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 17:36:30.486250948 +0200
|
||||
diff -up dhcp-4.3.2b1/server/Makefile.am.SRPsDM dhcp-4.3.2b1/server/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/Makefile.am 2015-02-08 15:13:29.093275549 +0100
|
||||
@@ -13,10 +13,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
|
||||
dhcpv6.c mdb6.c ldap.c ldap_casa.c
|
||||
|
||||
@ -175,9 +178,9 @@ diff -up dhcp-4.3.1b1/server/Makefile.am.brGmwh dhcp-4.3.1b1/server/Makefile.am
|
||||
man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
|
||||
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh dhcp-4.3.1b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh 2014-07-02 19:58:40.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 17:36:30.486250948 +0200
|
||||
diff -up dhcp-4.3.2b1/server/tests/Makefile.am.SRPsDM dhcp-4.3.2b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/tests/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/tests/Makefile.am 2015-02-08 15:13:29.093275549 +0100
|
||||
@@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
|
||||
../ldap.c ../ldap_casa.c ../dhcpd.c
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1b1/client/Makefile.am.uCWMBl dhcp-4.3.1b1/client/Makefile.am
|
||||
--- dhcp-4.3.1b1/client/Makefile.am.uCWMBl 2014-07-10 17:36:30.484250976 +0200
|
||||
+++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:38:10.778828583 +0200
|
||||
diff -up dhcp-4.3.2b1/client/Makefile.am.SfzxjY dhcp-4.3.2b1/client/Makefile.am
|
||||
--- dhcp-4.3.2b1/client/Makefile.am.SfzxjY 2015-02-08 15:13:29.091275576 +0100
|
||||
+++ dhcp-4.3.2b1/client/Makefile.am 2015-02-08 15:14:40.970279718 +0100
|
||||
@@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
|
||||
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
|
||||
scripts/netbsd scripts/nextstep scripts/openbsd \
|
||||
@ -10,10 +10,10 @@ diff -up dhcp-4.3.1b1/client/Makefile.am.uCWMBl dhcp-4.3.1b1/client/Makefile.am
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
diff -up dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/common/tests/Makefile.am
|
||||
--- dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl 2014-07-10 17:38:10.779828569 +0200
|
||||
+++ dhcp-4.3.1b1/common/tests/Makefile.am 2014-07-10 17:38:21.355678580 +0200
|
||||
@@ -13,19 +13,19 @@ ATF_TESTS += alloc_unittest dns_unittest
|
||||
diff -up dhcp-4.3.2b1/common/tests/Makefile.am.SfzxjY dhcp-4.3.2b1/common/tests/Makefile.am
|
||||
--- dhcp-4.3.2b1/common/tests/Makefile.am.SfzxjY 2015-02-08 15:14:40.971279704 +0100
|
||||
+++ dhcp-4.3.2b1/common/tests/Makefile.am 2015-02-08 15:15:10.455871224 +0100
|
||||
@@ -13,12 +13,12 @@ ATF_TESTS += alloc_unittest dns_unittest
|
||||
alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
alloc_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
alloc_unittest_LDADD += ../libdhcp.a \
|
||||
@ -28,17 +28,18 @@ diff -up dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/common/tests/
|
||||
../../omapip/libomapi.a \
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
|
||||
misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
misc_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
misc_unittest_LDADD += ../libdhcp.a \
|
||||
@@ -31,7 +31,7 @@ misc_unittest_LDADD += ../libdhcp.a \
|
||||
ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c
|
||||
ns_name_unittest_LDADD = $(ATF_LDFLAGS)
|
||||
ns_name_unittest_LDADD += ../libdhcp.a \
|
||||
- ../../omapip/libomapi.a \
|
||||
+ ../../omapip/libomapi.la \
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
check: $(ATF_TESTS)
|
||||
atf-run | atf-report
|
||||
diff -up dhcp-4.3.1b1/configure.ac.uCWMBl dhcp-4.3.1b1/configure.ac
|
||||
--- dhcp-4.3.1b1/configure.ac.uCWMBl 2014-07-10 17:38:10.766828753 +0200
|
||||
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:38:10.779828569 +0200
|
||||
diff -up dhcp-4.3.2b1/configure.ac.SfzxjY dhcp-4.3.2b1/configure.ac
|
||||
--- dhcp-4.3.2b1/configure.ac.SfzxjY 2015-02-08 15:14:40.951279981 +0100
|
||||
+++ dhcp-4.3.2b1/configure.ac 2015-02-08 15:14:40.971279704 +0100
|
||||
@@ -39,7 +39,8 @@ fi
|
||||
# Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
@ -49,9 +50,9 @@ diff -up dhcp-4.3.1b1/configure.ac.uCWMBl dhcp-4.3.1b1/configure.ac
|
||||
AC_CONFIG_HEADERS([includes/config.h])
|
||||
|
||||
# we sometimes need to know byte order for building packets
|
||||
diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl dhcp-4.3.1b1/dhcpctl/Makefile.am
|
||||
--- dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl 2014-07-10 17:36:30.485250962 +0200
|
||||
+++ dhcp-4.3.1b1/dhcpctl/Makefile.am 2014-07-10 17:38:10.780828554 +0200
|
||||
diff -up dhcp-4.3.2b1/dhcpctl/Makefile.am.SfzxjY dhcp-4.3.2b1/dhcpctl/Makefile.am
|
||||
--- dhcp-4.3.2b1/dhcpctl/Makefile.am.SfzxjY 2015-02-08 15:13:29.092275562 +0100
|
||||
+++ dhcp-4.3.2b1/dhcpctl/Makefile.am 2015-02-08 15:14:40.971279704 +0100
|
||||
@@ -1,14 +1,14 @@
|
||||
bin_PROGRAMS = omshell
|
||||
-lib_LIBRARIES = libdhcpctl.a
|
||||
@ -71,9 +72,9 @@ diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl dhcp-4.3.1b1/dhcpctl/Makefile.a
|
||||
-cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
|
||||
+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
diff -up dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl dhcp-4.3.1b1/omapip/Makefile.am
|
||||
--- dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200
|
||||
+++ dhcp-4.3.1b1/omapip/Makefile.am 2014-07-10 17:38:10.780828554 +0200
|
||||
diff -up dhcp-4.3.2b1/omapip/Makefile.am.SfzxjY dhcp-4.3.2b1/omapip/Makefile.am
|
||||
--- dhcp-4.3.2b1/omapip/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
|
||||
+++ dhcp-4.3.2b1/omapip/Makefile.am 2015-02-08 15:14:40.972279690 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
-lib_LIBRARIES = libomapi.a
|
||||
+lib_LTLIBRARIES = libomapi.la
|
||||
@ -91,9 +92,9 @@ diff -up dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl dhcp-4.3.1b1/omapip/Makefile.am
|
||||
-svtest_LDADD = libomapi.a \
|
||||
+svtest_LDADD = libomapi.la \
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
diff -up dhcp-4.3.1b1/relay/Makefile.am.uCWMBl dhcp-4.3.1b1/relay/Makefile.am
|
||||
--- dhcp-4.3.1b1/relay/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200
|
||||
+++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:38:10.780828554 +0200
|
||||
diff -up dhcp-4.3.2b1/relay/Makefile.am.SfzxjY dhcp-4.3.2b1/relay/Makefile.am
|
||||
--- dhcp-4.3.2b1/relay/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
|
||||
+++ dhcp-4.3.2b1/relay/Makefile.am 2015-02-08 15:14:40.972279690 +0100
|
||||
@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
|
||||
|
||||
sbin_PROGRAMS = dhcrelay
|
||||
@ -103,9 +104,9 @@ diff -up dhcp-4.3.1b1/relay/Makefile.am.uCWMBl dhcp-4.3.1b1/relay/Makefile.am
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
man_MANS = dhcrelay.8
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
diff -up dhcp-4.3.1b1/server/Makefile.am.uCWMBl dhcp-4.3.1b1/server/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200
|
||||
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 17:38:10.780828554 +0200
|
||||
diff -up dhcp-4.3.2b1/server/Makefile.am.SfzxjY dhcp-4.3.2b1/server/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
|
||||
+++ dhcp-4.3.2b1/server/Makefile.am 2015-02-08 15:14:40.972279690 +0100
|
||||
@@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
|
||||
dhcpv6.c mdb6.c ldap.c ldap_casa.c
|
||||
|
||||
@ -115,9 +116,9 @@ diff -up dhcp-4.3.1b1/server/Makefile.am.uCWMBl dhcp-4.3.1b1/server/Makefile.am
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200
|
||||
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 17:38:10.780828554 +0200
|
||||
diff -up dhcp-4.3.2b1/server/tests/Makefile.am.SfzxjY dhcp-4.3.2b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/tests/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
|
||||
+++ dhcp-4.3.2b1/server/tests/Makefile.am 2015-02-08 15:14:40.972279690 +0100
|
||||
@@ -17,8 +17,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
|
||||
../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c \
|
||||
../ldap.c ../ldap_casa.c ../dhcpd.c
|
||||
|
@ -1,16 +0,0 @@
|
||||
diff -up dhcp-4.3.1/common/lpf.c.vlan dhcp-4.3.1/common/lpf.c
|
||||
--- dhcp-4.3.1/common/lpf.c.vlan 2014-10-08 19:06:17.963118201 +0200
|
||||
+++ dhcp-4.3.1/common/lpf.c 2014-10-08 19:07:17.086276536 +0200
|
||||
@@ -543,6 +543,12 @@ ssize_t receive_packet (interface, buf,
|
||||
if (cmsg->cmsg_level == SOL_PACKET &&
|
||||
cmsg->cmsg_type == PACKET_AUXDATA) {
|
||||
struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg);
|
||||
+ /* if listening on plain interface we can see vlan traffic as well.
|
||||
+ skip vlan traffic if tagged. If we are listening on vlan interfaces
|
||||
+ as well we will see the traffic again but without the tag
|
||||
+ */
|
||||
+ if (aux->tp_vlan_tci != 0)
|
||||
+ return 0;
|
||||
nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY;
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac
|
||||
--- dhcp-4.3.1b1/configure.ac.systemtap 2014-07-10 18:31:05.966880404 +0200
|
||||
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 18:31:06.027879541 +0200
|
||||
diff -up dhcp-4.3.2b1/configure.ac.systemtap dhcp-4.3.2b1/configure.ac
|
||||
--- dhcp-4.3.2b1/configure.ac.systemtap 2015-02-08 17:42:45.701754886 +0100
|
||||
+++ dhcp-4.3.2b1/configure.ac 2015-02-08 17:42:45.768753919 +0100
|
||||
@@ -534,6 +534,35 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
@ -45,9 +45,9 @@ diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am
|
||||
--- dhcp-4.3.1b1/Makefile.am.systemtap 2014-07-10 18:31:05.891881465 +0200
|
||||
+++ dhcp-4.3.1b1/Makefile.am 2014-07-10 18:31:06.027879541 +0200
|
||||
diff -up dhcp-4.3.2b1/Makefile.am.systemtap dhcp-4.3.2b1/Makefile.am
|
||||
--- dhcp-4.3.2b1/Makefile.am.systemtap 2015-02-08 17:42:45.632755881 +0100
|
||||
+++ dhcp-4.3.2b1/Makefile.am 2015-02-08 17:42:45.769753905 +0100
|
||||
@@ -33,5 +33,8 @@ endif
|
||||
|
||||
SUBDIRS += includes tests common omapip client dhcpctl relay server
|
||||
@ -57,9 +57,9 @@ diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am
|
||||
+
|
||||
nobase_include_HEADERS = dhcpctl/dhcpctl.h
|
||||
|
||||
diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
--- dhcp-4.3.1b1/server/dhcp.c.systemtap 2014-07-10 18:31:06.016879697 +0200
|
||||
+++ dhcp-4.3.1b1/server/dhcp.c 2014-07-10 18:36:07.392617942 +0200
|
||||
diff -up dhcp-4.3.2b1/server/dhcp.c.systemtap dhcp-4.3.2b1/server/dhcp.c
|
||||
--- dhcp-4.3.2b1/server/dhcp.c.systemtap 2015-02-08 17:42:45.750754179 +0100
|
||||
+++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:46:12.956764712 +0100
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
@ -69,7 +69,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
static void commit_leases_ackout(void *foo);
|
||||
static void maybe_return_agent_options(struct packet *packet,
|
||||
struct option_state *options);
|
||||
@@ -303,6 +303,8 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
@@ -306,6 +306,8 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
dhcp_failover_state_t *peer;
|
||||
#endif
|
||||
|
||||
@ -78,7 +78,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
find_lease (&lease, packet, packet -> shared_network,
|
||||
0, &peer_has_leases, (struct lease *)0, MDL);
|
||||
|
||||
@@ -425,6 +427,8 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
@@ -428,6 +430,8 @@ void dhcpdiscover (packet, ms_nulltp)
|
||||
out:
|
||||
if (lease)
|
||||
lease_dereference (&lease, MDL);
|
||||
@ -87,7 +87,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
}
|
||||
|
||||
void dhcprequest (packet, ms_nulltp, ip_lease)
|
||||
@@ -447,6 +451,8 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
@@ -450,6 +454,8 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
#endif
|
||||
int have_requested_addr = 0;
|
||||
|
||||
@ -96,7 +96,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
oc = lookup_option (&dhcp_universe, packet -> options,
|
||||
DHO_DHCP_REQUESTED_ADDRESS);
|
||||
memset (&data, 0, sizeof data);
|
||||
@@ -724,6 +730,9 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
@@ -729,6 +735,9 @@ void dhcprequest (packet, ms_nulltp, ip_
|
||||
log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip));
|
||||
|
||||
out:
|
||||
@ -106,7 +106,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
if (subnet)
|
||||
subnet_dereference (&subnet, MDL);
|
||||
if (lease)
|
||||
@@ -742,6 +751,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
@@ -747,6 +756,7 @@ void dhcprelease (packet, ms_nulltp)
|
||||
const char *s;
|
||||
char msgbuf [1024], cstr[16]; /* XXX */
|
||||
|
||||
@ -114,7 +114,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
|
||||
/* DHCPRELEASE must not specify address in requested-address
|
||||
option, but old protocol specs weren't explicit about this,
|
||||
@@ -862,6 +872,8 @@ void dhcprelease (packet, ms_nulltp)
|
||||
@@ -867,6 +877,8 @@ void dhcprelease (packet, ms_nulltp)
|
||||
#endif
|
||||
if (lease)
|
||||
lease_dereference (&lease, MDL);
|
||||
@ -123,7 +123,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
}
|
||||
|
||||
void dhcpdecline (packet, ms_nulltp)
|
||||
@@ -879,6 +891,8 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
@@ -884,6 +896,8 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
struct option_cache *oc;
|
||||
struct data_string data;
|
||||
|
||||
@ -132,7 +132,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
/* DHCPDECLINE must specify address. */
|
||||
if (!(oc = lookup_option (&dhcp_universe, packet -> options,
|
||||
DHO_DHCP_REQUESTED_ADDRESS)))
|
||||
@@ -985,6 +999,8 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
@@ -990,6 +1004,8 @@ void dhcpdecline (packet, ms_nulltp)
|
||||
option_state_dereference (&options, MDL);
|
||||
if (lease)
|
||||
lease_dereference (&lease, MDL);
|
||||
@ -141,7 +141,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
}
|
||||
|
||||
void dhcpinform (packet, ms_nulltp)
|
||||
@@ -1012,6 +1028,8 @@ void dhcpinform (packet, ms_nulltp)
|
||||
@@ -1017,6 +1033,8 @@ void dhcpinform (packet, ms_nulltp)
|
||||
int h_w_fixed_addr = 0;
|
||||
#endif
|
||||
|
||||
@ -150,7 +150,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
/* The client should set ciaddr to its IP address, but apparently
|
||||
it's common for clients not to do this, so we'll use their IP
|
||||
source address if they didn't set ciaddr. */
|
||||
@@ -1584,6 +1602,8 @@ void dhcpinform (packet, ms_nulltp)
|
||||
@@ -1587,6 +1605,8 @@ void dhcpinform (packet, ms_nulltp)
|
||||
|
||||
if (subnet)
|
||||
subnet_dereference (&subnet, MDL);
|
||||
@ -158,25 +158,27 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
+ TRACE(DHCPD_INFORM_DONE());
|
||||
}
|
||||
|
||||
void nak_lease (packet, cip)
|
||||
@@ -1600,6 +1620,8 @@ void nak_lease (packet, cip)
|
||||
struct option_state *options = (struct option_state *)0;
|
||||
/*!
|
||||
@@ -1617,6 +1637,8 @@ void nak_lease (packet, cip, network_gro
|
||||
struct option_cache *oc = (struct option_cache *)0;
|
||||
struct option_state *eval_options = NULL;
|
||||
|
||||
+ TRACE(DHCPD_NAK_LEASE_START());
|
||||
+
|
||||
option_state_allocate (&options, MDL);
|
||||
memset (&outgoing, 0, sizeof outgoing);
|
||||
memset (&raw, 0, sizeof raw);
|
||||
@@ -1764,6 +1786,7 @@ void nak_lease (packet, cip)
|
||||
@@ -1792,7 +1814,8 @@ void nak_lease (packet, cip, network_gro
|
||||
"interface.", MDL, outgoing.packet_length,
|
||||
packet->interface->name);
|
||||
}
|
||||
|
||||
+ TRACE(DHCPD_NAK_LEASE_DONE());
|
||||
-
|
||||
+
|
||||
+ TRACE(DHCPD_NAK_LEASE_DONE());
|
||||
}
|
||||
|
||||
void check_pool_threshold (packet, lease, state)
|
||||
@@ -1899,6 +1922,8 @@ void ack_lease (packet, lease, offer, wh
|
||||
/*!
|
||||
@@ -1997,6 +2020,8 @@ void ack_lease (packet, lease, offer, wh
|
||||
if (lease -> state)
|
||||
return;
|
||||
|
||||
@ -185,7 +187,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
/* Save original cltt for comparison later. */
|
||||
lease_cltt = lease->cltt;
|
||||
|
||||
@@ -3340,6 +3365,8 @@ void ack_lease (packet, lease, offer, wh
|
||||
@@ -3389,6 +3414,8 @@ void ack_lease (packet, lease, offer, wh
|
||||
#endif
|
||||
dhcp_reply(lease);
|
||||
}
|
||||
@ -194,7 +196,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3492,6 +3519,8 @@ void dhcp_reply (lease)
|
||||
@@ -3541,6 +3568,8 @@ void dhcp_reply (lease)
|
||||
if (!state)
|
||||
log_fatal ("dhcp_reply was supplied lease with no state!");
|
||||
|
||||
@ -203,7 +205,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
/* Compose a response for the client... */
|
||||
memset (&raw, 0, sizeof raw);
|
||||
memset (&d1, 0, sizeof d1);
|
||||
@@ -3713,6 +3742,8 @@ void dhcp_reply (lease)
|
||||
@@ -3762,6 +3791,8 @@ void dhcp_reply (lease)
|
||||
|
||||
free_lease_state (state, MDL);
|
||||
lease -> state = (struct lease_state *)0;
|
||||
@ -212,7 +214,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
}
|
||||
|
||||
int find_lease (struct lease **lp,
|
||||
@@ -3735,6 +3766,8 @@ int find_lease (struct lease **lp,
|
||||
@@ -3784,6 +3815,8 @@ int find_lease (struct lease **lp,
|
||||
struct data_string client_identifier;
|
||||
struct hardware h;
|
||||
|
||||
@ -221,7 +223,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
#if defined(FAILOVER_PROTOCOL)
|
||||
/* Quick check to see if the peer has leases. */
|
||||
if (peer_has_leases) {
|
||||
@@ -4457,6 +4490,9 @@ int find_lease (struct lease **lp,
|
||||
@@ -4506,6 +4539,9 @@ int find_lease (struct lease **lp,
|
||||
#if defined (DEBUG_FIND_LEASE)
|
||||
log_info ("Not returning a lease.");
|
||||
#endif
|
||||
@ -231,9 +233,9 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
|
||||
--- dhcp-4.3.1b1/server/dhcpd.c.systemtap 2014-07-10 18:31:06.006879838 +0200
|
||||
+++ dhcp-4.3.1b1/server/dhcpd.c 2014-07-10 18:31:06.030879499 +0200
|
||||
diff -up dhcp-4.3.2b1/server/dhcpd.c.systemtap dhcp-4.3.2b1/server/dhcpd.c
|
||||
--- dhcp-4.3.2b1/server/dhcpd.c.systemtap 2015-02-08 17:42:45.740754323 +0100
|
||||
+++ dhcp-4.3.2b1/server/dhcpd.c 2015-02-08 17:42:45.772753862 +0100
|
||||
@@ -52,6 +52,8 @@ static const char url [] =
|
||||
# undef group
|
||||
#endif /* PARANOIA */
|
||||
@ -243,7 +245,7 @@ diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
|
||||
#ifndef UNIT_TEST
|
||||
static void usage(void);
|
||||
#endif
|
||||
@@ -801,6 +803,8 @@ main(int argc, char **argv) {
|
||||
@@ -812,6 +814,8 @@ main(int argc, char **argv) {
|
||||
/* Log that we are about to start working */
|
||||
log_info("Server starting service.");
|
||||
|
||||
@ -252,9 +254,9 @@ diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
|
||||
/*
|
||||
* Receive packets and dispatch them...
|
||||
* dispatch() will never return.
|
||||
diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
--- dhcp-4.3.1b1/server/dhcpv6.c.systemtap 2014-07-10 18:31:05.998879951 +0200
|
||||
+++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 18:31:06.032879471 +0200
|
||||
diff -up dhcp-4.3.2b1/server/dhcpv6.c.systemtap dhcp-4.3.2b1/server/dhcpv6.c
|
||||
--- dhcp-4.3.2b1/server/dhcpv6.c.systemtap 2015-02-08 17:42:45.730754468 +0100
|
||||
+++ dhcp-4.3.2b1/server/dhcpv6.c 2015-02-08 17:42:45.774753833 +0100
|
||||
@@ -17,6 +17,7 @@
|
||||
/*! \file server/dhcpv6.c */
|
||||
|
||||
@ -263,7 +265,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
|
||||
#ifdef DHCPv6
|
||||
|
||||
@@ -4829,6 +4830,8 @@ static void
|
||||
@@ -4999,6 +5000,8 @@ static void
|
||||
dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) {
|
||||
struct data_string client_id;
|
||||
|
||||
@ -272,7 +274,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate our input.
|
||||
*/
|
||||
@@ -4842,6 +4845,8 @@ dhcpv6_solicit(struct data_string *reply
|
||||
@@ -5012,6 +5015,8 @@ dhcpv6_solicit(struct data_string *reply
|
||||
* Clean up.
|
||||
*/
|
||||
data_string_forget(&client_id, MDL);
|
||||
@ -281,7 +283,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4855,6 +4860,8 @@ dhcpv6_request(struct data_string *reply
|
||||
@@ -5025,6 +5030,8 @@ dhcpv6_request(struct data_string *reply
|
||||
struct data_string client_id;
|
||||
struct data_string server_id;
|
||||
|
||||
@ -290,7 +292,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate our input.
|
||||
*/
|
||||
@@ -4872,6 +4879,8 @@ dhcpv6_request(struct data_string *reply
|
||||
@@ -5042,6 +5049,8 @@ dhcpv6_request(struct data_string *reply
|
||||
*/
|
||||
data_string_forget(&client_id, MDL);
|
||||
data_string_forget(&server_id, MDL);
|
||||
@ -299,7 +301,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/* Find a DHCPv6 packet's shared network from hints in the packet.
|
||||
@@ -4984,6 +4993,8 @@ dhcpv6_confirm(struct data_string *reply
|
||||
@@ -5154,6 +5163,8 @@ dhcpv6_confirm(struct data_string *reply
|
||||
struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
|
||||
int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options));
|
||||
|
||||
@ -308,7 +310,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Basic client message validation.
|
||||
*/
|
||||
@@ -5170,6 +5181,8 @@ exit:
|
||||
@@ -5340,6 +5351,8 @@ exit:
|
||||
option_state_dereference(&cli_enc_opt_state, MDL);
|
||||
if (opt_state != NULL)
|
||||
option_state_dereference(&opt_state, MDL);
|
||||
@ -317,7 +319,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -5184,6 +5197,8 @@ dhcpv6_renew(struct data_string *reply,
|
||||
@@ -5354,6 +5367,8 @@ dhcpv6_renew(struct data_string *reply,
|
||||
struct data_string client_id;
|
||||
struct data_string server_id;
|
||||
|
||||
@ -326,7 +328,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate the request.
|
||||
*/
|
||||
@@ -5201,6 +5216,8 @@ dhcpv6_renew(struct data_string *reply,
|
||||
@@ -5371,6 +5386,8 @@ dhcpv6_renew(struct data_string *reply,
|
||||
*/
|
||||
data_string_forget(&server_id, MDL);
|
||||
data_string_forget(&client_id, MDL);
|
||||
@ -335,7 +337,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -5214,6 +5231,8 @@ static void
|
||||
@@ -5384,6 +5401,8 @@ static void
|
||||
dhcpv6_rebind(struct data_string *reply, struct packet *packet) {
|
||||
struct data_string client_id;
|
||||
|
||||
@ -344,7 +346,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
if (!valid_client_msg(packet, &client_id)) {
|
||||
return;
|
||||
}
|
||||
@@ -5221,6 +5240,8 @@ dhcpv6_rebind(struct data_string *reply,
|
||||
@@ -5391,6 +5410,8 @@ dhcpv6_rebind(struct data_string *reply,
|
||||
lease_to_client(reply, packet, &client_id, NULL);
|
||||
|
||||
data_string_forget(&client_id, MDL);
|
||||
@ -353,7 +355,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -5665,6 +5686,8 @@ dhcpv6_decline(struct data_string *reply
|
||||
@@ -5835,6 +5856,8 @@ dhcpv6_decline(struct data_string *reply
|
||||
struct data_string client_id;
|
||||
struct data_string server_id;
|
||||
|
||||
@ -362,7 +364,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate our input.
|
||||
*/
|
||||
@@ -5685,6 +5708,8 @@ dhcpv6_decline(struct data_string *reply
|
||||
@@ -5855,6 +5878,8 @@ dhcpv6_decline(struct data_string *reply
|
||||
|
||||
data_string_forget(&server_id, MDL);
|
||||
data_string_forget(&client_id, MDL);
|
||||
@ -371,7 +373,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -6133,6 +6158,8 @@ dhcpv6_release(struct data_string *reply
|
||||
@@ -6303,6 +6328,8 @@ dhcpv6_release(struct data_string *reply
|
||||
struct data_string client_id;
|
||||
struct data_string server_id;
|
||||
|
||||
@ -380,7 +382,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate our input.
|
||||
*/
|
||||
@@ -6154,6 +6181,8 @@ dhcpv6_release(struct data_string *reply
|
||||
@@ -6324,6 +6351,8 @@ dhcpv6_release(struct data_string *reply
|
||||
|
||||
data_string_forget(&server_id, MDL);
|
||||
data_string_forget(&client_id, MDL);
|
||||
@ -389,7 +391,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -6166,6 +6195,8 @@ dhcpv6_information_request(struct data_s
|
||||
@@ -6336,6 +6365,8 @@ dhcpv6_information_request(struct data_s
|
||||
struct data_string client_id;
|
||||
struct data_string server_id;
|
||||
|
||||
@ -398,7 +400,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Validate our input.
|
||||
*/
|
||||
@@ -6197,6 +6228,8 @@ dhcpv6_information_request(struct data_s
|
||||
@@ -6367,6 +6398,8 @@ dhcpv6_information_request(struct data_s
|
||||
data_string_forget(&client_id, MDL);
|
||||
}
|
||||
data_string_forget(&server_id, MDL);
|
||||
@ -407,7 +409,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -6225,6 +6258,8 @@ dhcpv6_relay_forw(struct data_string *re
|
||||
@@ -6395,6 +6428,8 @@ dhcpv6_relay_forw(struct data_string *re
|
||||
struct dhcpv6_relay_packet *reply;
|
||||
int reply_ofs;
|
||||
|
||||
@ -416,7 +418,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
/*
|
||||
* Initialize variables for early exit.
|
||||
*/
|
||||
@@ -6484,6 +6519,8 @@ exit:
|
||||
@@ -6654,6 +6689,8 @@ exit:
|
||||
if (enc_packet != NULL) {
|
||||
packet_dereference(&enc_packet, MDL);
|
||||
}
|
||||
@ -425,9 +427,9 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
|
||||
}
|
||||
|
||||
static void
|
||||
diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
--- dhcp-4.3.1b1/server/failover.c.systemtap 2014-07-02 19:58:40.000000000 +0200
|
||||
+++ dhcp-4.3.1b1/server/failover.c 2014-07-10 18:31:06.034879442 +0200
|
||||
diff -up dhcp-4.3.2b1/server/failover.c.systemtap dhcp-4.3.2b1/server/failover.c
|
||||
--- dhcp-4.3.2b1/server/failover.c.systemtap 2015-01-29 14:52:57.000000000 +0100
|
||||
+++ dhcp-4.3.2b1/server/failover.c 2015-02-08 17:42:45.775753818 +0100
|
||||
@@ -30,6 +30,8 @@
|
||||
#include "dhcpd.h"
|
||||
#include <omapip/omapip_p.h>
|
||||
@ -437,7 +439,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
#if defined (FAILOVER_PROTOCOL)
|
||||
dhcp_failover_state_t *failover_states;
|
||||
static isc_result_t do_a_failover_option (omapi_object_t *,
|
||||
@@ -1704,6 +1706,8 @@ isc_result_t dhcp_failover_set_state (dh
|
||||
@@ -1767,6 +1769,8 @@ isc_result_t dhcp_failover_set_state (dh
|
||||
struct lease *l;
|
||||
struct timeval tv;
|
||||
|
||||
@ -446,7 +448,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
/* If we're in certain states where we're sending updates, and the peer
|
||||
* state changes, we need to re-schedule any pending updates just to
|
||||
* be on the safe side. This results in retransmission.
|
||||
@@ -1935,6 +1939,8 @@ isc_result_t dhcp_failover_set_state (dh
|
||||
@@ -1972,6 +1976,8 @@ isc_result_t dhcp_failover_set_state (dh
|
||||
break;
|
||||
}
|
||||
|
||||
@ -455,7 +457,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
return ISC_R_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -2423,6 +2429,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
|
||||
@@ -2484,6 +2490,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
|
||||
if (state -> me.state != normal)
|
||||
return 0;
|
||||
|
||||
@ -464,7 +466,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
state->last_balance = cur_time;
|
||||
|
||||
for (s = shared_networks ; s ; s = s->next) {
|
||||
@@ -2583,6 +2591,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
|
||||
@@ -2644,6 +2652,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
|
||||
if (leases_queued)
|
||||
commit_leases();
|
||||
|
||||
@ -473,9 +475,9 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
|
||||
return leases_queued;
|
||||
}
|
||||
|
||||
diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200
|
||||
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 18:31:06.028879527 +0200
|
||||
diff -up dhcp-4.3.2b1/server/Makefile.am.systemtap dhcp-4.3.2b1/server/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
|
||||
+++ dhcp-4.3.2b1/server/Makefile.am 2015-02-08 17:42:45.775753818 +0100
|
||||
@@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
|
||||
sbin_PROGRAMS = dhcpd
|
||||
dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
|
||||
@ -499,9 +501,9 @@ diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.
|
||||
+
|
||||
+dhcpd_LDADD += probes.o
|
||||
+endif
|
||||
diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d
|
||||
--- dhcp-4.3.1b1/server/probes.d.systemtap 2014-07-10 18:31:06.034879442 +0200
|
||||
+++ dhcp-4.3.1b1/server/probes.d 2014-07-10 18:31:06.034879442 +0200
|
||||
diff -up dhcp-4.3.2b1/server/probes.d.systemtap dhcp-4.3.2b1/server/probes.d
|
||||
--- dhcp-4.3.2b1/server/probes.d.systemtap 2015-02-08 17:42:45.775753818 +0100
|
||||
+++ dhcp-4.3.2b1/server/probes.d 2015-02-08 17:42:45.775753818 +0100
|
||||
@@ -0,0 +1,43 @@
|
||||
+provider dhcpd {
|
||||
+ probe main();
|
||||
@ -546,9 +548,9 @@ diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d
|
||||
+ probe failover_set_state_start(int, int);
|
||||
+ probe failover_set_state_done();
|
||||
+};
|
||||
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.1b1/server/tests/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200
|
||||
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 18:31:06.034879442 +0200
|
||||
diff -up dhcp-4.3.2b1/server/tests/Makefile.am.systemtap dhcp-4.3.2b1/server/tests/Makefile.am
|
||||
--- dhcp-4.3.2b1/server/tests/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
|
||||
+++ dhcp-4.3.2b1/server/tests/Makefile.am 2015-02-08 17:42:45.776753804 +0100
|
||||
@@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
|
||||
$(top_builddir)/dhcpctl/libdhcpctl.la \
|
||||
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
|
||||
@ -560,9 +562,9 @@ diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tes
|
||||
ATF_TESTS =
|
||||
TESTS =
|
||||
if HAVE_ATF
|
||||
diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h
|
||||
--- dhcp-4.3.1b1/server/trace.h.systemtap 2014-07-10 18:31:06.034879442 +0200
|
||||
+++ dhcp-4.3.1b1/server/trace.h 2014-07-10 18:31:06.034879442 +0200
|
||||
diff -up dhcp-4.3.2b1/server/trace.h.systemtap dhcp-4.3.2b1/server/trace.h
|
||||
--- dhcp-4.3.2b1/server/trace.h.systemtap 2015-02-08 17:42:45.776753804 +0100
|
||||
+++ dhcp-4.3.2b1/server/trace.h 2015-02-08 17:42:45.776753804 +0100
|
||||
@@ -0,0 +1,11 @@
|
||||
+// trace.h
|
||||
+
|
||||
@ -575,9 +577,9 @@ diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h
|
||||
+// Wrap the probe to allow it to be removed when no systemtap available
|
||||
+#define TRACE(probe)
|
||||
+#endif
|
||||
diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp
|
||||
--- dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap 2014-07-10 18:31:06.035879428 +0200
|
||||
+++ dhcp-4.3.1b1/tapset/dhcpd.stp 2014-07-10 18:31:06.035879428 +0200
|
||||
diff -up dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap dhcp-4.3.2b1/tapset/dhcpd.stp
|
||||
--- dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap 2015-02-08 17:42:45.776753804 +0100
|
||||
+++ dhcp-4.3.2b1/tapset/dhcpd.stp 2015-02-08 17:42:45.776753804 +0100
|
||||
@@ -0,0 +1,212 @@
|
||||
+/* dhcpd tapset
|
||||
+ Copyright (C) 2011, Red Hat Inc.
|
||||
@ -791,9 +793,9 @@ diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp
|
||||
+{
|
||||
+ probestr = sprintf("%s", $$name);
|
||||
+}
|
||||
diff -up dhcp-4.3.1b1/tapset/Makefile.am.systemtap dhcp-4.3.1b1/tapset/Makefile.am
|
||||
--- dhcp-4.3.1b1/tapset/Makefile.am.systemtap 2014-07-10 18:31:06.035879428 +0200
|
||||
+++ dhcp-4.3.1b1/tapset/Makefile.am 2014-07-10 18:31:06.034879442 +0200
|
||||
diff -up dhcp-4.3.2b1/tapset/Makefile.am.systemtap dhcp-4.3.2b1/tapset/Makefile.am
|
||||
--- dhcp-4.3.2b1/tapset/Makefile.am.systemtap 2015-02-08 17:42:45.776753804 +0100
|
||||
+++ dhcp-4.3.2b1/tapset/Makefile.am 2015-02-08 17:42:45.776753804 +0100
|
||||
@@ -0,0 +1,26 @@
|
||||
+# Makefile.am for dhcp/tapset
|
||||
+# Jiri Popelka
|
||||
|
@ -1,251 +0,0 @@
|
||||
diff -up dhcp-4.3.0rc1/common/bpf.c.xen dhcp-4.3.0rc1/common/bpf.c
|
||||
--- dhcp-4.3.0rc1/common/bpf.c.xen 2014-01-29 10:03:27.503941664 +0100
|
||||
+++ dhcp-4.3.0rc1/common/bpf.c 2014-01-29 10:03:37.564812175 +0100
|
||||
@@ -481,7 +481,7 @@ ssize_t receive_packet (interface, buf,
|
||||
/* Decode the IP and UDP headers... */
|
||||
offset = decode_udp_ip_header(interface, interface->rbuf,
|
||||
interface->rbuf_offset,
|
||||
- from, hdr.bh_caplen, &paylen);
|
||||
+ from, hdr.bh_caplen, &paylen, 0);
|
||||
|
||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||
if (offset < 0) {
|
||||
diff -up dhcp-4.3.0rc1/common/dlpi.c.xen dhcp-4.3.0rc1/common/dlpi.c
|
||||
--- dhcp-4.3.0rc1/common/dlpi.c.xen 2014-01-25 05:18:03.000000000 +0100
|
||||
+++ dhcp-4.3.0rc1/common/dlpi.c 2014-01-29 10:03:27.503941664 +0100
|
||||
@@ -691,7 +691,7 @@ ssize_t receive_packet (interface, buf,
|
||||
length -= offset;
|
||||
#endif
|
||||
offset = decode_udp_ip_header (interface, dbuf, bufix,
|
||||
- from, length, &paylen);
|
||||
+ from, length, &paylen, 0);
|
||||
|
||||
/*
|
||||
* If the IP or UDP checksum was bad, skip the packet...
|
||||
diff -up dhcp-4.3.0rc1/common/lpf.c.xen dhcp-4.3.0rc1/common/lpf.c
|
||||
--- dhcp-4.3.0rc1/common/lpf.c.xen 2014-01-25 05:18:03.000000000 +0100
|
||||
+++ dhcp-4.3.0rc1/common/lpf.c 2014-01-29 10:03:27.504941651 +0100
|
||||
@@ -29,14 +29,15 @@
|
||||
|
||||
#include "dhcpd.h"
|
||||
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
|
||||
+#include <sys/socket.h>
|
||||
#include <sys/uio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <linux/filter.h>
|
||||
#include <linux/if_ether.h>
|
||||
+#include <linux/if_packet.h>
|
||||
#include <netinet/in_systm.h>
|
||||
-#include <net/if_packet.h>
|
||||
#include "includes/netinet/ip.h"
|
||||
#include "includes/netinet/udp.h"
|
||||
#include "includes/netinet/if_ether.h"
|
||||
@@ -51,6 +52,19 @@
|
||||
/* Reinitializes the specified interface after an address change. This
|
||||
is not required for packet-filter APIs. */
|
||||
|
||||
+#ifndef PACKET_AUXDATA
|
||||
+#define PACKET_AUXDATA 8
|
||||
+
|
||||
+struct tpacket_auxdata
|
||||
+{
|
||||
+ __u32 tp_status;
|
||||
+ __u32 tp_len;
|
||||
+ __u32 tp_snaplen;
|
||||
+ __u16 tp_mac;
|
||||
+ __u16 tp_net;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
#ifdef USE_LPF_SEND
|
||||
void if_reinitialize_send (info)
|
||||
struct interface_info *info;
|
||||
@@ -73,10 +87,14 @@ int if_register_lpf (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
int sock;
|
||||
- struct sockaddr sa;
|
||||
+ union {
|
||||
+ struct sockaddr_ll ll;
|
||||
+ struct sockaddr common;
|
||||
+ } sa;
|
||||
+ struct ifreq ifr;
|
||||
|
||||
/* Make an LPF socket. */
|
||||
- if ((sock = socket(PF_PACKET, SOCK_PACKET,
|
||||
+ if ((sock = socket(PF_PACKET, SOCK_RAW,
|
||||
htons((short)ETH_P_ALL))) < 0) {
|
||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||
@@ -91,11 +109,17 @@ int if_register_lpf (info)
|
||||
log_fatal ("Open a socket for LPF: %m");
|
||||
}
|
||||
|
||||
+ memset (&ifr, 0, sizeof ifr);
|
||||
+ strncpy (ifr.ifr_name, (const char *)info -> ifp, sizeof ifr.ifr_name);
|
||||
+ ifr.ifr_name[IFNAMSIZ-1] = '\0';
|
||||
+ if (ioctl (sock, SIOCGIFINDEX, &ifr))
|
||||
+ log_fatal ("Failed to get interface index: %m");
|
||||
+
|
||||
/* Bind to the interface name */
|
||||
memset (&sa, 0, sizeof sa);
|
||||
- sa.sa_family = AF_PACKET;
|
||||
- strncpy (sa.sa_data, (const char *)info -> ifp, sizeof sa.sa_data);
|
||||
- if (bind (sock, &sa, sizeof sa)) {
|
||||
+ sa.ll.sll_family = AF_PACKET;
|
||||
+ sa.ll.sll_ifindex = ifr.ifr_ifindex;
|
||||
+ if (bind (sock, &sa.common, sizeof sa)) {
|
||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||
errno == EAFNOSUPPORT || errno == EINVAL) {
|
||||
@@ -177,9 +201,18 @@ static void lpf_gen_filter_setup (struct
|
||||
void if_register_receive (info)
|
||||
struct interface_info *info;
|
||||
{
|
||||
+ int val;
|
||||
+
|
||||
/* Open a LPF device and hang it on this interface... */
|
||||
info -> rfdesc = if_register_lpf (info);
|
||||
|
||||
+ val = 1;
|
||||
+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val,
|
||||
+ sizeof val) < 0) {
|
||||
+ if (errno != ENOPROTOOPT)
|
||||
+ log_fatal ("Failed to set auxiliary packet data: %m");
|
||||
+ }
|
||||
+
|
||||
#if defined (HAVE_TR_SUPPORT)
|
||||
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
|
||||
lpf_tr_filter_setup (info);
|
||||
@@ -301,7 +334,6 @@ ssize_t send_packet (interface, packet,
|
||||
double hh [16];
|
||||
double ih [1536 / sizeof (double)];
|
||||
unsigned char *buf = (unsigned char *)ih;
|
||||
- struct sockaddr_pkt sa;
|
||||
int result;
|
||||
int fudge;
|
||||
|
||||
@@ -322,17 +354,7 @@ ssize_t send_packet (interface, packet,
|
||||
(unsigned char *)raw, len);
|
||||
memcpy (buf + ibufp, raw, len);
|
||||
|
||||
- /* For some reason, SOCK_PACKET sockets can't be connected,
|
||||
- so we have to do a sentdo every time. */
|
||||
- memset (&sa, 0, sizeof sa);
|
||||
- sa.spkt_family = AF_PACKET;
|
||||
- strncpy ((char *)sa.spkt_device,
|
||||
- (const char *)interface -> ifp, sizeof sa.spkt_device);
|
||||
- sa.spkt_protocol = htons(ETH_P_IP);
|
||||
-
|
||||
- result = sendto (interface -> wfdesc,
|
||||
- buf + fudge, ibufp + len - fudge, 0,
|
||||
- (const struct sockaddr *)&sa, sizeof sa);
|
||||
+ result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge);
|
||||
if (result < 0)
|
||||
log_error ("send_packet: %m");
|
||||
return result;
|
||||
@@ -349,14 +371,35 @@ ssize_t receive_packet (interface, buf,
|
||||
{
|
||||
int length = 0;
|
||||
int offset = 0;
|
||||
+ int nocsum = 0;
|
||||
unsigned char ibuf [1536];
|
||||
unsigned bufix = 0;
|
||||
unsigned paylen;
|
||||
+ unsigned char cmsgbuf[CMSG_LEN(sizeof(struct tpacket_auxdata))];
|
||||
+ struct iovec iov = {
|
||||
+ .iov_base = ibuf,
|
||||
+ .iov_len = sizeof ibuf,
|
||||
+ };
|
||||
+ struct msghdr msg = {
|
||||
+ .msg_iov = &iov,
|
||||
+ .msg_iovlen = 1,
|
||||
+ .msg_control = cmsgbuf,
|
||||
+ .msg_controllen = sizeof(cmsgbuf),
|
||||
+ };
|
||||
+ struct cmsghdr *cmsg;
|
||||
|
||||
- length = read (interface -> rfdesc, ibuf, sizeof ibuf);
|
||||
+ length = recvmsg (interface -> rfdesc, &msg, 0);
|
||||
if (length <= 0)
|
||||
return length;
|
||||
|
||||
+ for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
|
||||
+ if (cmsg->cmsg_level == SOL_PACKET &&
|
||||
+ cmsg->cmsg_type == PACKET_AUXDATA) {
|
||||
+ struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg);
|
||||
+ nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
bufix = 0;
|
||||
/* Decode the physical header... */
|
||||
offset = decode_hw_header (interface, ibuf, bufix, hfrom);
|
||||
@@ -373,7 +416,7 @@ ssize_t receive_packet (interface, buf,
|
||||
|
||||
/* Decode the IP and UDP headers... */
|
||||
offset = decode_udp_ip_header (interface, ibuf, bufix, from,
|
||||
- (unsigned)length, &paylen);
|
||||
+ (unsigned)length, &paylen, nocsum);
|
||||
|
||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||
if (offset < 0)
|
||||
diff -up dhcp-4.3.0rc1/common/nit.c.xen dhcp-4.3.0rc1/common/nit.c
|
||||
--- dhcp-4.3.0rc1/common/nit.c.xen 2014-01-26 19:40:44.000000000 +0100
|
||||
+++ dhcp-4.3.0rc1/common/nit.c 2014-01-29 10:03:27.504941651 +0100
|
||||
@@ -363,7 +363,7 @@ ssize_t receive_packet (interface, buf,
|
||||
|
||||
/* Decode the IP and UDP headers... */
|
||||
offset = decode_udp_ip_header (interface, ibuf, bufix,
|
||||
- from, length, &paylen);
|
||||
+ from, length, &paylen, 0);
|
||||
|
||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||
if (offset < 0)
|
||||
diff -up dhcp-4.3.0rc1/common/packet.c.xen dhcp-4.3.0rc1/common/packet.c
|
||||
--- dhcp-4.3.0rc1/common/packet.c.xen 2013-12-11 01:01:02.000000000 +0100
|
||||
+++ dhcp-4.3.0rc1/common/packet.c 2014-01-29 10:03:27.504941651 +0100
|
||||
@@ -226,7 +226,7 @@ ssize_t
|
||||
decode_udp_ip_header(struct interface_info *interface,
|
||||
unsigned char *buf, unsigned bufix,
|
||||
struct sockaddr_in *from, unsigned buflen,
|
||||
- unsigned *rbuflen)
|
||||
+ unsigned *rbuflen, int nocsum)
|
||||
{
|
||||
unsigned char *data;
|
||||
struct ip ip;
|
||||
@@ -337,7 +337,7 @@ decode_udp_ip_header(struct interface_in
|
||||
8, IPPROTO_UDP + ulen))));
|
||||
|
||||
udp_packets_seen++;
|
||||
- if (usum && usum != sum) {
|
||||
+ if (!nocsum && usum && usum != sum) {
|
||||
udp_packets_bad_checksum++;
|
||||
if (udp_packets_seen > 4 &&
|
||||
(udp_packets_seen / udp_packets_bad_checksum) < 2) {
|
||||
diff -up dhcp-4.3.0rc1/common/upf.c.xen dhcp-4.3.0rc1/common/upf.c
|
||||
--- dhcp-4.3.0rc1/common/upf.c.xen 2014-01-26 19:40:44.000000000 +0100
|
||||
+++ dhcp-4.3.0rc1/common/upf.c 2014-01-29 10:03:27.505941638 +0100
|
||||
@@ -314,7 +314,7 @@ ssize_t receive_packet (interface, buf,
|
||||
|
||||
/* Decode the IP and UDP headers... */
|
||||
offset = decode_udp_ip_header (interface, ibuf, bufix,
|
||||
- from, length, &paylen);
|
||||
+ from, length, &paylen, 0);
|
||||
|
||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||
if (offset < 0)
|
||||
diff -up dhcp-4.3.0rc1/includes/dhcpd.h.xen dhcp-4.3.0rc1/includes/dhcpd.h
|
||||
--- dhcp-4.3.0rc1/includes/dhcpd.h.xen 2014-01-29 10:03:27.489941844 +0100
|
||||
+++ dhcp-4.3.0rc1/includes/dhcpd.h 2014-01-29 10:03:27.506941626 +0100
|
||||
@@ -2861,7 +2861,7 @@ ssize_t decode_hw_header (struct interfa
|
||||
unsigned, struct hardware *);
|
||||
ssize_t decode_udp_ip_header (struct interface_info *, unsigned char *,
|
||||
unsigned, struct sockaddr_in *,
|
||||
- unsigned, unsigned *);
|
||||
+ unsigned, unsigned *, int);
|
||||
|
||||
/* ethernet.c */
|
||||
void assemble_ethernet_header (struct interface_info *, unsigned char *,
|
71
dhcp.spec
71
dhcp.spec
@ -12,13 +12,13 @@
|
||||
%global prever b1
|
||||
|
||||
#%%global VERSION %{version}-%{patchver}
|
||||
#%%global VERSION %{version}%{prever}
|
||||
%global VERSION %{version}
|
||||
#%%global VERSION %{version}
|
||||
%global VERSION %{version}%{prever}
|
||||
|
||||
Summary: Dynamic host configuration protocol software
|
||||
Name: dhcp
|
||||
Version: 4.3.1
|
||||
Release: 21%{?dist}
|
||||
Version: 4.3.2
|
||||
Release: 0.1%{prever}%{?dist}
|
||||
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
||||
# dcantrell maintaining the package) made incorrect use of the epoch and
|
||||
# that's why it is at 12 now. It should have never been used, but it was.
|
||||
@ -45,7 +45,7 @@ Patch5: dhcp-release-by-ifup.patch
|
||||
Patch6: dhcp-dhclient-decline-backoff.patch
|
||||
Patch7: dhcp-unicast-bootp.patch
|
||||
Patch8: dhcp-default-requested-options.patch
|
||||
Patch9: dhcp-xen-checksum.patch
|
||||
|
||||
Patch10: dhcp-manpages.patch
|
||||
Patch11: dhcp-paths.patch
|
||||
Patch12: dhcp-CLOEXEC.patch
|
||||
@ -69,18 +69,12 @@ Patch29: dhcp-getifaddrs.patch
|
||||
Patch30: dhcp-omapi-leak.patch
|
||||
Patch31: dhcp-failOverPeer.patch
|
||||
Patch32: dhcp-interval.patch
|
||||
Patch33: dhcp-range6.patch
|
||||
Patch34: dhcp-no-subnet-error2info.patch
|
||||
Patch35: dhcp-ffff-checksum.patch
|
||||
Patch36: dhcp-sd_notify.patch
|
||||
Patch37: dhcp-dhc6-life.patch
|
||||
Patch38: dhcp-skip-vlan.patch
|
||||
Patch39: dhcp-relay-hop-limit.patch
|
||||
Patch40: dhcp-ldapgssapi.patch
|
||||
Patch41: dhcp-option97-pxe-client-id.patch
|
||||
Patch42: dhcp-stateless-DUID-LLT.patch
|
||||
Patch43: dhcp-client-request-release-bind-iface.patch
|
||||
Patch100: dhcp-bind996.patch
|
||||
Patch33: dhcp-no-subnet-error2info.patch
|
||||
Patch34: dhcp-sd_notify.patch
|
||||
Patch35: dhcp-ldapgssapi.patch
|
||||
Patch36: dhcp-option97-pxe-client-id.patch
|
||||
Patch37: dhcp-stateless-DUID-LLT.patch
|
||||
Patch38: dhcp-client-request-release-bind-iface.patch
|
||||
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
@ -256,11 +250,6 @@ rm -rf includes/isc-dhcp
|
||||
# to the list of default requested DHCP options
|
||||
%patch8 -p1 -b .requested
|
||||
|
||||
# Handle partial UDP checksums (#221964)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #22806] - by Michael S. Tsirkin)
|
||||
# http://comments.gmane.org/gmane.comp.emulators.kvm.devel/65236
|
||||
# https://lists.isc.org/pipermail/dhcp-hackers/2010-April/001835.html
|
||||
%patch9 -p1 -b .xen
|
||||
|
||||
# Various man-page-only fixes
|
||||
%patch10 -p1 -b .man
|
||||
@ -346,49 +335,26 @@ rm -rf includes/isc-dhcp
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038])
|
||||
%patch32 -p1 -b .interval
|
||||
|
||||
# Make sure range6 is correct for subnet6 where it's declared (#902966)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #32453])
|
||||
%patch33 -p1 -b .range6
|
||||
|
||||
# 'No subnet declaration for <iface>' should be info, not error.
|
||||
%patch34 -p1 -b .error2info
|
||||
|
||||
# dhcpd rejects the udp packet with checksum=0xffff (#1015997)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #25587])
|
||||
%patch35 -p1 -b .ffff
|
||||
%patch33 -p1 -b .error2info
|
||||
|
||||
# support for sending startup notification to systemd (#1077666)
|
||||
%patch36 -p1 -b .sd_notify
|
||||
|
||||
# [dhclient -6] infinite preferred/valid lifetime represented as -1 (#1133839)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37084])
|
||||
%patch37 -p1 -b .life
|
||||
|
||||
# dhcpd generates spurious responses when seeing requests from vlans on plain interface (#1150587)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37415])
|
||||
%patch38 -p1 -b .vlan
|
||||
|
||||
# Relay-forward Message's Hop Limit should be 32 (#1147240)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37426])
|
||||
%patch39 -p1 -b .hop-limit
|
||||
%patch34 -p1 -b .sd_notify
|
||||
|
||||
# GSSAPI support for ldap authentication (#1150542)
|
||||
%patch40 -p1 -b .ldapgssapi
|
||||
%patch35 -p1 -b .ldapgssapi
|
||||
|
||||
# option 97 - pxe-client-id (#1058674)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38110])
|
||||
%patch41 -p1 -b .option97
|
||||
%patch36 -p1 -b .option97
|
||||
|
||||
# dhclient: write DUID_LLT even in stateless mode (#1156356)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144])
|
||||
%patch42 -p1 -b .stateless-DUID-LLT
|
||||
%patch37 -p1 -b .stateless-DUID-LLT
|
||||
|
||||
# send unicast request/release via correct interface (#800561, #1177351)
|
||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544])
|
||||
%patch43 -p1 -b .bind-iface
|
||||
|
||||
# to build against bind-9.9.6
|
||||
%patch100 -p1 -b .bind996
|
||||
%patch38 -p1 -b .bind-iface
|
||||
|
||||
# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=656610
|
||||
@ -691,6 +657,9 @@ done
|
||||
%doc doc/html/
|
||||
|
||||
%changelog
|
||||
* Sun Feb 08 2015 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.2-0.1b1
|
||||
- 4.3.2b1
|
||||
|
||||
* Tue Feb 03 2015 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.1-21
|
||||
- send unicast request/release via correct interface (#800561, #1177351)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user