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

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
--- dhcp-4.3.0/common/lpf.c.IPoIB-log-id 2014-02-18 15:52:12.292569480 +0100
+++ dhcp-4.3.0/common/lpf.c 2014-02-18 15:52:12.297569411 +0100
@@ -164,6 +164,8 @@ int if_register_lpf (info)
diff -up dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id dhcp-4.3.2b1/common/lpf.c
--- dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id 2015-02-08 17:37:47.055023959 +0100
+++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:41:21.294972666 +0100
@@ -152,6 +152,8 @@ int if_register_lpf (info)
void if_register_send (info)
struct interface_info *info;
{
@ -10,7 +10,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
/* If we're using the lpf API for sending and receiving,
we don't need to register this interface twice. */
#ifndef USE_LPF_RECEIVE
@@ -171,11 +173,15 @@ void if_register_send (info)
@@ -159,11 +161,15 @@ void if_register_send (info)
#else
info -> wfdesc = info -> rfdesc;
#endif
@ -27,7 +27,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
&info -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""),
(info -> shared_network ?
@@ -185,6 +191,10 @@ void if_register_send (info)
@@ -173,6 +179,10 @@ void if_register_send (info)
void if_deregister_send (info)
struct interface_info *info;
{
@ -38,7 +38,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
/* don't need to close twice if we are using lpf for sending and
receiving */
#ifndef USE_LPF_RECEIVE
@@ -197,7 +207,7 @@ void if_deregister_send (info)
@@ -185,7 +195,7 @@ void if_deregister_send (info)
log_info ("Disabling output on LPF/%s/%s%s%s",
info -> name,
print_hw_addr (info -> hw_address.hbuf [0],
@ -47,27 +47,27 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
&info -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""),
(info -> shared_network ?
@@ -224,7 +234,7 @@ static void lpf_gen_filter_setup (struct
@@ -212,6 +222,8 @@ static void lpf_gen_filter_setup (struct
void if_register_receive (info)
struct interface_info *info;
{
- int val;
+ int val, hlen;
+ int hlen;
+
/* Open a LPF device and hang it on this interface... */
info -> rfdesc = if_register_lpf (info);
@@ -236,7 +246,9 @@ void if_register_receive (info)
if (errno != ENOPROTOOPT)
@@ -225,7 +237,9 @@ void if_register_receive (info)
log_fatal ("Failed to set auxiliary packet data: %m");
}
}
- }
+ hlen = info -> hw_address.hlen;
+ } else
+ hlen = 9;
}
#endif
#if defined (HAVE_TR_SUPPORT)
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
@@ -249,7 +261,7 @@ void if_register_receive (info)
@@ -241,7 +255,7 @@ void if_register_receive (info)
log_info ("Listening on LPF/%s/%s%s%s",
info -> name,
print_hw_addr (info -> hw_address.hbuf [0],
@ -76,7 +76,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
&info -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""),
(info -> shared_network ?
@@ -259,6 +271,10 @@ void if_register_receive (info)
@@ -251,6 +265,10 @@ void if_register_receive (info)
void if_deregister_receive (info)
struct interface_info *info;
{
@ -87,7 +87,7 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
/* for LPF this is simple, packet filters are removed when sockets
are closed */
close (info -> rfdesc);
@@ -267,7 +283,7 @@ void if_deregister_receive (info)
@@ -259,7 +277,7 @@ void if_deregister_receive (info)
log_info ("Disabling input on LPF/%s/%s%s%s",
info -> name,
print_hw_addr (info -> hw_address.hbuf [0],
@ -96,10 +96,10 @@ diff -up dhcp-4.3.0/common/lpf.c.IPoIB-log-id dhcp-4.3.0/common/lpf.c
&info -> hw_address.hbuf [1]),
(info -> shared_network ? "/" : ""),
(info -> shared_network ?
diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
--- dhcp-4.3.0/server/dhcp.c.IPoIB-log-id 2014-02-18 15:52:12.204570695 +0100
+++ dhcp-4.3.0/server/dhcp.c 2014-02-18 15:52:12.299569383 +0100
@@ -74,6 +74,42 @@ const int dhcp_type_name_max = ((sizeof
diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c
--- dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id 2015-02-08 17:37:46.980025024 +0100
+++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:37:47.061023874 +0100
@@ -77,6 +77,42 @@ const int dhcp_type_name_max = ((sizeof
# define send_packet trace_packet_send
#endif
@ -142,7 +142,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
void
dhcp (struct packet *packet) {
int ms_nulltp = 0;
@@ -102,9 +138,7 @@ dhcp (struct packet *packet) {
@@ -105,9 +141,7 @@ dhcp (struct packet *packet) {
log_info("%s from %s via %s: %s", s,
(packet->raw->htype
@ -153,7 +153,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
: "<no identifier>"),
packet->raw->giaddr.s_addr
? inet_ntoa(packet->raw->giaddr)
@@ -286,9 +320,7 @@ void dhcpdiscover (packet, ms_nulltp)
@@ -289,9 +323,7 @@ void dhcpdiscover (packet, ms_nulltp)
*/
snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s",
(packet -> raw -> htype
@ -164,7 +164,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
: (lease
? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")),
@@ -478,9 +510,7 @@ void dhcprequest (packet, ms_nulltp, ip_
@@ -481,9 +513,7 @@ void dhcprequest (packet, ms_nulltp, ip_
"DHCPREQUEST for %s%s from %s %s%s%svia %s",
piaddr (cip), smbuf,
(packet -> raw -> htype
@ -175,7 +175,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
: (lease
? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")),
@@ -719,9 +749,7 @@ void dhcprelease (packet, ms_nulltp)
@@ -724,9 +754,7 @@ void dhcprelease (packet, ms_nulltp)
if ((oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS))) {
log_info ("DHCPRELEASE from %s specified requested-address.",
@ -186,7 +186,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
}
oc = lookup_option (&dhcp_universe, packet -> options,
@@ -795,9 +823,7 @@ void dhcprelease (packet, ms_nulltp)
@@ -800,9 +828,7 @@ void dhcprelease (packet, ms_nulltp)
"DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)",
cstr,
(packet -> raw -> htype
@ -197,7 +197,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
: (lease
? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")),
@@ -886,9 +912,7 @@ void dhcpdecline (packet, ms_nulltp)
@@ -891,9 +917,7 @@ void dhcpdecline (packet, ms_nulltp)
"DHCPDECLINE of %s from %s %s%s%svia %s",
piaddr (cip),
(packet -> raw -> htype
@ -208,7 +208,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
: (lease
? print_hex_1(lease->uid_len, lease->uid, 60)
: "<no identifier>")),
@@ -1541,8 +1565,7 @@ void dhcpinform (packet, ms_nulltp)
@@ -1544,8 +1568,7 @@ void dhcpinform (packet, ms_nulltp)
/* Report what we're sending. */
snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip),
(packet->raw->htype && packet->raw->hlen) ?
@ -218,7 +218,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
"<no client hardware address>");
log_info("%s %s", msgbuf, gip.len ? piaddr(gip) :
packet->interface->name);
@@ -1682,9 +1705,7 @@ void nak_lease (packet, cip)
@@ -1711,9 +1734,7 @@ void nak_lease (packet, cip, network_gro
/* Report what we're sending... */
log_info ("DHCPNAK on %s to %s via %s",
piaddr (*cip),
@ -229,7 +229,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
packet -> raw -> giaddr.s_addr
? inet_ntoa (packet -> raw -> giaddr)
: packet -> interface -> name);
@@ -3468,7 +3489,7 @@ void dhcp_reply (lease)
@@ -3617,7 +3638,7 @@ void dhcp_reply (lease)
? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER")
: "BOOTREPLY"),
piaddr (lease -> ip_addr),
@ -238,7 +238,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
? print_hw_addr (lease -> hardware_addr.hbuf [0],
lease -> hardware_addr.hlen - 1,
&lease -> hardware_addr.hbuf [1])
@@ -4022,10 +4043,7 @@ int find_lease (struct lease **lp,
@@ -4171,10 +4192,7 @@ int find_lease (struct lease **lp,
if (uid_lease) {
if (uid_lease->binding_state == FTS_ACTIVE) {
log_error ("client %s has duplicate%s on %s",
@ -250,7 +250,7 @@ diff -up dhcp-4.3.0/server/dhcp.c.IPoIB-log-id dhcp-4.3.0/server/dhcp.c
" leases",
(ip_lease -> subnet ->
shared_network -> name));
@@ -4192,9 +4210,7 @@ int find_lease (struct lease **lp,
@@ -4341,9 +4359,7 @@ int find_lease (struct lease **lp,
log_error("uid lease %s for client %s is duplicate "
"on %s",
piaddr(uid_lease->ip_addr),

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

View File

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

View File

@ -1,6 +1,6 @@
diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.bmgpWV 2014-07-10 17:50:26.922402550 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:53:43.629623477 +0200
diff -up dhcp-4.3.2b1/client/dhclient.c.lpf-ib dhcp-4.3.2b1/client/dhclient.c
--- dhcp-4.3.2b1/client/dhclient.c.lpf-ib 2015-02-08 17:19:42.107405843 +0100
+++ dhcp-4.3.2b1/client/dhclient.c 2015-02-08 17:19:42.116405716 +0100
@@ -114,6 +114,8 @@ static int check_domain_name_list(const
static int check_option_values(struct universe *universe, unsigned int opt,
const char *ptr, size_t len);
@ -54,9 +54,9 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.bmgpWV dhcp-4.3.1b1/client/dhclient.c
/* Individual States:
*
* Each routine is called from the dhclient_state_machine() in one of
diff -up dhcp-4.3.1b1/common/bpf.c.bmgpWV dhcp-4.3.1b1/common/bpf.c
--- dhcp-4.3.1b1/common/bpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200
+++ dhcp-4.3.1b1/common/bpf.c 2014-07-10 17:52:57.705272295 +0200
diff -up dhcp-4.3.2b1/common/bpf.c.lpf-ib dhcp-4.3.2b1/common/bpf.c
--- dhcp-4.3.2b1/common/bpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
+++ dhcp-4.3.2b1/common/bpf.c 2015-02-08 17:19:42.116405716 +0100
@@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
BPF_STMT(BPF_RET+BPF_K, 0),
};
@ -102,12 +102,12 @@ diff -up dhcp-4.3.1b1/common/bpf.c.bmgpWV dhcp-4.3.1b1/common/bpf.c
#if defined (HAVE_TR_SUPPORT)
struct bpf_insn dhcp_bpf_tr_filter [] = {
/* accept all token ring packets due to variable length header */
diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
--- dhcp-4.3.1b1/common/lpf.c.bmgpWV 2014-07-10 17:48:03.797424616 +0200
+++ dhcp-4.3.1b1/common/lpf.c 2014-07-10 17:52:57.706272281 +0200
@@ -46,6 +46,17 @@
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
diff -up dhcp-4.3.2b1/common/lpf.c.lpf-ib dhcp-4.3.2b1/common/lpf.c
--- dhcp-4.3.2b1/common/lpf.c.lpf-ib 2015-02-08 17:19:42.101405928 +0100
+++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:36:15.072329845 +0100
@@ -47,6 +47,17 @@
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h>
+#include <ifaddrs.h>
+
@ -123,18 +123,14 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
#endif
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
@@ -92,10 +103,21 @@ int if_register_lpf (info)
@@ -80,10 +91,20 @@ int if_register_lpf (info)
struct sockaddr common;
} sa;
struct ifreq ifr;
+ int type;
+ int protocol;
/* Make an LPF socket. */
- if ((sock = socket(PF_PACKET, SOCK_RAW,
- htons((short)ETH_P_ALL))) < 0) {
+ get_hw_addr(info);
+
+ get_hw_addr(info);
+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
+ type = SOCK_DGRAM;
+ protocol = ETHERTYPE_IP;
@ -142,12 +138,15 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
+ type = SOCK_RAW;
+ protocol = ETH_P_ALL;
+ }
+
/* Make an LPF socket. */
- if ((sock = socket(PF_PACKET, SOCK_RAW,
- htons((short)ETH_P_ALL))) < 0) {
+ if ((sock = socket(PF_PACKET, type, htons((short)protocol))) < 0) {
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
errno == EAFNOSUPPORT || errno == EINVAL) {
@@ -118,6 +140,7 @@ int if_register_lpf (info)
@@ -106,6 +127,7 @@ int if_register_lpf (info)
/* Bind to the interface name */
memset (&sa, 0, sizeof sa);
sa.ll.sll_family = AF_PACKET;
@ -155,8 +154,8 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
sa.ll.sll_ifindex = ifr.ifr_ifindex;
if (bind (sock, &sa.common, sizeof sa)) {
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
@@ -133,8 +156,6 @@ int if_register_lpf (info)
log_fatal ("Bind socket to interface: %m");
@@ -122,8 +144,6 @@ int if_register_lpf (info)
}
- get_hw_addr(info->name, &info->hw_address);
@ -164,7 +163,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
return sock;
}
#endif /* USE_LPF_SEND || USE_LPF_RECEIVE */
@@ -189,6 +210,8 @@ void if_deregister_send (info)
@@ -178,6 +198,8 @@ void if_deregister_send (info)
in bpf includes... */
extern struct sock_filter dhcp_bpf_filter [];
extern int dhcp_bpf_filter_len;
@ -173,26 +172,25 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
#if defined (HAVE_TR_SUPPORT)
extern struct sock_filter dhcp_bpf_tr_filter [];
@@ -206,11 +229,13 @@ void if_register_receive (info)
/* Open a LPF device and hang it on this interface... */
info -> rfdesc = if_register_lpf (info);
- val = 1;
- if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val,
- sizeof val) < 0) {
- if (errno != ENOPROTOOPT)
@@ -196,11 +218,12 @@ void if_register_receive (info)
#ifdef PACKET_AUXDATA
{
int val = 1;
-
- if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
- &val, sizeof(val)) < 0) {
- if (errno != ENOPROTOOPT) {
- log_fatal ("Failed to set auxiliary packet data: %m");
+ if (info->hw_address.hbuf[0] != HTYPE_INFINIBAND) {
+ val = 1;
+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA,
+ &val, sizeof val) < 0) {
+ if (errno != ENOPROTOOPT)
+ if (setsockopt(info->rfdesc, SOL_PACKET, PACKET_AUXDATA,
+ &val, sizeof(val)) < 0) {
+ if (errno != ENOPROTOOPT) {
+ log_fatal ("Failed to set auxiliary packet data: %m");
+ }
}
#if defined (HAVE_TR_SUPPORT)
@@ -256,15 +281,28 @@ static void lpf_gen_filter_setup (info)
}
}
@@ -250,15 +273,28 @@ static void lpf_gen_filter_setup (info)
memset(&p, 0, sizeof(p));
@ -230,7 +228,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
sizeof p) < 0) {
@@ -321,6 +359,54 @@ static void lpf_tr_filter_setup (info)
@@ -315,6 +351,54 @@ static void lpf_tr_filter_setup (info)
#endif /* USE_LPF_RECEIVE */
#ifdef USE_LPF_SEND
@ -285,7 +283,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
ssize_t send_packet (interface, packet, raw, len, from, to, hto)
struct interface_info *interface;
struct packet *packet;
@@ -341,6 +427,11 @@ ssize_t send_packet (interface, packet,
@@ -335,6 +419,11 @@ ssize_t send_packet (interface, packet,
return send_fallback (interface, packet, raw,
len, from, to, hto);
@ -297,7 +295,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
if (hto == NULL && interface->anycast_mac_addr.hlen)
hto = &interface->anycast_mac_addr;
@@ -362,6 +453,42 @@ ssize_t send_packet (interface, packet,
@@ -355,6 +444,42 @@ ssize_t send_packet (interface, packet,
#endif /* USE_LPF_SEND */
#ifdef USE_LPF_RECEIVE
@ -340,18 +338,18 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
ssize_t receive_packet (interface, buf, len, from, hfrom)
struct interface_info *interface;
unsigned char *buf;
@@ -388,6 +515,10 @@ ssize_t receive_packet (interface, buf,
@@ -380,6 +505,10 @@ ssize_t receive_packet (interface, buf,
.msg_controllen = sizeof(cmsgbuf),
};
struct cmsghdr *cmsg;
+ if (interface->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
+ return receive_packet_ib(interface, buf, len, from, hfrom);
+ }
+
length = recvmsg (interface -> rfdesc, &msg, 0);
length = recvmsg (interface->rfdesc, &msg, 0);
if (length <= 0)
return length;
@@ -469,11 +600,33 @@ void maybe_setup_fallback ()
@@ -489,11 +618,33 @@ void maybe_setup_fallback ()
#endif
#if defined (USE_LPF_RECEIVE) || defined (USE_LPF_HWADDR)
@ -388,7 +386,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
if (strlen(name) >= sizeof(tmp.ifr_name)) {
log_fatal("Device name too long: \"%s\"", name);
@@ -487,16 +640,62 @@ get_hw_addr(const char *name, struct har
@@ -507,16 +658,62 @@ get_hw_addr(const char *name, struct har
memset(&tmp, 0, sizeof(tmp));
strcpy(tmp.ifr_name, name);
if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
@ -454,7 +452,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
break;
case ARPHRD_IEEE802:
#ifdef ARPHRD_IEEE802_TR
@@ -504,18 +703,48 @@ get_hw_addr(const char *name, struct har
@@ -524,18 +721,48 @@ get_hw_addr(const char *name, struct har
#endif /* ARPHRD_IEEE802_TR */
hw->hlen = 7;
hw->hbuf[0] = HTYPE_IEEE802;
@ -507,7 +505,7 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
hw->hlen = 0;
hw->hbuf[0] = HTYPE_RESERVED;
/* 0xdeadbeef should never occur on the wire,
@@ -528,10 +757,13 @@ get_hw_addr(const char *name, struct har
@@ -548,10 +775,13 @@ get_hw_addr(const char *name, struct har
break;
#endif
default:
@ -524,10 +522,10 @@ diff -up dhcp-4.3.1b1/common/lpf.c.bmgpWV dhcp-4.3.1b1/common/lpf.c
+ freeifaddrs(ifaddrs);
}
#endif
diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
--- dhcp-4.3.1b1/common/socket.c.bmgpWV 2014-07-02 19:58:38.000000000 +0200
+++ dhcp-4.3.1b1/common/socket.c 2014-07-10 17:52:57.706272281 +0200
@@ -322,7 +322,7 @@ void if_register_send (info)
diff -up dhcp-4.3.2b1/common/socket.c.lpf-ib dhcp-4.3.2b1/common/socket.c
--- dhcp-4.3.2b1/common/socket.c.lpf-ib 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.2b1/common/socket.c 2015-02-08 17:19:42.118405688 +0100
@@ -328,7 +328,7 @@ void if_register_send (info)
info->wfdesc = if_register_socket(info, AF_INET, 0, NULL);
/* If this is a normal IPv4 address, get the hardware address. */
if (strcmp(info->name, "fallback") != 0)
@ -536,7 +534,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
#if defined (USE_SOCKET_FALLBACK)
/* Fallback only registers for send, but may need to receive as
well. */
@@ -385,7 +385,7 @@ void if_register_receive (info)
@@ -391,7 +391,7 @@ void if_register_receive (info)
#endif /* IP_PKTINFO... */
/* If this is a normal IPv4 address, get the hardware address. */
if (strcmp(info->name, "fallback") != 0)
@ -545,7 +543,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
if (!quiet_interface_discovery)
log_info ("Listening on Socket/%s%s%s",
@@ -499,7 +499,7 @@ if_register6(struct interface_info *info
@@ -505,7 +505,7 @@ if_register6(struct interface_info *info
if (req_multi)
if_register_multicast(info);
@ -554,7 +552,7 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
if (!quiet_interface_discovery) {
if (info->shared_network != NULL) {
@@ -555,7 +555,7 @@ if_register_linklocal6(struct interface_
@@ -561,7 +561,7 @@ if_register_linklocal6(struct interface_
info->rfdesc = sock;
info->wfdesc = sock;
@ -563,10 +561,10 @@ diff -up dhcp-4.3.1b1/common/socket.c.bmgpWV dhcp-4.3.1b1/common/socket.c
if (!quiet_interface_discovery) {
if (info->shared_network != NULL) {
diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV 2014-07-10 17:50:26.923402536 +0200
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:52:57.707272266 +0200
@@ -1248,6 +1248,7 @@ struct interface_info {
diff -up dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib dhcp-4.3.2b1/includes/dhcpd.h
--- dhcp-4.3.2b1/includes/dhcpd.h.lpf-ib 2015-02-08 17:19:42.108405829 +0100
+++ dhcp-4.3.2b1/includes/dhcpd.h 2015-02-08 17:19:42.119405674 +0100
@@ -1264,6 +1264,7 @@ struct interface_info {
struct shared_network *shared_network;
/* Networks connected to this interface. */
struct hardware hw_address; /* Its physical address. */
@ -574,7 +572,7 @@ diff -up dhcp-4.3.1b1/includes/dhcpd.h.bmgpWV dhcp-4.3.1b1/includes/dhcpd.h
struct in_addr *addresses; /* Addresses associated with this
* interface.
*/
@@ -2439,7 +2440,7 @@ void print_dns_status (int, struct dhcp_
@@ -2475,7 +2476,7 @@ void print_dns_status (int, struct dhcp_
#endif
const char *print_time(TIME);

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

View File

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

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
--- dhcp-4.3.1b1/configure.ac.systemtap 2014-07-10 18:31:05.966880404 +0200
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 18:31:06.027879541 +0200
diff -up dhcp-4.3.2b1/configure.ac.systemtap dhcp-4.3.2b1/configure.ac
--- dhcp-4.3.2b1/configure.ac.systemtap 2015-02-08 17:42:45.701754886 +0100
+++ dhcp-4.3.2b1/configure.ac 2015-02-08 17:42:45.768753919 +0100
@@ -534,6 +534,35 @@ else
AC_MSG_RESULT(no)
fi
@ -45,9 +45,9 @@ diff -up dhcp-4.3.1b1/configure.ac.systemtap dhcp-4.3.1b1/configure.ac
])
AC_OUTPUT
diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am
--- dhcp-4.3.1b1/Makefile.am.systemtap 2014-07-10 18:31:05.891881465 +0200
+++ dhcp-4.3.1b1/Makefile.am 2014-07-10 18:31:06.027879541 +0200
diff -up dhcp-4.3.2b1/Makefile.am.systemtap dhcp-4.3.2b1/Makefile.am
--- dhcp-4.3.2b1/Makefile.am.systemtap 2015-02-08 17:42:45.632755881 +0100
+++ dhcp-4.3.2b1/Makefile.am 2015-02-08 17:42:45.769753905 +0100
@@ -33,5 +33,8 @@ endif
SUBDIRS += includes tests common omapip client dhcpctl relay server
@ -57,9 +57,9 @@ diff -up dhcp-4.3.1b1/Makefile.am.systemtap dhcp-4.3.1b1/Makefile.am
+
nobase_include_HEADERS = dhcpctl/dhcpctl.h
diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
--- dhcp-4.3.1b1/server/dhcp.c.systemtap 2014-07-10 18:31:06.016879697 +0200
+++ dhcp-4.3.1b1/server/dhcp.c 2014-07-10 18:36:07.392617942 +0200
diff -up dhcp-4.3.2b1/server/dhcp.c.systemtap dhcp-4.3.2b1/server/dhcp.c
--- dhcp-4.3.2b1/server/dhcp.c.systemtap 2015-02-08 17:42:45.750754179 +0100
+++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:46:12.956764712 +0100
@@ -30,7 +30,7 @@
#include <errno.h>
#include <limits.h>
@ -69,7 +69,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
static void commit_leases_ackout(void *foo);
static void maybe_return_agent_options(struct packet *packet,
struct option_state *options);
@@ -303,6 +303,8 @@ void dhcpdiscover (packet, ms_nulltp)
@@ -306,6 +306,8 @@ void dhcpdiscover (packet, ms_nulltp)
dhcp_failover_state_t *peer;
#endif
@ -78,7 +78,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
find_lease (&lease, packet, packet -> shared_network,
0, &peer_has_leases, (struct lease *)0, MDL);
@@ -425,6 +427,8 @@ void dhcpdiscover (packet, ms_nulltp)
@@ -428,6 +430,8 @@ void dhcpdiscover (packet, ms_nulltp)
out:
if (lease)
lease_dereference (&lease, MDL);
@ -87,7 +87,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
}
void dhcprequest (packet, ms_nulltp, ip_lease)
@@ -447,6 +451,8 @@ void dhcprequest (packet, ms_nulltp, ip_
@@ -450,6 +454,8 @@ void dhcprequest (packet, ms_nulltp, ip_
#endif
int have_requested_addr = 0;
@ -96,7 +96,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS);
memset (&data, 0, sizeof data);
@@ -724,6 +730,9 @@ void dhcprequest (packet, ms_nulltp, ip_
@@ -729,6 +735,9 @@ void dhcprequest (packet, ms_nulltp, ip_
log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip));
out:
@ -106,7 +106,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
if (subnet)
subnet_dereference (&subnet, MDL);
if (lease)
@@ -742,6 +751,7 @@ void dhcprelease (packet, ms_nulltp)
@@ -747,6 +756,7 @@ void dhcprelease (packet, ms_nulltp)
const char *s;
char msgbuf [1024], cstr[16]; /* XXX */
@ -114,7 +114,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
/* DHCPRELEASE must not specify address in requested-address
option, but old protocol specs weren't explicit about this,
@@ -862,6 +872,8 @@ void dhcprelease (packet, ms_nulltp)
@@ -867,6 +877,8 @@ void dhcprelease (packet, ms_nulltp)
#endif
if (lease)
lease_dereference (&lease, MDL);
@ -123,7 +123,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
}
void dhcpdecline (packet, ms_nulltp)
@@ -879,6 +891,8 @@ void dhcpdecline (packet, ms_nulltp)
@@ -884,6 +896,8 @@ void dhcpdecline (packet, ms_nulltp)
struct option_cache *oc;
struct data_string data;
@ -132,7 +132,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
/* DHCPDECLINE must specify address. */
if (!(oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS)))
@@ -985,6 +999,8 @@ void dhcpdecline (packet, ms_nulltp)
@@ -990,6 +1004,8 @@ void dhcpdecline (packet, ms_nulltp)
option_state_dereference (&options, MDL);
if (lease)
lease_dereference (&lease, MDL);
@ -141,7 +141,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
}
void dhcpinform (packet, ms_nulltp)
@@ -1012,6 +1028,8 @@ void dhcpinform (packet, ms_nulltp)
@@ -1017,6 +1033,8 @@ void dhcpinform (packet, ms_nulltp)
int h_w_fixed_addr = 0;
#endif
@ -150,7 +150,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
/* The client should set ciaddr to its IP address, but apparently
it's common for clients not to do this, so we'll use their IP
source address if they didn't set ciaddr. */
@@ -1584,6 +1602,8 @@ void dhcpinform (packet, ms_nulltp)
@@ -1587,6 +1605,8 @@ void dhcpinform (packet, ms_nulltp)
if (subnet)
subnet_dereference (&subnet, MDL);
@ -158,25 +158,27 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
+ TRACE(DHCPD_INFORM_DONE());
}
void nak_lease (packet, cip)
@@ -1600,6 +1620,8 @@ void nak_lease (packet, cip)
struct option_state *options = (struct option_state *)0;
/*!
@@ -1617,6 +1637,8 @@ void nak_lease (packet, cip, network_gro
struct option_cache *oc = (struct option_cache *)0;
struct option_state *eval_options = NULL;
+ TRACE(DHCPD_NAK_LEASE_START());
+
option_state_allocate (&options, MDL);
memset (&outgoing, 0, sizeof outgoing);
memset (&raw, 0, sizeof raw);
@@ -1764,6 +1786,7 @@ void nak_lease (packet, cip)
@@ -1792,7 +1814,8 @@ void nak_lease (packet, cip, network_gro
"interface.", MDL, outgoing.packet_length,
packet->interface->name);
}
-
+
+ TRACE(DHCPD_NAK_LEASE_DONE());
}
void check_pool_threshold (packet, lease, state)
@@ -1899,6 +1922,8 @@ void ack_lease (packet, lease, offer, wh
/*!
@@ -1997,6 +2020,8 @@ void ack_lease (packet, lease, offer, wh
if (lease -> state)
return;
@ -185,7 +187,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
/* Save original cltt for comparison later. */
lease_cltt = lease->cltt;
@@ -3340,6 +3365,8 @@ void ack_lease (packet, lease, offer, wh
@@ -3389,6 +3414,8 @@ void ack_lease (packet, lease, offer, wh
#endif
dhcp_reply(lease);
}
@ -194,7 +196,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
}
/*
@@ -3492,6 +3519,8 @@ void dhcp_reply (lease)
@@ -3541,6 +3568,8 @@ void dhcp_reply (lease)
if (!state)
log_fatal ("dhcp_reply was supplied lease with no state!");
@ -203,7 +205,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
/* Compose a response for the client... */
memset (&raw, 0, sizeof raw);
memset (&d1, 0, sizeof d1);
@@ -3713,6 +3742,8 @@ void dhcp_reply (lease)
@@ -3762,6 +3791,8 @@ void dhcp_reply (lease)
free_lease_state (state, MDL);
lease -> state = (struct lease_state *)0;
@ -212,7 +214,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
}
int find_lease (struct lease **lp,
@@ -3735,6 +3766,8 @@ int find_lease (struct lease **lp,
@@ -3784,6 +3815,8 @@ int find_lease (struct lease **lp,
struct data_string client_identifier;
struct hardware h;
@ -221,7 +223,7 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
#if defined(FAILOVER_PROTOCOL)
/* Quick check to see if the peer has leases. */
if (peer_has_leases) {
@@ -4457,6 +4490,9 @@ int find_lease (struct lease **lp,
@@ -4506,6 +4539,9 @@ int find_lease (struct lease **lp,
#if defined (DEBUG_FIND_LEASE)
log_info ("Not returning a lease.");
#endif
@ -231,9 +233,9 @@ diff -up dhcp-4.3.1b1/server/dhcp.c.systemtap dhcp-4.3.1b1/server/dhcp.c
return 0;
}
diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
--- dhcp-4.3.1b1/server/dhcpd.c.systemtap 2014-07-10 18:31:06.006879838 +0200
+++ dhcp-4.3.1b1/server/dhcpd.c 2014-07-10 18:31:06.030879499 +0200
diff -up dhcp-4.3.2b1/server/dhcpd.c.systemtap dhcp-4.3.2b1/server/dhcpd.c
--- dhcp-4.3.2b1/server/dhcpd.c.systemtap 2015-02-08 17:42:45.740754323 +0100
+++ dhcp-4.3.2b1/server/dhcpd.c 2015-02-08 17:42:45.772753862 +0100
@@ -52,6 +52,8 @@ static const char url [] =
# undef group
#endif /* PARANOIA */
@ -243,7 +245,7 @@ diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
#ifndef UNIT_TEST
static void usage(void);
#endif
@@ -801,6 +803,8 @@ main(int argc, char **argv) {
@@ -812,6 +814,8 @@ main(int argc, char **argv) {
/* Log that we are about to start working */
log_info("Server starting service.");
@ -252,9 +254,9 @@ diff -up dhcp-4.3.1b1/server/dhcpd.c.systemtap dhcp-4.3.1b1/server/dhcpd.c
/*
* Receive packets and dispatch them...
* dispatch() will never return.
diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
--- dhcp-4.3.1b1/server/dhcpv6.c.systemtap 2014-07-10 18:31:05.998879951 +0200
+++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 18:31:06.032879471 +0200
diff -up dhcp-4.3.2b1/server/dhcpv6.c.systemtap dhcp-4.3.2b1/server/dhcpv6.c
--- dhcp-4.3.2b1/server/dhcpv6.c.systemtap 2015-02-08 17:42:45.730754468 +0100
+++ dhcp-4.3.2b1/server/dhcpv6.c 2015-02-08 17:42:45.774753833 +0100
@@ -17,6 +17,7 @@
/*! \file server/dhcpv6.c */
@ -263,7 +265,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
#ifdef DHCPv6
@@ -4829,6 +4830,8 @@ static void
@@ -4999,6 +5000,8 @@ static void
dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) {
struct data_string client_id;
@ -272,7 +274,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate our input.
*/
@@ -4842,6 +4845,8 @@ dhcpv6_solicit(struct data_string *reply
@@ -5012,6 +5015,8 @@ dhcpv6_solicit(struct data_string *reply
* Clean up.
*/
data_string_forget(&client_id, MDL);
@ -281,7 +283,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/*
@@ -4855,6 +4860,8 @@ dhcpv6_request(struct data_string *reply
@@ -5025,6 +5030,8 @@ dhcpv6_request(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
@ -290,7 +292,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate our input.
*/
@@ -4872,6 +4879,8 @@ dhcpv6_request(struct data_string *reply
@@ -5042,6 +5049,8 @@ dhcpv6_request(struct data_string *reply
*/
data_string_forget(&client_id, MDL);
data_string_forget(&server_id, MDL);
@ -299,7 +301,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/* Find a DHCPv6 packet's shared network from hints in the packet.
@@ -4984,6 +4993,8 @@ dhcpv6_confirm(struct data_string *reply
@@ -5154,6 +5163,8 @@ dhcpv6_confirm(struct data_string *reply
struct dhcpv6_packet *reply = (struct dhcpv6_packet *)reply_data;
int reply_ofs = (int)(offsetof(struct dhcpv6_packet, options));
@ -308,7 +310,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Basic client message validation.
*/
@@ -5170,6 +5181,8 @@ exit:
@@ -5340,6 +5351,8 @@ exit:
option_state_dereference(&cli_enc_opt_state, MDL);
if (opt_state != NULL)
option_state_dereference(&opt_state, MDL);
@ -317,7 +319,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/*
@@ -5184,6 +5197,8 @@ dhcpv6_renew(struct data_string *reply,
@@ -5354,6 +5367,8 @@ dhcpv6_renew(struct data_string *reply,
struct data_string client_id;
struct data_string server_id;
@ -326,7 +328,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate the request.
*/
@@ -5201,6 +5216,8 @@ dhcpv6_renew(struct data_string *reply,
@@ -5371,6 +5386,8 @@ dhcpv6_renew(struct data_string *reply,
*/
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
@ -335,7 +337,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/*
@@ -5214,6 +5231,8 @@ static void
@@ -5384,6 +5401,8 @@ static void
dhcpv6_rebind(struct data_string *reply, struct packet *packet) {
struct data_string client_id;
@ -344,7 +346,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
if (!valid_client_msg(packet, &client_id)) {
return;
}
@@ -5221,6 +5240,8 @@ dhcpv6_rebind(struct data_string *reply,
@@ -5391,6 +5410,8 @@ dhcpv6_rebind(struct data_string *reply,
lease_to_client(reply, packet, &client_id, NULL);
data_string_forget(&client_id, MDL);
@ -353,7 +355,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
static void
@@ -5665,6 +5686,8 @@ dhcpv6_decline(struct data_string *reply
@@ -5835,6 +5856,8 @@ dhcpv6_decline(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
@ -362,7 +364,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate our input.
*/
@@ -5685,6 +5708,8 @@ dhcpv6_decline(struct data_string *reply
@@ -5855,6 +5878,8 @@ dhcpv6_decline(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
@ -371,7 +373,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
static void
@@ -6133,6 +6158,8 @@ dhcpv6_release(struct data_string *reply
@@ -6303,6 +6328,8 @@ dhcpv6_release(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
@ -380,7 +382,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate our input.
*/
@@ -6154,6 +6181,8 @@ dhcpv6_release(struct data_string *reply
@@ -6324,6 +6351,8 @@ dhcpv6_release(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
@ -389,7 +391,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/*
@@ -6166,6 +6195,8 @@ dhcpv6_information_request(struct data_s
@@ -6336,6 +6365,8 @@ dhcpv6_information_request(struct data_s
struct data_string client_id;
struct data_string server_id;
@ -398,7 +400,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Validate our input.
*/
@@ -6197,6 +6228,8 @@ dhcpv6_information_request(struct data_s
@@ -6367,6 +6398,8 @@ dhcpv6_information_request(struct data_s
data_string_forget(&client_id, MDL);
}
data_string_forget(&server_id, MDL);
@ -407,7 +409,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
/*
@@ -6225,6 +6258,8 @@ dhcpv6_relay_forw(struct data_string *re
@@ -6395,6 +6428,8 @@ dhcpv6_relay_forw(struct data_string *re
struct dhcpv6_relay_packet *reply;
int reply_ofs;
@ -416,7 +418,7 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
/*
* Initialize variables for early exit.
*/
@@ -6484,6 +6519,8 @@ exit:
@@ -6654,6 +6689,8 @@ exit:
if (enc_packet != NULL) {
packet_dereference(&enc_packet, MDL);
}
@ -425,9 +427,9 @@ diff -up dhcp-4.3.1b1/server/dhcpv6.c.systemtap dhcp-4.3.1b1/server/dhcpv6.c
}
static void
diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
--- dhcp-4.3.1b1/server/failover.c.systemtap 2014-07-02 19:58:40.000000000 +0200
+++ dhcp-4.3.1b1/server/failover.c 2014-07-10 18:31:06.034879442 +0200
diff -up dhcp-4.3.2b1/server/failover.c.systemtap dhcp-4.3.2b1/server/failover.c
--- dhcp-4.3.2b1/server/failover.c.systemtap 2015-01-29 14:52:57.000000000 +0100
+++ dhcp-4.3.2b1/server/failover.c 2015-02-08 17:42:45.775753818 +0100
@@ -30,6 +30,8 @@
#include "dhcpd.h"
#include <omapip/omapip_p.h>
@ -437,7 +439,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
#if defined (FAILOVER_PROTOCOL)
dhcp_failover_state_t *failover_states;
static isc_result_t do_a_failover_option (omapi_object_t *,
@@ -1704,6 +1706,8 @@ isc_result_t dhcp_failover_set_state (dh
@@ -1767,6 +1769,8 @@ isc_result_t dhcp_failover_set_state (dh
struct lease *l;
struct timeval tv;
@ -446,7 +448,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
/* If we're in certain states where we're sending updates, and the peer
* state changes, we need to re-schedule any pending updates just to
* be on the safe side. This results in retransmission.
@@ -1935,6 +1939,8 @@ isc_result_t dhcp_failover_set_state (dh
@@ -1972,6 +1976,8 @@ isc_result_t dhcp_failover_set_state (dh
break;
}
@ -455,7 +457,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
return ISC_R_SUCCESS;
}
@@ -2423,6 +2429,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
@@ -2484,6 +2490,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (state -> me.state != normal)
return 0;
@ -464,7 +466,7 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
state->last_balance = cur_time;
for (s = shared_networks ; s ; s = s->next) {
@@ -2583,6 +2591,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
@@ -2644,6 +2652,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (leases_queued)
commit_leases();
@ -473,9 +475,9 @@ diff -up dhcp-4.3.1b1/server/failover.c.systemtap dhcp-4.3.1b1/server/failover.c
return leases_queued;
}
diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.am
--- dhcp-4.3.1b1/server/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200
+++ dhcp-4.3.1b1/server/Makefile.am 2014-07-10 18:31:06.028879527 +0200
diff -up dhcp-4.3.2b1/server/Makefile.am.systemtap dhcp-4.3.2b1/server/Makefile.am
--- dhcp-4.3.2b1/server/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
+++ dhcp-4.3.2b1/server/Makefile.am 2015-02-08 17:42:45.775753818 +0100
@@ -10,7 +10,7 @@ dist_sysconf_DATA = dhcpd.conf.example
sbin_PROGRAMS = dhcpd
dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
@ -499,9 +501,9 @@ diff -up dhcp-4.3.1b1/server/Makefile.am.systemtap dhcp-4.3.1b1/server/Makefile.
+
+dhcpd_LDADD += probes.o
+endif
diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d
--- dhcp-4.3.1b1/server/probes.d.systemtap 2014-07-10 18:31:06.034879442 +0200
+++ dhcp-4.3.1b1/server/probes.d 2014-07-10 18:31:06.034879442 +0200
diff -up dhcp-4.3.2b1/server/probes.d.systemtap dhcp-4.3.2b1/server/probes.d
--- dhcp-4.3.2b1/server/probes.d.systemtap 2015-02-08 17:42:45.775753818 +0100
+++ dhcp-4.3.2b1/server/probes.d 2015-02-08 17:42:45.775753818 +0100
@@ -0,0 +1,43 @@
+provider dhcpd {
+ probe main();
@ -546,9 +548,9 @@ diff -up dhcp-4.3.1b1/server/probes.d.systemtap dhcp-4.3.1b1/server/probes.d
+ probe failover_set_state_start(int, int);
+ probe failover_set_state_done();
+};
diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tests/Makefile.am
--- dhcp-4.3.1b1/server/tests/Makefile.am.systemtap 2014-07-10 18:31:05.895881408 +0200
+++ dhcp-4.3.1b1/server/tests/Makefile.am 2014-07-10 18:31:06.034879442 +0200
diff -up dhcp-4.3.2b1/server/tests/Makefile.am.systemtap dhcp-4.3.2b1/server/tests/Makefile.am
--- dhcp-4.3.2b1/server/tests/Makefile.am.systemtap 2015-02-08 17:42:45.637755809 +0100
+++ dhcp-4.3.2b1/server/tests/Makefile.am 2015-02-08 17:42:45.776753804 +0100
@@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
$(top_builddir)/dhcpctl/libdhcpctl.la \
$(BIND9_LIBDIR) -lirs -ldns -lisccfg -lisc
@ -560,9 +562,9 @@ diff -up dhcp-4.3.1b1/server/tests/Makefile.am.systemtap dhcp-4.3.1b1/server/tes
ATF_TESTS =
TESTS =
if HAVE_ATF
diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h
--- dhcp-4.3.1b1/server/trace.h.systemtap 2014-07-10 18:31:06.034879442 +0200
+++ dhcp-4.3.1b1/server/trace.h 2014-07-10 18:31:06.034879442 +0200
diff -up dhcp-4.3.2b1/server/trace.h.systemtap dhcp-4.3.2b1/server/trace.h
--- dhcp-4.3.2b1/server/trace.h.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.2b1/server/trace.h 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,11 @@
+// trace.h
+
@ -575,9 +577,9 @@ diff -up dhcp-4.3.1b1/server/trace.h.systemtap dhcp-4.3.1b1/server/trace.h
+// Wrap the probe to allow it to be removed when no systemtap available
+#define TRACE(probe)
+#endif
diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp
--- dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap 2014-07-10 18:31:06.035879428 +0200
+++ dhcp-4.3.1b1/tapset/dhcpd.stp 2014-07-10 18:31:06.035879428 +0200
diff -up dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap dhcp-4.3.2b1/tapset/dhcpd.stp
--- dhcp-4.3.2b1/tapset/dhcpd.stp.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.2b1/tapset/dhcpd.stp 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,212 @@
+/* dhcpd tapset
+ Copyright (C) 2011, Red Hat Inc.
@ -791,9 +793,9 @@ diff -up dhcp-4.3.1b1/tapset/dhcpd.stp.systemtap dhcp-4.3.1b1/tapset/dhcpd.stp
+{
+ probestr = sprintf("%s", $$name);
+}
diff -up dhcp-4.3.1b1/tapset/Makefile.am.systemtap dhcp-4.3.1b1/tapset/Makefile.am
--- dhcp-4.3.1b1/tapset/Makefile.am.systemtap 2014-07-10 18:31:06.035879428 +0200
+++ dhcp-4.3.1b1/tapset/Makefile.am 2014-07-10 18:31:06.034879442 +0200
diff -up dhcp-4.3.2b1/tapset/Makefile.am.systemtap dhcp-4.3.2b1/tapset/Makefile.am
--- dhcp-4.3.2b1/tapset/Makefile.am.systemtap 2015-02-08 17:42:45.776753804 +0100
+++ dhcp-4.3.2b1/tapset/Makefile.am 2015-02-08 17:42:45.776753804 +0100
@@ -0,0 +1,26 @@
+# Makefile.am for dhcp/tapset
+# Jiri Popelka

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 VERSION %{version}-%{patchver}
#%%global VERSION %{version}%{prever}
%global VERSION %{version}
#%%global VERSION %{version}
%global VERSION %{version}%{prever}
Summary: Dynamic host configuration protocol software
Name: dhcp
Version: 4.3.1
Release: 21%{?dist}
Version: 4.3.2
Release: 0.1%{prever}%{?dist}
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
# dcantrell maintaining the package) made incorrect use of the epoch and
# that's why it is at 12 now. It should have never been used, but it was.
@ -45,7 +45,7 @@ Patch5: dhcp-release-by-ifup.patch
Patch6: dhcp-dhclient-decline-backoff.patch
Patch7: dhcp-unicast-bootp.patch
Patch8: dhcp-default-requested-options.patch
Patch9: dhcp-xen-checksum.patch
Patch10: dhcp-manpages.patch
Patch11: dhcp-paths.patch
Patch12: dhcp-CLOEXEC.patch
@ -69,18 +69,12 @@ Patch29: dhcp-getifaddrs.patch
Patch30: dhcp-omapi-leak.patch
Patch31: dhcp-failOverPeer.patch
Patch32: dhcp-interval.patch
Patch33: dhcp-range6.patch
Patch34: dhcp-no-subnet-error2info.patch
Patch35: dhcp-ffff-checksum.patch
Patch36: dhcp-sd_notify.patch
Patch37: dhcp-dhc6-life.patch
Patch38: dhcp-skip-vlan.patch
Patch39: dhcp-relay-hop-limit.patch
Patch40: dhcp-ldapgssapi.patch
Patch41: dhcp-option97-pxe-client-id.patch
Patch42: dhcp-stateless-DUID-LLT.patch
Patch43: dhcp-client-request-release-bind-iface.patch
Patch100: dhcp-bind996.patch
Patch33: dhcp-no-subnet-error2info.patch
Patch34: dhcp-sd_notify.patch
Patch35: dhcp-ldapgssapi.patch
Patch36: dhcp-option97-pxe-client-id.patch
Patch37: dhcp-stateless-DUID-LLT.patch
Patch38: dhcp-client-request-release-bind-iface.patch
BuildRequires: autoconf
BuildRequires: automake
@ -256,11 +250,6 @@ rm -rf includes/isc-dhcp
# to the list of default requested DHCP options
%patch8 -p1 -b .requested
# Handle partial UDP checksums (#221964)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #22806] - by Michael S. Tsirkin)
# http://comments.gmane.org/gmane.comp.emulators.kvm.devel/65236
# https://lists.isc.org/pipermail/dhcp-hackers/2010-April/001835.html
%patch9 -p1 -b .xen
# Various man-page-only fixes
%patch10 -p1 -b .man
@ -346,49 +335,26 @@ rm -rf includes/isc-dhcp
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038])
%patch32 -p1 -b .interval
# Make sure range6 is correct for subnet6 where it's declared (#902966)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #32453])
%patch33 -p1 -b .range6
# 'No subnet declaration for <iface>' should be info, not error.
%patch34 -p1 -b .error2info
# dhcpd rejects the udp packet with checksum=0xffff (#1015997)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #25587])
%patch35 -p1 -b .ffff
%patch33 -p1 -b .error2info
# support for sending startup notification to systemd (#1077666)
%patch36 -p1 -b .sd_notify
# [dhclient -6] infinite preferred/valid lifetime represented as -1 (#1133839)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37084])
%patch37 -p1 -b .life
# dhcpd generates spurious responses when seeing requests from vlans on plain interface (#1150587)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37415])
%patch38 -p1 -b .vlan
# Relay-forward Message's Hop Limit should be 32 (#1147240)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #37426])
%patch39 -p1 -b .hop-limit
%patch34 -p1 -b .sd_notify
# GSSAPI support for ldap authentication (#1150542)
%patch40 -p1 -b .ldapgssapi
%patch35 -p1 -b .ldapgssapi
# option 97 - pxe-client-id (#1058674)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38110])
%patch41 -p1 -b .option97
%patch36 -p1 -b .option97
# dhclient: write DUID_LLT even in stateless mode (#1156356)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38144])
%patch42 -p1 -b .stateless-DUID-LLT
%patch37 -p1 -b .stateless-DUID-LLT
# send unicast request/release via correct interface (#800561, #1177351)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544])
%patch43 -p1 -b .bind-iface
# to build against bind-9.9.6
%patch100 -p1 -b .bind996
%patch38 -p1 -b .bind-iface
# DHCLIENT_DEFAULT_PREFIX_LEN 64 -> 128
# https://bugzilla.gnome.org/show_bug.cgi?id=656610
@ -691,6 +657,9 @@ done
%doc doc/html/
%changelog
* Sun Feb 08 2015 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.2-0.1b1
- 4.3.2b1
* Tue Feb 03 2015 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.1-21
- send unicast request/release via correct interface (#800561, #1177351)