This commit is contained in:
Jiri Popelka 2015-02-08 18:31:39 +01:00
parent b72dfb9de9
commit 9568cf3620
16 changed files with 355 additions and 844 deletions

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c diff -up dhcp-4.3.2b1/client/clparse.c.LzrZDt dhcp-4.3.2b1/client/clparse.c
--- dhcp-4.3.0a1/client/clparse.c.cloexec 2013-12-19 15:34:41.638886256 +0100 --- dhcp-4.3.2b1/client/clparse.c.LzrZDt 2015-02-08 15:22:43.305597445 +0100
+++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 15:34:41.657885985 +0100 +++ dhcp-4.3.2b1/client/clparse.c 2015-02-08 15:22:43.381596392 +0100
@@ -253,7 +253,7 @@ int read_client_conf_file (const char *n @@ -247,7 +247,7 @@ int read_client_conf_file (const char *n
int token; int token;
isc_result_t status; 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); return uerr2isc (errno);
cfile = NULL; 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 - /* Open the lease file. If we can't open it, just return -
we can safely trust the server to remember our state. */ we can safely trust the server to remember our state. */
@ -19,10 +19,10 @@ diff -up dhcp-4.3.0a1/client/clparse.c.cloexec dhcp-4.3.0a1/client/clparse.c
return; return;
cfile = NULL; cfile = NULL;
diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c diff -up dhcp-4.3.2b1/client/dhclient.c.LzrZDt dhcp-4.3.2b1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.cloexec 2013-12-19 15:34:41.629886384 +0100 --- dhcp-4.3.2b1/client/dhclient.c.LzrZDt 2015-02-08 15:22:43.259598082 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:36:41.608180467 +0100 +++ dhcp-4.3.2b1/client/dhclient.c 2015-02-08 15:22:43.383596364 +0100
@@ -148,11 +148,11 @@ main(int argc, char **argv) { @@ -150,11 +150,11 @@ main(int argc, char **argv) {
/* Make sure that file descriptors 0 (stdin), 1, (stdout), and /* Make sure that file descriptors 0 (stdin), 1, (stdout), and
2 (stderr) are open. To do this, we assume that when we 2 (stderr) are open. To do this, we assume that when we
open a file the lowest available file descriptor is used. */ open a file the lowest available file descriptor is used. */
@ -37,7 +37,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
if (fd == 2) if (fd == 2)
log_perror = 0; /* No sense logging to /dev/null. */ log_perror = 0; /* No sense logging to /dev/null. */
else if (fd != -1) else if (fd != -1)
@@ -504,7 +504,7 @@ main(int argc, char **argv) { @@ -516,7 +516,7 @@ main(int argc, char **argv) {
long temp; long temp;
int e; 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); e = fscanf(pidfd, "%ld\n", &temp);
oldpid = (pid_t)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); strncpy(new_path_dhclient_pid, path_dhclient_pid, pfx);
sprintf(new_path_dhclient_pid + pfx, "-%s.pid", ip->name); 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); e = fscanf(pidfd, "%ld\n", &temp);
oldpid = (pid_t)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; int dhc_running = 0;
char procfn[256] = ""; 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)) { if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) {
snprintf(procfn,256,"/proc/%u",dhcpid); snprintf(procfn,256,"/proc/%u",dhcpid);
dhc_running = (access(procfn, F_OK) == 0); 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) if (leaseFile != NULL)
fclose (leaseFile); 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) { if (leaseFile == NULL) {
log_error ("can't create %s: %m", path_dhclient_db); log_error ("can't create %s: %m", path_dhclient_db);
return; return;
@@ -3261,7 +3261,7 @@ write_duid(struct data_string *duid) @@ -3312,7 +3312,7 @@ write_duid(struct data_string *duid)
return DHCP_R_INVALIDARG; return DHCP_R_INVALIDARG;
if (leaseFile == NULL) { /* XXX? */ 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) { if (leaseFile == NULL) {
log_error("can't create %s: %m", path_dhclient_db); log_error("can't create %s: %m", path_dhclient_db);
return ISC_R_IOERROR; return ISC_R_IOERROR;
@@ -3441,7 +3441,7 @@ int write_client_lease (client, lease, r @@ -3492,7 +3492,7 @@ int write_client_lease (client, lease, r
return 1; return 1;
if (leaseFile == NULL) { /* XXX */ 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) { if (leaseFile == NULL) {
log_error ("can't create %s: %m", path_dhclient_db); log_error ("can't create %s: %m", path_dhclient_db);
return 0; return 0;
@@ -3952,9 +3952,9 @@ void go_daemon () @@ -4010,9 +4010,9 @@ void go_daemon ()
(void) close(2); (void) close(2);
/* Reopen them on /dev/null. */ /* 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 (); write_client_pid_file ();
@@ -3971,14 +3971,14 @@ void write_client_pid_file () @@ -4029,14 +4029,14 @@ void write_client_pid_file ()
return; return;
} }
@ -121,9 +121,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.cloexec dhcp-4.3.0a1/client/dhclient.c
if (!pf) { if (!pf) {
close(pfdesc); close(pfdesc);
log_error ("Can't fdopen %s: %m", path_dhclient_pid); 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 diff -up dhcp-4.3.2b1/common/bpf.c.LzrZDt dhcp-4.3.2b1/common/bpf.c
--- dhcp-4.3.0a1/common/bpf.c.cloexec 2013-12-19 15:34:41.640886227 +0100 --- dhcp-4.3.2b1/common/bpf.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/common/bpf.c 2013-12-19 15:34:41.661885928 +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) @@ -95,7 +95,7 @@ int if_register_bpf (info)
for (b = 0; 1; b++) { for (b = 0; 1; b++) {
/* %Audit% 31 bytes max. %2004.06.17,Safe% */ /* %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 (sock < 0) {
if (errno == EBUSY) { if (errno == EBUSY) {
continue; continue;
diff -up dhcp-4.3.0a1/common/dlpi.c.cloexec dhcp-4.3.0a1/common/dlpi.c diff -up dhcp-4.3.2b1/common/dlpi.c.LzrZDt dhcp-4.3.2b1/common/dlpi.c
--- dhcp-4.3.0a1/common/dlpi.c.cloexec 2013-12-19 15:34:41.641886213 +0100 --- dhcp-4.3.2b1/common/dlpi.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/common/dlpi.c 2013-12-19 15:34:41.662885914 +0100 +++ dhcp-4.3.2b1/common/dlpi.c 2015-02-08 15:22:43.383596364 +0100
@@ -804,7 +804,7 @@ dlpiopen(const char *ifname) { @@ -804,7 +804,7 @@ dlpiopen(const char *ifname) {
} }
*dp = '\0'; *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 diff -up dhcp-4.3.2b1/common/nit.c.LzrZDt dhcp-4.3.2b1/common/nit.c
--- dhcp-4.3.0a1/common/nit.c.cloexec 2013-12-19 15:34:41.642886199 +0100 --- dhcp-4.3.2b1/common/nit.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/common/nit.c 2013-12-19 15:34:41.662885914 +0100 +++ dhcp-4.3.2b1/common/nit.c 2015-02-08 15:22:43.384596350 +0100
@@ -81,7 +81,7 @@ int if_register_nit (info) @@ -75,7 +75,7 @@ int if_register_nit (info)
struct strioctl sio; struct strioctl sio;
/* Open a NIT device */ /* 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) if (sock < 0)
log_fatal ("Can't open NIT device for %s: %m", info -> name); log_fatal ("Can't open NIT device for %s: %m", info -> name);
diff -up dhcp-4.3.0a1/common/resolv.c.cloexec dhcp-4.3.0a1/common/resolv.c diff -up dhcp-4.3.2b1/common/resolv.c.LzrZDt dhcp-4.3.2b1/common/resolv.c
--- dhcp-4.3.0a1/common/resolv.c.cloexec 2013-12-11 01:25:12.000000000 +0100 --- dhcp-4.3.2b1/common/resolv.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/common/resolv.c 2013-12-19 15:34:41.663885900 +0100 +++ dhcp-4.3.2b1/common/resolv.c 2015-02-08 15:22:43.384596350 +0100
@@ -50,7 +50,7 @@ void read_resolv_conf (parse_time) @@ -44,7 +44,7 @@ void read_resolv_conf (parse_time)
struct domain_search_list *dp, *dl, *nd; struct domain_search_list *dp, *dl, *nd;
isc_result_t status; isc_result_t status;
@ -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); log_error ("Can't open %s: %m", path_resolv_conf);
return; return;
} }
diff -up dhcp-4.3.0a1/common/upf.c.cloexec dhcp-4.3.0a1/common/upf.c diff -up dhcp-4.3.2b1/common/upf.c.LzrZDt dhcp-4.3.2b1/common/upf.c
--- dhcp-4.3.0a1/common/upf.c.cloexec 2013-12-19 15:34:41.642886199 +0100 --- dhcp-4.3.2b1/common/upf.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/common/upf.c 2013-12-19 15:34:41.663885900 +0100 +++ dhcp-4.3.2b1/common/upf.c 2015-02-08 15:22:43.384596350 +0100
@@ -77,7 +77,7 @@ int if_register_upf (info) @@ -71,7 +71,7 @@ int if_register_upf (info)
/* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */ /* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */
sprintf(filename, "/dev/pf/pfilt%d", b); 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 (sock < 0) {
if (errno == EBUSY) { if (errno == EBUSY) {
continue; continue;
diff -up dhcp-4.3.0a1/omapip/trace.c.cloexec dhcp-4.3.0a1/omapip/trace.c diff -up dhcp-4.3.2b1/omapip/trace.c.LzrZDt dhcp-4.3.2b1/omapip/trace.c
--- dhcp-4.3.0a1/omapip/trace.c.cloexec 2013-12-11 01:01:03.000000000 +0100 --- dhcp-4.3.2b1/omapip/trace.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/omapip/trace.c 2013-12-19 15:34:41.663885900 +0100 +++ dhcp-4.3.2b1/omapip/trace.c 2015-02-08 15:22:43.384596350 +0100
@@ -142,10 +142,10 @@ isc_result_t trace_begin (const char *fi @@ -138,10 +138,10 @@ isc_result_t trace_begin (const char *fi
return DHCP_R_INVALIDARG; 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); 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; isc_result_t result;
int len; 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) { if (!traceinfile) {
log_error("Can't open tracefile %s: %m", filename); log_error("Can't open tracefile %s: %m", filename);
return; return;
diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c diff -up dhcp-4.3.2b1/relay/dhcrelay.c.LzrZDt dhcp-4.3.2b1/relay/dhcrelay.c
--- dhcp-4.3.0a1/relay/dhcrelay.c.cloexec 2013-12-13 22:26:21.000000000 +0100 --- dhcp-4.3.2b1/relay/dhcrelay.c.LzrZDt 2015-01-29 15:12:13.000000000 +0100
+++ dhcp-4.3.0a1/relay/dhcrelay.c 2013-12-19 15:34:41.664885886 +0100 +++ dhcp-4.3.2b1/relay/dhcrelay.c 2015-02-08 15:22:43.385596336 +0100
@@ -193,11 +193,11 @@ main(int argc, char **argv) { @@ -187,11 +187,11 @@ main(int argc, char **argv) {
/* Make sure that file descriptors 0(stdin), 1,(stdout), and /* Make sure that file descriptors 0(stdin), 1,(stdout), and
2(stderr) are open. To do this, we assume that when we 2(stderr) are open. To do this, we assume that when we
open a file the lowest available file descriptor is used. */ open a file the lowest available file descriptor is used. */
@ -224,7 +224,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.cloexec dhcp-4.3.0a1/relay/dhcrelay.c
if (fd == 2) if (fd == 2)
log_perror = 0; /* No sense logging to /dev/null. */ log_perror = 0; /* No sense logging to /dev/null. */
else if (fd != -1) 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) { if (no_pid_file == ISC_FALSE) {
pfdesc = open(path_dhcrelay_pid, 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) if (!pf)
log_error("Can't fdopen %s: %m", log_error("Can't fdopen %s: %m",
path_dhcrelay_pid); path_dhcrelay_pid);
diff -up dhcp-4.3.0a1/server/confpars.c.cloexec dhcp-4.3.0a1/server/confpars.c diff -up dhcp-4.3.2b1/server/confpars.c.LzrZDt dhcp-4.3.2b1/server/confpars.c
--- dhcp-4.3.0a1/server/confpars.c.cloexec 2013-12-11 01:25:12.000000000 +0100 --- dhcp-4.3.2b1/server/confpars.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/server/confpars.c 2013-12-19 15:34:41.665885871 +0100 +++ dhcp-4.3.2b1/server/confpars.c 2015-02-08 15:22:43.386596322 +0100
@@ -117,7 +117,7 @@ isc_result_t read_conf_file (const char @@ -111,7 +111,7 @@ isc_result_t read_conf_file (const char
} }
#endif #endif
@ -252,10 +252,10 @@ diff -up dhcp-4.3.0a1/server/confpars.c.cloexec dhcp-4.3.0a1/server/confpars.c
if (leasep) { if (leasep) {
log_error ("Can't open lease database %s: %m --", log_error ("Can't open lease database %s: %m --",
path_dhcpd_db); path_dhcpd_db);
diff -up dhcp-4.3.0a1/server/db.c.cloexec dhcp-4.3.0a1/server/db.c diff -up dhcp-4.3.2b1/server/db.c.LzrZDt dhcp-4.3.2b1/server/db.c
--- dhcp-4.3.0a1/server/db.c.cloexec 2013-12-11 01:25:12.000000000 +0100 --- dhcp-4.3.2b1/server/db.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/server/db.c 2013-12-19 15:34:41.666885857 +0100 +++ dhcp-4.3.2b1/server/db.c 2015-02-08 15:22:43.387596309 +0100
@@ -1081,7 +1081,7 @@ void db_startup (testp) @@ -1075,7 +1075,7 @@ void db_startup (testp)
} }
#endif #endif
if (!testp) { 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) if (!db_file)
log_fatal ("Can't open %s for append.", path_dhcpd_db); log_fatal ("Can't open %s for append.", path_dhcpd_db);
expire_all_pools (); 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) path_dhcpd_db, (int)t) >= sizeof newfname)
log_fatal("new_lease_file: lease file path too long"); 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"); log_error("Can't fdopen new lease file: %m");
close(db_fd); close(db_fd);
goto fdfail; goto fdfail;
diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c diff -up dhcp-4.3.2b1/server/dhcpd.c.LzrZDt dhcp-4.3.2b1/server/dhcpd.c
--- dhcp-4.3.0a1/server/dhcpd.c.cloexec 2013-12-13 22:26:01.000000000 +0100 --- dhcp-4.3.2b1/server/dhcpd.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/server/dhcpd.c 2013-12-19 15:37:17.258674472 +0100 +++ dhcp-4.3.2b1/server/dhcpd.c 2015-02-08 15:24:12.505358479 +0100
@@ -193,11 +193,11 @@ main(int argc, char **argv) { @@ -188,11 +188,11 @@ main(int argc, char **argv) {
/* Make sure that file descriptors 0 (stdin), 1, (stdout), and /* Make sure that file descriptors 0 (stdin), 1, (stdout), and
2 (stderr) are open. To do this, we assume that when we 2 (stderr) are open. To do this, we assume that when we
open a file the lowest available file descriptor is used. */ open a file the lowest available file descriptor is used. */
@ -297,25 +297,16 @@ diff -up dhcp-4.3.0a1/server/dhcpd.c.cloexec dhcp-4.3.0a1/server/dhcpd.c
if (fd == 2) if (fd == 2)
log_perror = 0; /* No sense logging to /dev/null. */ log_perror = 0; /* No sense logging to /dev/null. */
else if (fd != -1) 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) { 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, 0644);
+ i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644); + i = open(path_dhcpd_pid, O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0644);
if (i >= 0) { if (i >= 0) {
sprintf(pbuf, "%d\n", (int) getpid()); sprintf(pbuf, "%d\n", (int) getpid());
IGNORE_RET (write(i, pbuf, strlen(pbuf))); IGNORE_RET(write(i, pbuf, strlen(pbuf)));
@@ -763,9 +763,9 @@ main(int argc, char **argv) { @@ -779,9 +779,9 @@ main(int argc, char **argv) {
(void) close(2); (void) close(2);
/* Reopen them on /dev/null. */ /* 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. */ log_perror = 0; /* No sense logging to /dev/null. */
IGNORE_RET (chdir("/")); IGNORE_RET (chdir("/"));
diff -up dhcp-4.3.0a1/server/ldap.c.cloexec dhcp-4.3.0a1/server/ldap.c diff -up dhcp-4.3.2b1/server/ldap.c.LzrZDt dhcp-4.3.2b1/server/ldap.c
--- dhcp-4.3.0a1/server/ldap.c.cloexec 2013-12-11 01:25:12.000000000 +0100 --- dhcp-4.3.2b1/server/ldap.c.LzrZDt 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.0a1/server/ldap.c 2013-12-19 15:34:41.667885843 +0100 +++ dhcp-4.3.2b1/server/ldap.c 2015-02-08 15:22:43.388596295 +0100
@@ -684,7 +684,7 @@ ldap_start (void) @@ -684,7 +684,7 @@ ldap_start (void)
if (ldap_debug_file != NULL && ldap_debug_fd == -1) if (ldap_debug_file != NULL && ldap_debug_fd == -1)

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c diff -up dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id dhcp-4.3.2b1/common/lpf.c
--- dhcp-4.3.0/common/lpf.c.IPoIB-log-id 2014-02-18 15:52:12.292569480 +0100 --- dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id 2015-02-08 17:37:47.055023959 +0100
+++ dhcp-4.3.0/common/lpf.c 2014-02-18 15:52:12.297569411 +0100 +++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:41:21.294972666 +0100
@@ -164,6 +164,8 @@ int if_register_lpf (info) @@ -152,6 +152,8 @@ int if_register_lpf (info)
void if_register_send (info) void if_register_send (info)
struct interface_info *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, /* If we're using the lpf API for sending and receiving,
we don't need to register this interface twice. */ we don't need to register this interface twice. */
#ifndef USE_LPF_RECEIVE #ifndef USE_LPF_RECEIVE
@@ -171,11 +173,15 @@ void if_register_send (info) @@ -159,11 +161,15 @@ void if_register_send (info)
#else #else
info -> wfdesc = info -> rfdesc; info -> wfdesc = info -> rfdesc;
#endif #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 -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""), (info -> shared_network ? "/" : ""),
(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) void if_deregister_send (info)
struct interface_info *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 /* don't need to close twice if we are using lpf for sending and
receiving */ receiving */
#ifndef USE_LPF_RECEIVE #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", log_info ("Disabling output on LPF/%s/%s%s%s",
info -> name, info -> name,
print_hw_addr (info -> hw_address.hbuf [0], 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 -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""), (info -> shared_network ? "/" : ""),
(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) void if_register_receive (info)
struct interface_info *info; struct interface_info *info;
{ {
- int val; + int hlen;
+ int val, hlen; +
/* Open a LPF device and hang it on this interface... */ /* Open a LPF device and hang it on this interface... */
info -> rfdesc = if_register_lpf (info); 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"); log_fatal ("Failed to set auxiliary packet data: %m");
}
} }
- } - }
+ hlen = info -> hw_address.hlen; + hlen = info -> hw_address.hlen;
+ } else + } else
+ hlen = 9; + hlen = 9;
}
#endif
#if defined (HAVE_TR_SUPPORT) @@ -241,7 +255,7 @@ void if_register_receive (info)
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
@@ -249,7 +261,7 @@ void if_register_receive (info)
log_info ("Listening on LPF/%s/%s%s%s", log_info ("Listening on LPF/%s/%s%s%s",
info -> name, info -> name,
print_hw_addr (info -> hw_address.hbuf [0], 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 -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""), (info -> shared_network ? "/" : ""),
(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) void if_deregister_receive (info)
struct interface_info *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 /* for LPF this is simple, packet filters are removed when sockets
are closed */ are closed */
close (info -> rfdesc); 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", log_info ("Disabling input on LPF/%s/%s%s%s",
info -> name, info -> name,
print_hw_addr (info -> hw_address.hbuf [0], 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 -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""), (info -> shared_network ? "/" : ""),
(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 diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c
--- dhcp-4.3.0/server/dhcp.c.IPoIB-log-id 2014-02-18 15:52:12.204570695 +0100 --- dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id 2015-02-08 17:37:46.980025024 +0100
+++ dhcp-4.3.0/server/dhcp.c 2014-02-18 15:52:12.299569383 +0100 +++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:37:47.061023874 +0100
@@ -74,6 +74,42 @@ const int dhcp_type_name_max = ((sizeof @@ -77,6 +77,42 @@ const int dhcp_type_name_max = ((sizeof
# define send_packet trace_packet_send # define send_packet trace_packet_send
#endif #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 void
dhcp (struct packet *packet) { dhcp (struct packet *packet) {
int ms_nulltp = 0; 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, log_info("%s from %s via %s: %s", s,
(packet->raw->htype (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>"), : "<no identifier>"),
packet->raw->giaddr.s_addr packet->raw->giaddr.s_addr
? inet_ntoa(packet->raw->giaddr) ? 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", snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s",
(packet -> raw -> htype (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 : (lease
? print_hex_1(lease->uid_len, lease->uid, 60) ? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")), : "<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", "DHCPREQUEST for %s%s from %s %s%s%svia %s",
piaddr (cip), smbuf, piaddr (cip), smbuf,
(packet -> raw -> htype (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 : (lease
? print_hex_1(lease->uid_len, lease->uid, 60) ? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")), : "<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, if ((oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS))) { DHO_DHCP_REQUESTED_ADDRESS))) {
log_info ("DHCPRELEASE from %s specified 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, 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)", "DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)",
cstr, cstr,
(packet -> raw -> htype (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 : (lease
? print_hex_1(lease->uid_len, lease->uid, 60) ? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")), : "<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", "DHCPDECLINE of %s from %s %s%s%svia %s",
piaddr (cip), piaddr (cip),
(packet -> raw -> htype (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 : (lease
? print_hex_1(lease->uid_len, lease->uid, 60) ? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")), : "<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. */ /* Report what we're sending. */
snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip), snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip),
(packet->raw->htype && packet->raw->hlen) ? (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>"); "<no client hardware address>");
log_info("%s %s", msgbuf, gip.len ? piaddr(gip) : log_info("%s %s", msgbuf, gip.len ? piaddr(gip) :
packet->interface->name); 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... */ /* Report what we're sending... */
log_info ("DHCPNAK on %s to %s via %s", log_info ("DHCPNAK on %s to %s via %s",
piaddr (*cip), 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 packet -> raw -> giaddr.s_addr
? inet_ntoa (packet -> raw -> giaddr) ? inet_ntoa (packet -> raw -> giaddr)
: packet -> interface -> name); : packet -> interface -> name);
@@ -3468,7 +3489,7 @@ void dhcp_reply (lease) @@ -3617,7 +3638,7 @@ void dhcp_reply (lease)
? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER") ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER")
: "BOOTREPLY"), : "BOOTREPLY"),
piaddr (lease -> ip_addr), 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], ? print_hw_addr (lease -> hardware_addr.hbuf [0],
lease -> hardware_addr.hlen - 1, lease -> hardware_addr.hlen - 1,
&lease -> hardware_addr.hbuf [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) {
if (uid_lease->binding_state == FTS_ACTIVE) { if (uid_lease->binding_state == FTS_ACTIVE) {
log_error ("client %s has duplicate%s on %s", 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", " leases",
(ip_lease -> subnet -> (ip_lease -> subnet ->
shared_network -> name)); 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 " log_error("uid lease %s for client %s is duplicate "
"on %s", "on %s",
piaddr(uid_lease->ip_addr), piaddr(uid_lease->ip_addr),

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/common/discover.c.AyFwkY dhcp-4.3.1b1/common/discover.c diff -up dhcp-4.3.2b1/common/discover.c.getifaddrs dhcp-4.3.2b1/common/discover.c
--- dhcp-4.3.1b1/common/discover.c.AyFwkY 2014-07-02 19:58:38.000000000 +0200 --- dhcp-4.3.2b1/common/discover.c.getifaddrs 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/common/discover.c 2014-07-10 17:58:21.588696480 +0200 +++ 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 @@ -373,391 +373,13 @@ end_iface_scan(struct iface_conf_list *i
ifaces->sock = -1; 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); - log_error("Interface name '%s' too long", name);
- return 0; - return 0;
- } - }
- strcpy(info->name, name); - strncpy(info->name, name, sizeof(info->name) - 1);
- -
-#ifdef ALIAS_NAMED_PERMUTED -#ifdef ALIAS_NAMED_PERMUTED
- /* interface aliases look like "eth0:1" or "wlan1:3" */ - /* 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 -#endif
- -
- memset(&tmp, 0, sizeof(tmp)); - 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 (ioctl(ifaces->sock, SIOCGIFADDR, &tmp) < 0) {
- if (errno == EADDRNOTAVAIL) { - if (errno == EADDRNOTAVAIL) {
- continue; - 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)); - memcpy(&info->addr, &tmp.ifr_addr, sizeof(tmp.ifr_addr));
- -
- memset(&tmp, 0, sizeof(tmp)); - 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) { - if (ioctl(ifaces->sock, SIOCGIFFLAGS, &tmp) < 0) {
- log_error("Error getting interface flags for '%s'; %m", - log_error("Error getting interface flags for '%s'; %m",
- name); - name);

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1/configure.ac.ldapgssapi dhcp-4.3.1/configure.ac diff -up dhcp-4.3.2b1/configure.ac.ldapgssapi dhcp-4.3.2b1/configure.ac
--- dhcp-4.3.1/configure.ac.ldapgssapi 2014-11-04 16:08:35.017148053 +0100 --- dhcp-4.3.2b1/configure.ac.ldapgssapi 2015-02-08 18:01:27.962621131 +0100
+++ dhcp-4.3.1/configure.ac 2014-11-04 16:21:09.696504777 +0100 +++ dhcp-4.3.2b1/configure.ac 2015-02-08 18:01:27.966621074 +0100
@@ -671,19 +671,40 @@ AC_ARG_WITH(ldapcrypto, @@ -671,19 +671,40 @@ AC_ARG_WITH(ldapcrypto,
[ldapcrypto=$withval], [ldapcrypto=$withval],
[ldapcrypto=no]) [ldapcrypto=no])
@ -47,9 +47,9 @@ diff -up dhcp-4.3.1/configure.ac.ldapgssapi dhcp-4.3.1/configure.ac
fi fi
fi fi
diff -up dhcp-4.3.1/includes/dhcpd.h.ldapgssapi dhcp-4.3.1/includes/dhcpd.h diff -up dhcp-4.3.2b1/includes/dhcpd.h.ldapgssapi dhcp-4.3.2b1/includes/dhcpd.h
--- dhcp-4.3.1/includes/dhcpd.h.ldapgssapi 2014-11-04 16:08:34.952148968 +0100 --- dhcp-4.3.2b1/includes/dhcpd.h.ldapgssapi 2015-02-08 18:01:27.924621669 +0100
+++ dhcp-4.3.1/includes/dhcpd.h 2014-11-04 16:26:14.597202025 +0100 +++ dhcp-4.3.2b1/includes/dhcpd.h 2015-02-08 18:03:03.145273551 +0100
@@ -103,7 +103,14 @@ typedef time_t TIME; @@ -103,7 +103,14 @@ typedef time_t TIME;
#if defined(LDAP_CONFIGURATION) #if defined(LDAP_CONFIGURATION)
# include <ldap.h> # 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) #if !defined (BYTE_NAME_HASH_SIZE)
# define BYTE_NAME_HASH_SIZE 401 /* Default would be ridiculous. */ # define BYTE_NAME_HASH_SIZE 401 /* Default would be ridiculous. */
@@ -733,6 +740,13 @@ struct lease_state { @@ -743,6 +750,13 @@ struct lease_state {
#define SV_LOG_THRESHOLD_LOW 83 #define SV_SERVER_ID_CHECK 86
#define SV_LOG_THRESHOLD_HIGH 84 #define SV_PREFIX_LEN_MODE 87
+#if defined(LDAP_CONFIGURATION) +#if defined(LDAP_CONFIGURATION)
+#if defined (LDAP_USE_GSSAPI) +#if defined (LDAP_USE_GSSAPI)
+# define SV_LDAP_GSSAPI_KEYTAB 85 +# define SV_LDAP_GSSAPI_KEYTAB 88
+# define SV_LDAP_GSSAPI_PRINCIPAL 86 +# define SV_LDAP_GSSAPI_PRINCIPAL 89
+#endif +#endif
+#endif +#endif
+ +
#if !defined (DEFAULT_PING_TIMEOUT) #if !defined (DEFAULT_PING_TIMEOUT)
# define DEFAULT_PING_TIMEOUT 1 # define DEFAULT_PING_TIMEOUT 1
#endif #endif
diff -up dhcp-4.3.1/server/krb_helper.c.ldapgssapi dhcp-4.3.1/server/krb_helper.c diff -up dhcp-4.3.2b1/server/krb_helper.c.ldapgssapi dhcp-4.3.2b1/server/krb_helper.c
--- dhcp-4.3.1/server/krb_helper.c.ldapgssapi 2014-11-04 16:08:35.018148039 +0100 --- dhcp-4.3.2b1/server/krb_helper.c.ldapgssapi 2015-02-08 18:01:27.967621060 +0100
+++ dhcp-4.3.1/server/krb_helper.c 2014-11-04 16:08:35.018148039 +0100 +++ dhcp-4.3.2b1/server/krb_helper.c 2015-02-08 18:01:27.967621060 +0100
@@ -0,0 +1,220 @@ @@ -0,0 +1,220 @@
+/* krb_helper.c +/* 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 +#endif
+ +
diff -up dhcp-4.3.1/server/krb_helper.h.ldapgssapi dhcp-4.3.1/server/krb_helper.h diff -up dhcp-4.3.2b1/server/krb_helper.h.ldapgssapi dhcp-4.3.2b1/server/krb_helper.h
--- dhcp-4.3.1/server/krb_helper.h.ldapgssapi 2014-11-04 16:08:35.019148025 +0100 --- dhcp-4.3.2b1/server/krb_helper.h.ldapgssapi 2015-02-08 18:01:27.968621046 +0100
+++ dhcp-4.3.1/server/krb_helper.h 2014-11-04 16:08:35.018148039 +0100 +++ dhcp-4.3.2b1/server/krb_helper.h 2015-02-08 18:01:27.967621060 +0100
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
+/* krb_helper.h +/* 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 *); +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 diff -up dhcp-4.3.2b1/server/ldap.c.ldapgssapi dhcp-4.3.2b1/server/ldap.c
--- dhcp-4.3.1/server/ldap.c.ldapgssapi 2014-11-04 16:08:34.989148447 +0100 --- dhcp-4.3.2b1/server/ldap.c.ldapgssapi 2015-02-08 18:01:27.955621230 +0100
+++ dhcp-4.3.1/server/ldap.c 2014-11-04 16:08:35.019148025 +0100 +++ dhcp-4.3.2b1/server/ldap.c 2015-02-08 18:01:27.968621046 +0100
@@ -39,10 +39,16 @@ @@ -39,10 +39,16 @@
#include "dhcpd.h" #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) #if defined (DEBUG_LDAP)
diff -up dhcp-4.3.1/server/Makefile.am.ldapgssapi dhcp-4.3.1/server/Makefile.am diff -up dhcp-4.3.2b1/server/Makefile.am.ldapgssapi dhcp-4.3.2b1/server/Makefile.am
--- dhcp-4.3.1/server/Makefile.am.ldapgssapi 2014-11-04 16:08:35.019148025 +0100 --- dhcp-4.3.2b1/server/Makefile.am.ldapgssapi 2015-02-08 18:01:27.943621400 +0100
+++ dhcp-4.3.1/server/Makefile.am 2014-11-04 16:37:24.616639706 +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 @@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
sbin_PROGRAMS = dhcpd sbin_PROGRAMS = dhcpd
dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ 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_CFLAGS = $(LDAP_CFLAGS)
dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.la ../dhcpctl/libdhcpctl.la \ 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 diff -up dhcp-4.3.2b1/server/stables.c.ldapgssapi dhcp-4.3.2b1/server/stables.c
--- dhcp-4.3.1/server/stables.c.ldapgssapi 2014-11-04 16:08:35.020148010 +0100 --- dhcp-4.3.2b1/server/stables.c.ldapgssapi 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1/server/stables.c 2014-11-04 16:42:09.109552243 +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[] = @@ -259,6 +259,10 @@ static struct option server_options[] =
{ "ldap-tls-ciphers", "t", &server_universe, 76, 1 }, { "ldap-tls-ciphers", "t", &server_universe, 76, 1 },
{ "ldap-tls-randfile", "t", &server_universe, 77, 1 }, { "ldap-tls-randfile", "t", &server_universe, 77, 1 },

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c diff -up dhcp-4.3.2b1/client/dhclient.c.lpf-ib dhcp-4.3.2b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.bmgpWV 2014-07-10 17:50:26.922402550 +0200 --- dhcp-4.3.2b1/client/dhclient.c.lpf-ib 2015-02-08 17:19:42.107405843 +0100
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:53:43.629623477 +0200 +++ 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 @@ -114,6 +114,8 @@ static int check_domain_name_list(const
static int check_option_values(struct universe *universe, unsigned int opt, static int check_option_values(struct universe *universe, unsigned int opt,
const char *ptr, size_t len); 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: /* Individual States:
* *
* Each routine is called from the dhclient_state_machine() in one of * 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 diff -up dhcp-4.3.2b1/common/bpf.c.lpf-ib dhcp-4.3.2b1/common/bpf.c
--- dhcp-4.3.1b1/common/bpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200 --- dhcp-4.3.2b1/common/bpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
+++ dhcp-4.3.1b1/common/bpf.c 2014-07-10 17:52:57.705272295 +0200 +++ 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 [] = { @@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
BPF_STMT(BPF_RET+BPF_K, 0), 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) #if defined (HAVE_TR_SUPPORT)
struct bpf_insn dhcp_bpf_tr_filter [] = { struct bpf_insn dhcp_bpf_tr_filter [] = {
/* accept all token ring packets due to variable length header */ /* accept all token ring packets due to variable length header */
diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c diff -up dhcp-4.3.2b1/common/lpf.c.lpf-ib dhcp-4.3.2b1/common/lpf.c
--- dhcp-4.3.1b1/common/lpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200 --- dhcp-4.3.2b1/common/lpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
+++ dhcp-4.3.1b1/common/lpf.c 2014-07-10 17:52:57.706272281 +0200 +++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:36:15.072329845 +0100
@@ -46,6 +46,17 @@ @@ -47,6 +47,17 @@
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h> #include <net/if.h>
+#include <ifaddrs.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 #endif
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE) #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; struct sockaddr common;
} sa; } sa;
struct ifreq ifr; struct ifreq ifr;
+ int type; + int type;
+ int protocol; + 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) { + if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
+ type = SOCK_DGRAM; + type = SOCK_DGRAM;
+ protocol = ETHERTYPE_IP; + 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; + type = SOCK_RAW;
+ protocol = ETH_P_ALL; + 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 ((sock = socket(PF_PACKET, type, htons((short)protocol))) < 0) {
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
errno == EAFNOSUPPORT || errno == EINVAL) { errno == EAFNOSUPPORT || errno == EINVAL) {
@@ -118,6 +140,7 @@ int if_register_lpf (info) @@ -106,6 +127,7 @@ int if_register_lpf (info)
/* Bind to the interface name */ /* Bind to the interface name */
memset (&sa, 0, sizeof sa); memset (&sa, 0, sizeof sa);
sa.ll.sll_family = AF_PACKET; 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; sa.ll.sll_ifindex = ifr.ifr_ifindex;
if (bind (sock, &sa.common, sizeof sa)) { if (bind (sock, &sa.common, sizeof sa)) {
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
@@ -133,8 +156,6 @@ int if_register_lpf (info) @@ -122,8 +144,6 @@ int if_register_lpf (info)
log_fatal ("Bind socket to interface: %m");
} }
- get_hw_addr(info->name, &info->hw_address); - 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; return sock;
} }
#endif /* USE_LPF_SEND || USE_LPF_RECEIVE */ #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... */ in bpf includes... */
extern struct sock_filter dhcp_bpf_filter []; extern struct sock_filter dhcp_bpf_filter [];
extern int dhcp_bpf_filter_len; extern int dhcp_bpf_filter_len;
@ -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) #if defined (HAVE_TR_SUPPORT)
extern struct sock_filter dhcp_bpf_tr_filter []; extern struct sock_filter dhcp_bpf_tr_filter [];
@@ -206,11 +229,13 @@ void if_register_receive (info) @@ -196,11 +218,12 @@ void if_register_receive (info)
/* Open a LPF device and hang it on this interface... */ #ifdef PACKET_AUXDATA
info -> rfdesc = if_register_lpf (info); {
int val = 1;
- val = 1; -
- if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val, - if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
- sizeof val) < 0) { - &val, sizeof(val)) < 0) {
- if (errno != ENOPROTOOPT) - if (errno != ENOPROTOOPT) {
- log_fatal ("Failed to set auxiliary packet data: %m"); - log_fatal ("Failed to set auxiliary packet data: %m");
+ if (info->hw_address.hbuf[0] != HTYPE_INFINIBAND) { + if (info->hw_address.hbuf[0] != HTYPE_INFINIBAND) {
+ val = 1; + if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, + &val, sizeof(val)) < 0) {
+ &val, sizeof val) < 0) { + if (errno != ENOPROTOOPT) {
+ if (errno != ENOPROTOOPT)
+ log_fatal ("Failed to set auxiliary packet data: %m"); + log_fatal ("Failed to set auxiliary packet data: %m");
+ } + }
}
} }
}
#if defined (HAVE_TR_SUPPORT) @@ -250,15 +273,28 @@ static void lpf_gen_filter_setup (info)
@@ -256,15 +281,28 @@ static void lpf_gen_filter_setup (info)
memset(&p, 0, sizeof(p)); 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, if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
sizeof p) < 0) { 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 */ #endif /* USE_LPF_RECEIVE */
#ifdef USE_LPF_SEND #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) ssize_t send_packet (interface, packet, raw, len, from, to, hto)
struct interface_info *interface; struct interface_info *interface;
struct packet *packet; struct packet *packet;
@@ -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, return send_fallback (interface, packet, raw,
len, from, to, hto); 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) if (hto == NULL && interface->anycast_mac_addr.hlen)
hto = &interface->anycast_mac_addr; 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 */ #endif /* USE_LPF_SEND */
#ifdef USE_LPF_RECEIVE #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) ssize_t receive_packet (interface, buf, len, from, hfrom)
struct interface_info *interface; struct interface_info *interface;
unsigned char *buf; 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) { + if (interface->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
+ return receive_packet_ib(interface, buf, len, from, hfrom); + return receive_packet_ib(interface, buf, len, from, hfrom);
+ } + }
+ +
length = recvmsg (interface -> rfdesc, &msg, 0); length = recvmsg (interface->rfdesc, &msg, 0);
if (length <= 0) if (length <= 0)
return length; return length;
@@ -469,11 +600,33 @@ void maybe_setup_fallback () @@ -489,11 +618,33 @@ void maybe_setup_fallback ()
#endif #endif
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR) #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)) { if (strlen(name) >= sizeof(tmp.ifr_name)) {
log_fatal("Device name too long: \"%s\"", 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)); memset(&tmp, 0, sizeof(tmp));
strcpy(tmp.ifr_name, name); strcpy(tmp.ifr_name, name);
if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) { 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; break;
case ARPHRD_IEEE802: case ARPHRD_IEEE802:
#ifdef ARPHRD_IEEE802_TR #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 */ #endif /* ARPHRD_IEEE802_TR */
hw->hlen = 7; hw->hlen = 7;
hw->hbuf[0] = HTYPE_IEEE802; 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->hlen = 0;
hw->hbuf[0] = HTYPE_RESERVED; hw->hbuf[0] = HTYPE_RESERVED;
/* 0xdeadbeef should never occur on the wire, /* 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; break;
#endif #endif
default: default:
@ -524,10 +522,10 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
+ freeifaddrs(ifaddrs); + freeifaddrs(ifaddrs);
} }
#endif #endif
diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c diff -up dhcp-4.3.2b1/common/socket.c.lpf-ib dhcp-4.3.2b1/common/socket.c
--- dhcp-4.3.1b1/common/socket.c.bmgpWV 2014-07-02 19:58:38.000000000 +0200 --- dhcp-4.3.2b1/common/socket.c.lpf-ib 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/common/socket.c 2014-07-10 17:52:57.706272281 +0200 +++ dhcp-4.3.2b1/common/socket.c 2015-02-08 17:19:42.118405688 +0100
@@ -322,7 +322,7 @@ void if_register_send (info) @@ -328,7 +328,7 @@ void if_register_send (info)
info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); info->wfdesc = if_register_socket(info, AF_INET, 0, NULL);
/* If this is a normal IPv4 address, get the hardware address. */ /* If this is a normal IPv4 address, get the hardware address. */
if (strcmp(info->name, "fallback") != 0) if (strcmp(info->name, "fallback") != 0)
@ -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) #if defined (USE_SOCKET_FALLBACK)
/* Fallback only registers for send, but may need to receive as /* Fallback only registers for send, but may need to receive as
well. */ well. */
@@ -385,7 +385,7 @@ void if_register_receive (info) @@ -391,7 +391,7 @@ void if_register_receive (info)
#endif /* IP_PKTINFO... */ #endif /* IP_PKTINFO... */
/* If this is a normal IPv4 address, get the hardware address. */ /* If this is a normal IPv4 address, get the hardware address. */
if (strcmp(info->name, "fallback") != 0) if (strcmp(info->name, "fallback") != 0)
@ -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) if (!quiet_interface_discovery)
log_info ("Listening on Socket/%s%s%s", 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 (req_multi)
if_register_multicast(info); 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 (!quiet_interface_discovery) {
if (info->shared_network != NULL) { 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->rfdesc = sock;
info->wfdesc = 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 (!quiet_interface_discovery) {
if (info->shared_network != NULL) { if (info->shared_network != NULL) {
diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h diff -up dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib dhcp-4.3.2b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV 2014-07-10 17:50:26.923402536 +0200 --- dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib 2015-02-08 17:19:42.108405829 +0100
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:52:57.707272266 +0200 +++ dhcp-4.3.2b1/includes/dhcpd.h 2015-02-08 17:19:42.119405674 +0100
@@ -1248,6 +1248,7 @@ struct interface_info { @@ -1264,6 +1264,7 @@ struct interface_info {
struct shared_network *shared_network; struct shared_network *shared_network;
/* Networks connected to this interface. */ /* Networks connected to this interface. */
struct hardware hw_address; /* Its physical address. */ struct hardware hw_address; /* Its physical address. */
@ -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 struct in_addr *addresses; /* Addresses associated with this
* interface. * interface.
*/ */
@@ -2439,7 +2440,7 @@ void print_dns_status (int, struct dhcp_ @@ -2475,7 +2476,7 @@ void print_dns_status (int, struct dhcp_
#endif #endif
const char *print_time(TIME); const char *print_time(TIME);

View File

@ -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.
*/

View File

@ -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

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/client/Makefile.am.brGmwh dhcp-4.3.1b1/client/Makefile.am diff -up dhcp-4.3.2b1/client/Makefile.am.SRPsDM dhcp-4.3.2b1/client/Makefile.am
--- dhcp-4.3.1b1/client/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200 --- dhcp-4.3.2b1/client/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:36:30.484250976 +0200 +++ 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 @@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \ 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 man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh dhcp-4.3.1b1/common/tests/Makefile.am diff -up dhcp-4.3.2b1/common/tests/Makefile.am.SRPsDM dhcp-4.3.2b1/common/tests/Makefile.am
--- dhcp-4.3.1b1/common/tests/Makefile.am.brGmwh 2014-07-10 17:36:30.485250962 +0200 --- dhcp-4.3.2b1/common/tests/Makefile.am.SRPsDM 2015-02-08 15:13:29.092275562 +0100
+++ dhcp-4.3.1b1/common/tests/Makefile.am 2014-07-10 17:38:04.010924566 +0200 +++ dhcp-4.3.2b1/common/tests/Makefile.am 2015-02-08 15:14:29.583437471 +0100
@@ -13,21 +13,20 @@ ATF_TESTS += alloc_unittest dns_unittest @@ -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_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
alloc_unittest_LDADD = $(ATF_LDFLAGS) alloc_unittest_LDADD = $(ATF_LDFLAGS)
alloc_unittest_LDADD += ../libdhcp.a \ 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_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
misc_unittest_LDADD = $(ATF_LDFLAGS) 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 \ - ../../omapip/libomapi.a ../../bind/lib/libirs.a \
- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.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) check: $(ATF_TESTS)
atf-run | atf-report atf-run | atf-report
diff -up dhcp-4.3.1b1/configure.ac.brGmwh dhcp-4.3.1b1/configure.ac diff -up dhcp-4.3.2b1/configure.ac.SRPsDM dhcp-4.3.2b1/configure.ac
--- dhcp-4.3.1b1/configure.ac.brGmwh 2014-07-02 20:01:26.000000000 +0200 --- dhcp-4.3.2b1/configure.ac.SRPsDM 2015-01-29 14:59:59.000000000 +0100
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:36:30.485250962 +0200 +++ 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 @@ -562,20 +562,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
libbind= libbind=
@ -98,9 +101,9 @@ diff -up dhcp-4.3.1b1/configure.ac.brGmwh dhcp-4.3.1b1/configure.ac
case "$host" in case "$host" in
*-darwin*) *-darwin*)
diff -up dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh dhcp-4.3.1b1/dhcpctl/Makefile.am diff -up dhcp-4.3.2b1/dhcpctl/Makefile.am.SRPsDM dhcp-4.3.2b1/dhcpctl/Makefile.am
--- dhcp-4.3.1b1/dhcpctl/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200 --- dhcp-4.3.2b1/dhcpctl/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/dhcpctl/Makefile.am 2014-07-10 17:36:30.485250962 +0200 +++ dhcp-4.3.2b1/dhcpctl/Makefile.am 2015-02-08 15:13:29.092275562 +0100
@@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS) @@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS)
omshell_SOURCES = omshell.c 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/libirs.a ../bind/lib/libdns.a \
- ../bind/lib/libisccfg.a ../bind/lib/libisc.a - ../bind/lib/libisccfg.a ../bind/lib/libisc.a
+ $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc + $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
diff -up dhcp-4.3.1b1/Makefile.am.brGmwh dhcp-4.3.1b1/Makefile.am diff -up dhcp-4.3.2b1/Makefile.am.SRPsDM dhcp-4.3.2b1/Makefile.am
--- dhcp-4.3.1b1/Makefile.am.brGmwh 2014-07-02 19:58:38.000000000 +0200 --- dhcp-4.3.2b1/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/Makefile.am 2014-07-10 17:36:30.484250976 +0200 +++ dhcp-4.3.2b1/Makefile.am 2015-02-08 15:13:29.092275562 +0100
@@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \ @@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
bind/Makefile bind/bind.tar.gz bind/version.tmp \ bind/Makefile bind/bind.tar.gz bind/version.tmp \
common/tests/Atffile server/tests/Atffile 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 nobase_include_HEADERS = dhcpctl/dhcpctl.h
diff -up dhcp-4.3.1b1/omapip/Makefile.am.brGmwh dhcp-4.3.1b1/omapip/Makefile.am diff -up dhcp-4.3.2b1/omapip/Makefile.am.SRPsDM dhcp-4.3.2b1/omapip/Makefile.am
--- dhcp-4.3.1b1/omapip/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200 --- dhcp-4.3.2b1/omapip/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/omapip/Makefile.am 2014-07-10 17:36:30.486250948 +0200 +++ dhcp-4.3.2b1/omapip/Makefile.am 2015-02-08 15:13:29.093275549 +0100
@@ -10,6 +10,5 @@ man_MANS = omapi.3 @@ -10,6 +10,5 @@ man_MANS = omapi.3
EXTRA_DIST = $(man_MANS) 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 \ +svtest_LDADD = libomapi.a \
+ $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc + $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
diff -up dhcp-4.3.1b1/relay/Makefile.am.brGmwh dhcp-4.3.1b1/relay/Makefile.am diff -up dhcp-4.3.2b1/relay/Makefile.am.SRPsDM dhcp-4.3.2b1/relay/Makefile.am
--- dhcp-4.3.1b1/relay/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200 --- dhcp-4.3.2b1/relay/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:36:30.486250948 +0200 +++ dhcp-4.3.2b1/relay/Makefile.am 2015-02-08 15:13:29.093275549 +0100
@@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst @@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay sbin_PROGRAMS = dhcrelay
dhcrelay_SOURCES = dhcrelay.c 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 man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/server/Makefile.am.brGmwh dhcp-4.3.1b1/server/Makefile.am diff -up dhcp-4.3.2b1/server/Makefile.am.SRPsDM dhcp-4.3.2b1/server/Makefile.am
--- dhcp-4.3.1b1/server/Makefile.am.brGmwh 2014-07-02 19:58:39.000000000 +0200 --- dhcp-4.3.2b1/server/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 17:36:30.486250948 +0200 +++ 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 @@ -13,10 +13,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
dhcpv6.c mdb6.c ldap.c ldap_casa.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 man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh dhcp-4.3.1b1/server/tests/Makefile.am diff -up dhcp-4.3.2b1/server/tests/Makefile.am.SRPsDM dhcp-4.3.2b1/server/tests/Makefile.am
--- dhcp-4.3.1b1/server/tests/Makefile.am.brGmwh 2014-07-02 19:58:40.000000000 +0200 --- dhcp-4.3.2b1/server/tests/Makefile.am.SRPsDM 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 17:36:30.486250948 +0200 +++ 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 @@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
../ldap.c ../ldap_casa.c ../dhcpd.c ../ldap.c ../ldap_casa.c ../dhcpd.c

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/client/Makefile.am.uCWMBl dhcp-4.3.1b1/client/Makefile.am diff -up dhcp-4.3.2b1/client/Makefile.am.SfzxjY dhcp-4.3.2b1/client/Makefile.am
--- dhcp-4.3.1b1/client/Makefile.am.uCWMBl 2014-07-10 17:36:30.484250976 +0200 --- dhcp-4.3.2b1/client/Makefile.am.SfzxjY 2015-02-08 15:13:29.091275576 +0100
+++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:38:10.778828583 +0200 +++ 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 @@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \ scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \ 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 $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5 man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/common/tests/Makefile.am diff -up dhcp-4.3.2b1/common/tests/Makefile.am.SfzxjY dhcp-4.3.2b1/common/tests/Makefile.am
--- dhcp-4.3.1b1/common/tests/Makefile.am.uCWMBl 2014-07-10 17:38:10.779828569 +0200 --- dhcp-4.3.2b1/common/tests/Makefile.am.SfzxjY 2015-02-08 15:14:40.971279704 +0100
+++ dhcp-4.3.1b1/common/tests/Makefile.am 2014-07-10 17:38:21.355678580 +0200 +++ dhcp-4.3.2b1/common/tests/Makefile.am 2015-02-08 15:15:10.455871224 +0100
@@ -13,19 +13,19 @@ ATF_TESTS += alloc_unittest dns_unittest @@ -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_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
alloc_unittest_LDADD = $(ATF_LDFLAGS) alloc_unittest_LDADD = $(ATF_LDFLAGS)
alloc_unittest_LDADD += ../libdhcp.a \ 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 \ ../../omapip/libomapi.a \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c @@ -31,7 +31,7 @@ misc_unittest_LDADD += ../libdhcp.a \
misc_unittest_LDADD = $(ATF_LDFLAGS) ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c
misc_unittest_LDADD += ../libdhcp.a \ ns_name_unittest_LDADD = $(ATF_LDFLAGS)
ns_name_unittest_LDADD += ../libdhcp.a \
- ../../omapip/libomapi.a \ - ../../omapip/libomapi.a \
+ ../../omapip/libomapi.la \ + ../../omapip/libomapi.la \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
check: $(ATF_TESTS) check: $(ATF_TESTS)
atf-run | atf-report atf-run | atf-report
diff -up dhcp-4.3.1b1/configure.ac.uCWMBl dhcp-4.3.1b1/configure.ac diff -up dhcp-4.3.2b1/configure.ac.SfzxjY dhcp-4.3.2b1/configure.ac
--- dhcp-4.3.1b1/configure.ac.uCWMBl 2014-07-10 17:38:10.766828753 +0200 --- dhcp-4.3.2b1/configure.ac.SfzxjY 2015-02-08 15:14:40.951279981 +0100
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:38:10.779828569 +0200 +++ dhcp-4.3.2b1/configure.ac 2015-02-08 15:14:40.971279704 +0100
@@ -39,7 +39,8 @@ fi @@ -39,7 +39,8 @@ fi
# Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
AC_USE_SYSTEM_EXTENSIONS 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]) AC_CONFIG_HEADERS([includes/config.h])
# we sometimes need to know byte order for building packets # 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 diff -up dhcp-4.3.2b1/dhcpctl/Makefile.am.SfzxjY dhcp-4.3.2b1/dhcpctl/Makefile.am
--- dhcp-4.3.1b1/dhcpctl/Makefile.am.uCWMBl 2014-07-10 17:36:30.485250962 +0200 --- dhcp-4.3.2b1/dhcpctl/Makefile.am.SfzxjY 2015-02-08 15:13:29.092275562 +0100
+++ dhcp-4.3.1b1/dhcpctl/Makefile.am 2014-07-10 17:38:10.780828554 +0200 +++ dhcp-4.3.2b1/dhcpctl/Makefile.am 2015-02-08 15:14:40.971279704 +0100
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
bin_PROGRAMS = omshell bin_PROGRAMS = omshell
-lib_LIBRARIES = libdhcpctl.a -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.a ../common/libdhcp.a ../omapip/libomapi.a \
+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ +cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
diff -up dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl dhcp-4.3.1b1/omapip/Makefile.am diff -up dhcp-4.3.2b1/omapip/Makefile.am.SfzxjY dhcp-4.3.2b1/omapip/Makefile.am
--- dhcp-4.3.1b1/omapip/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200 --- dhcp-4.3.2b1/omapip/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
+++ dhcp-4.3.1b1/omapip/Makefile.am 2014-07-10 17:38:10.780828554 +0200 +++ dhcp-4.3.2b1/omapip/Makefile.am 2015-02-08 15:14:40.972279690 +0100
@@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
-lib_LIBRARIES = libomapi.a -lib_LIBRARIES = libomapi.a
+lib_LTLIBRARIES = libomapi.la +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.a \
+svtest_LDADD = libomapi.la \ +svtest_LDADD = libomapi.la \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
diff -up dhcp-4.3.1b1/relay/Makefile.am.uCWMBl dhcp-4.3.1b1/relay/Makefile.am diff -up dhcp-4.3.2b1/relay/Makefile.am.SfzxjY dhcp-4.3.2b1/relay/Makefile.am
--- dhcp-4.3.1b1/relay/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200 --- dhcp-4.3.2b1/relay/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
+++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:38:10.780828554 +0200 +++ dhcp-4.3.2b1/relay/Makefile.am 2015-02-08 15:14:40.972279690 +0100
@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay 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 $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
man_MANS = dhcrelay.8 man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/server/Makefile.am.uCWMBl dhcp-4.3.1b1/server/Makefile.am diff -up dhcp-4.3.2b1/server/Makefile.am.SfzxjY dhcp-4.3.2b1/server/Makefile.am
--- dhcp-4.3.1b1/server/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200 --- dhcp-4.3.2b1/server/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 17:38:10.780828554 +0200 +++ 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 @@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
dhcpv6.c mdb6.c ldap.c ldap_casa.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 $(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
EXTRA_DIST = $(man_MANS) EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl dhcp-4.3.1b1/server/tests/Makefile.am diff -up dhcp-4.3.2b1/server/tests/Makefile.am.SfzxjY dhcp-4.3.2b1/server/tests/Makefile.am
--- dhcp-4.3.1b1/server/tests/Makefile.am.uCWMBl 2014-07-10 17:36:30.486250948 +0200 --- dhcp-4.3.2b1/server/tests/Makefile.am.SfzxjY 2015-02-08 15:13:29.093275549 +0100
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 17:38:10.780828554 +0200 +++ 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 @@ -17,8 +17,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c \ ../ddns.c ../dhcpleasequery.c ../dhcpv6.c ../mdb6.c \
../ldap.c ../ldap_casa.c ../dhcpd.c ../ldap.c ../ldap_casa.c ../dhcpd.c

View File

@ -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;
}
}

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac diff -up dhcp-4.3.2b1/configure.ac.systemtap dhcp-4.3.2b1/configure.ac
--- dhcp-4.3.1b1/configure.ac.systemtap 2014-07-10 18:31:05.966880404 +0200 --- dhcp-4.3.2b1/configure.ac.systemtap 2015-02-08 17:42:45.701754886 +0100
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 18:31:06.027879541 +0200 +++ dhcp-4.3.2b1/configure.ac 2015-02-08 17:42:45.768753919 +0100
@@ -534,6 +534,35 @@ else @@ -534,6 +534,35 @@ else
AC_MSG_RESULT(no) AC_MSG_RESULT(no)
fi fi
@ -45,9 +45,9 @@ diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac
]) ])
AC_OUTPUT AC_OUTPUT
diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am diff -up dhcp-4.3.2b1/Makefile.am.systemtap dhcp-4.3.2b1/Makefile.am
--- dhcp-4.3.1b1/Makefile.am.systemtap 2014-07-10 18:31:05.891881465 +0200 --- dhcp-4.3.2b1/Makefile.am.systemtap 2015-02-08 17:42:45.632755881 +0100
+++ dhcp-4.3.1b1/Makefile.am 2014-07-10 18:31:06.027879541 +0200 +++ dhcp-4.3.2b1/Makefile.am 2015-02-08 17:42:45.769753905 +0100
@@ -33,5 +33,8 @@ endif @@ -33,5 +33,8 @@ endif
SUBDIRS += includes tests common omapip client dhcpctl relay server 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 nobase_include_HEADERS = dhcpctl/dhcpctl.h
diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c diff -up dhcp-4.3.2b1/server/dhcp.c.systemtap dhcp-4.3.2b1/server/dhcp.c
--- dhcp-4.3.1b1/server/dhcp.c.systemtap 2014-07-10 18:31:06.016879697 +0200 --- dhcp-4.3.2b1/server/dhcp.c.systemtap 2015-02-08 17:42:45.750754179 +0100
+++ dhcp-4.3.1b1/server/dhcp.c 2014-07-10 18:36:07.392617942 +0200 +++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:46:12.956764712 +0100
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
#include <errno.h> #include <errno.h>
#include <limits.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 commit_leases_ackout(void *foo);
static void maybe_return_agent_options(struct packet *packet, static void maybe_return_agent_options(struct packet *packet,
struct option_state *options); 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; dhcp_failover_state_t *peer;
#endif #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, find_lease (&lease, packet, packet -> shared_network,
0, &peer_has_leases, (struct lease *)0, MDL); 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: out:
if (lease) if (lease)
lease_dereference (&lease, MDL); 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) 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 #endif
int have_requested_addr = 0; 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, oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS); DHO_DHCP_REQUESTED_ADDRESS);
memset (&data, 0, sizeof data); 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)); log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip));
out: out:
@ -106,7 +106,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
if (subnet) if (subnet)
subnet_dereference (&subnet, MDL); subnet_dereference (&subnet, MDL);
if (lease) if (lease)
@@ -742,6 +751,7 @@ void dhcprelease (packet, ms_nulltp) @@ -747,6 +756,7 @@ void dhcprelease (packet, ms_nulltp)
const char *s; const char *s;
char msgbuf [1024], cstr[16]; /* XXX */ 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 /* DHCPRELEASE must not specify address in requested-address
option, but old protocol specs weren't explicit about this, 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 #endif
if (lease) if (lease)
lease_dereference (&lease, MDL); 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) 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 option_cache *oc;
struct data_string data; 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. */ /* DHCPDECLINE must specify address. */
if (!(oc = lookup_option (&dhcp_universe, packet -> options, if (!(oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS))) 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); option_state_dereference (&options, MDL);
if (lease) if (lease)
lease_dereference (&lease, MDL); 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) 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; int h_w_fixed_addr = 0;
#endif #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 /* 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 it's common for clients not to do this, so we'll use their IP
source address if they didn't set ciaddr. */ 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) if (subnet)
subnet_dereference (&subnet, MDL); 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()); + TRACE(DHCPD_INFORM_DONE());
} }
void nak_lease (packet, cip) /*!
@@ -1600,6 +1620,8 @@ void nak_lease (packet, cip) @@ -1617,6 +1637,8 @@ void nak_lease (packet, cip, network_gro
struct option_state *options = (struct option_state *)0;
struct option_cache *oc = (struct option_cache *)0; struct option_cache *oc = (struct option_cache *)0;
struct option_state *eval_options = NULL;
+ TRACE(DHCPD_NAK_LEASE_START()); + TRACE(DHCPD_NAK_LEASE_START());
+ +
option_state_allocate (&options, MDL); option_state_allocate (&options, MDL);
memset (&outgoing, 0, sizeof outgoing); memset (&outgoing, 0, sizeof outgoing);
memset (&raw, 0, sizeof raw); 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); 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) if (lease -> state)
return; 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. */ /* Save original cltt for comparison later. */
lease_cltt = lease->cltt; 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 #endif
dhcp_reply(lease); 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) if (!state)
log_fatal ("dhcp_reply was supplied lease with no 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... */ /* Compose a response for the client... */
memset (&raw, 0, sizeof raw); memset (&raw, 0, sizeof raw);
memset (&d1, 0, sizeof d1); 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); free_lease_state (state, MDL);
lease -> state = (struct lease_state *)0; 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, 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 data_string client_identifier;
struct hardware h; 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) #if defined(FAILOVER_PROTOCOL)
/* Quick check to see if the peer has leases. */ /* Quick check to see if the peer has leases. */
if (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) #if defined (DEBUG_FIND_LEASE)
log_info ("Not returning a lease."); log_info ("Not returning a lease.");
#endif #endif
@ -231,9 +233,9 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
return 0; return 0;
} }
diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c diff -up dhcp-4.3.2b1/server/dhcpd.c.systemtap dhcp-4.3.2b1/server/dhcpd.c
--- dhcp-4.3.1b1/server/dhcpd.c.systemtap 2014-07-10 18:31:06.006879838 +0200 --- dhcp-4.3.2b1/server/dhcpd.c.systemtap 2015-02-08 17:42:45.740754323 +0100
+++ dhcp-4.3.1b1/server/dhcpd.c 2014-07-10 18:31:06.030879499 +0200 +++ dhcp-4.3.2b1/server/dhcpd.c 2015-02-08 17:42:45.772753862 +0100
@@ -52,6 +52,8 @@ static const char url [] = @@ -52,6 +52,8 @@ static const char url [] =
# undef group # undef group
#endif /* PARANOIA */ #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 #ifndef UNIT_TEST
static void usage(void); static void usage(void);
#endif #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 that we are about to start working */
log_info("Server starting service."); 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... * Receive packets and dispatch them...
* dispatch() will never return. * dispatch() will never return.
diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c diff -up dhcp-4.3.2b1/server/dhcpv6.c.systemtap dhcp-4.3.2b1/server/dhcpv6.c
--- dhcp-4.3.1b1/server/dhcpv6.c.systemtap 2014-07-10 18:31:05.998879951 +0200 --- dhcp-4.3.2b1/server/dhcpv6.c.systemtap 2015-02-08 17:42:45.730754468 +0100
+++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 18:31:06.032879471 +0200 +++ dhcp-4.3.2b1/server/dhcpv6.c 2015-02-08 17:42:45.774753833 +0100
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
/*! \file server/dhcpv6.c */ /*! \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 #ifdef DHCPv6
@@ -4829,6 +4830,8 @@ static void @@ -4999,6 +5000,8 @@ static void
dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) { dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) {
struct data_string client_id; 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. * 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. * Clean up.
*/ */
data_string_forget(&client_id, MDL); 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 client_id;
struct data_string server_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. * 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(&client_id, MDL);
data_string_forget(&server_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. /* 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; struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options)); 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. * Basic client message validation.
*/ */
@@ -5170,6 +5181,8 @@ exit: @@ -5340,6 +5351,8 @@ exit:
option_state_dereference(&cli_enc_opt_state, MDL); option_state_dereference(&cli_enc_opt_state, MDL);
if (opt_state != NULL) if (opt_state != NULL)
option_state_dereference(&opt_state, MDL); 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 client_id;
struct data_string server_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. * 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(&server_id, MDL);
data_string_forget(&client_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) { dhcpv6_rebind(struct data_string *reply, struct packet *packet) {
struct data_string client_id; 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)) { if (!valid_client_msg(packet, &client_id)) {
return; 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); lease_to_client(reply, packet, &client_id, NULL);
data_string_forget(&client_id, MDL); 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 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 client_id;
struct data_string server_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. * 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(&server_id, MDL);
data_string_forget(&client_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 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 client_id;
struct data_string server_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. * 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(&server_id, MDL);
data_string_forget(&client_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 client_id;
struct data_string server_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. * 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(&client_id, MDL);
} }
data_string_forget(&server_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; struct dhcpv6_relay_packet *reply;
int reply_ofs; 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. * Initialize variables for early exit.
*/ */
@@ -6484,6 +6519,8 @@ exit: @@ -6654,6 +6689,8 @@ exit:
if (enc_packet != NULL) { if (enc_packet != NULL) {
packet_dereference(&enc_packet, MDL); 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 static void
diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c diff -up dhcp-4.3.2b1/server/failover.c.systemtap dhcp-4.3.2b1/server/failover.c
--- dhcp-4.3.1b1/server/failover.c.systemtap 2014-07-02 19:58:40.000000000 +0200 --- dhcp-4.3.2b1/server/failover.c.systemtap 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.1b1/server/failover.c 2014-07-10 18:31:06.034879442 +0200 +++ dhcp-4.3.2b1/server/failover.c 2015-02-08 17:42:45.775753818 +0100
@@ -30,6 +30,8 @@ @@ -30,6 +30,8 @@
#include "dhcpd.h" #include "dhcpd.h"
#include <omapip/omapip_p.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) #if defined (FAILOVER_PROTOCOL)
dhcp_failover_state_t *failover_states; dhcp_failover_state_t *failover_states;
static isc_result_t do_a_failover_option (omapi_object_t *, 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 lease *l;
struct timeval tv; 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 /* 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 * state changes, we need to re-schedule any pending updates just to
* be on the safe side. This results in retransmission. * 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; 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; 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) if (state -> me.state != normal)
return 0; 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; state->last_balance = cur_time;
for (s = shared_networks ; s ; s = s->next) { 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) if (leases_queued)
commit_leases(); 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; return leases_queued;
} }
diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.am diff -up dhcp-4.3.2b1/server/Makefile.am.systemtap dhcp-4.3.2b1/server/Makefile.am
--- dhcp-4.3.1b1/server/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200 --- dhcp-4.3.2b1/server/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 18:31:06.028879527 +0200 +++ 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 @@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
sbin_PROGRAMS = dhcpd sbin_PROGRAMS = dhcpd
dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ 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 +dhcpd_LDADD += probes.o
+endif +endif
diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d diff -up dhcp-4.3.2b1/server/probes.d.systemtap dhcp-4.3.2b1/server/probes.d
--- dhcp-4.3.1b1/server/probes.d.systemtap 2014-07-10 18:31:06.034879442 +0200 --- dhcp-4.3.2b1/server/probes.d.systemtap 2015-02-08 17:42:45.775753818 +0100
+++ dhcp-4.3.1b1/server/probes.d 2014-07-10 18:31:06.034879442 +0200 +++ dhcp-4.3.2b1/server/probes.d 2015-02-08 17:42:45.775753818 +0100
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
+provider dhcpd { +provider dhcpd {
+ probe main(); + 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_start(int, int);
+ probe failover_set_state_done(); + probe failover_set_state_done();
+}; +};
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tests/Makefile.am diff -up dhcp-4.3.2b1/server/tests/Makefile.am.systemtap dhcp-4.3.2b1/server/tests/Makefile.am
--- dhcp-4.3.1b1/server/tests/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200 --- dhcp-4.3.2b1/server/tests/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 18:31:06.034879442 +0200 +++ 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 @@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
$(top_builddir)/dhcpctl/libdhcpctl.la \ $(top_builddir)/dhcpctl/libdhcpctl.la \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc $(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 = ATF_TESTS =
TESTS = TESTS =
if HAVE_ATF if HAVE_ATF
diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h diff -up dhcp-4.3.2b1/server/trace.h.systemtap dhcp-4.3.2b1/server/trace.h
--- dhcp-4.3.1b1/server/trace.h.systemtap 2014-07-10 18:31:06.034879442 +0200 --- dhcp-4.3.2b1/server/trace.h.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.1b1/server/trace.h 2014-07-10 18:31:06.034879442 +0200 +++ dhcp-4.3.2b1/server/trace.h 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
+// trace.h +// 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 +// Wrap the probe to allow it to be removed when no systemtap available
+#define TRACE(probe) +#define TRACE(probe)
+#endif +#endif
diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp diff -up dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap dhcp-4.3.2b1/tapset/dhcpd.stp
--- dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap 2014-07-10 18:31:06.035879428 +0200 --- dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.1b1/tapset/dhcpd.stp 2014-07-10 18:31:06.035879428 +0200 +++ dhcp-4.3.2b1/tapset/dhcpd.stp 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,212 @@ @@ -0,0 +1,212 @@
+/* dhcpd tapset +/* dhcpd tapset
+ Copyright (C) 2011, Red Hat Inc. + 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); + probestr = sprintf("%s", $$name);
+} +}
diff -up dhcp-4.3.1b1/tapset/Makefile.am.systemtap dhcp-4.3.1b1/tapset/Makefile.am diff -up dhcp-4.3.2b1/tapset/Makefile.am.systemtap dhcp-4.3.2b1/tapset/Makefile.am
--- dhcp-4.3.1b1/tapset/Makefile.am.systemtap 2014-07-10 18:31:06.035879428 +0200 --- dhcp-4.3.2b1/tapset/Makefile.am.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.1b1/tapset/Makefile.am 2014-07-10 18:31:06.034879442 +0200 +++ dhcp-4.3.2b1/tapset/Makefile.am 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
+# Makefile.am for dhcp/tapset +# Makefile.am for dhcp/tapset
+# Jiri Popelka +# Jiri Popelka

View File

@ -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 *,

View File

@ -12,13 +12,13 @@
%global prever b1 %global prever b1
#%%global VERSION %{version}-%{patchver} #%%global VERSION %{version}-%{patchver}
#%%global VERSION %{version}%{prever} #%%global VERSION %{version}
%global VERSION %{version} %global VERSION %{version}%{prever}
Summary: Dynamic host configuration protocol software Summary: Dynamic host configuration protocol software
Name: dhcp Name: dhcp
Version: 4.3.1 Version: 4.3.2
Release: 21%{?dist} Release: 0.1%{prever}%{?dist}
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to # NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
# dcantrell maintaining the package) made incorrect use of the epoch and # 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. # 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 Patch6: dhcp-dhclient-decline-backoff.patch
Patch7: dhcp-unicast-bootp.patch Patch7: dhcp-unicast-bootp.patch
Patch8: dhcp-default-requested-options.patch Patch8: dhcp-default-requested-options.patch
Patch9: dhcp-xen-checksum.patch
Patch10: dhcp-manpages.patch Patch10: dhcp-manpages.patch
Patch11: dhcp-paths.patch Patch11: dhcp-paths.patch
Patch12: dhcp-CLOEXEC.patch Patch12: dhcp-CLOEXEC.patch
@ -69,18 +69,12 @@ Patch29: dhcp-getifaddrs.patch
Patch30: dhcp-omapi-leak.patch Patch30: dhcp-omapi-leak.patch
Patch31: dhcp-failOverPeer.patch Patch31: dhcp-failOverPeer.patch
Patch32: dhcp-interval.patch Patch32: dhcp-interval.patch
Patch33: dhcp-range6.patch Patch33: dhcp-no-subnet-error2info.patch
Patch34: dhcp-no-subnet-error2info.patch Patch34: dhcp-sd_notify.patch
Patch35: dhcp-ffff-checksum.patch Patch35: dhcp-ldapgssapi.patch
Patch36: dhcp-sd_notify.patch Patch36: dhcp-option97-pxe-client-id.patch
Patch37: dhcp-dhc6-life.patch Patch37: dhcp-stateless-DUID-LLT.patch
Patch38: dhcp-skip-vlan.patch Patch38: dhcp-client-request-release-bind-iface.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
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
@ -256,11 +250,6 @@ rm -rf includes/isc-dhcp
# to the list of default requested DHCP options # to the list of default requested DHCP options
%patch8 -p1 -b .requested %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 # Various man-page-only fixes
%patch10 -p1 -b .man %patch10 -p1 -b .man
@ -346,49 +335,26 @@ rm -rf includes/isc-dhcp
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038]) # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038])
%patch32 -p1 -b .interval %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. # 'No subnet declaration for <iface>' should be info, not error.
%patch34 -p1 -b .error2info %patch33 -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
# support for sending startup notification to systemd (#1077666) # support for sending startup notification to systemd (#1077666)
%patch36 -p1 -b .sd_notify %patch34 -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
# GSSAPI support for ldap authentication (#1150542) # GSSAPI support for ldap authentication (#1150542)
%patch40 -p1 -b .ldapgssapi %patch35 -p1 -b .ldapgssapi
# option 97 - pxe-client-id (#1058674) # option 97 - pxe-client-id (#1058674)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38110]) # (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) # dhclient: write DUID_LLT even in stateless mode (#1156356)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144]) # (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) # send unicast request/release via correct interface (#800561, #1177351)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544]) # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544])
%patch43 -p1 -b .bind-iface %patch38 -p1 -b .bind-iface
# to build against bind-9.9.6
%patch100 -p1 -b .bind996
# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128 # DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
# https://bugzilla.gnome.org/show_bug.cgi?id=656610 # https://bugzilla.gnome.org/show_bug.cgi?id=656610
@ -691,6 +657,9 @@ done
%doc doc/html/ %doc doc/html/
%changelog %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 * Tue Feb 03 2015 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.1-21
- send unicast request/release via correct interface (#800561, #1177351) - send unicast request/release via correct interface (#800561, #1177351)