4.2.2b1
This commit is contained in:
parent
030991fd0d
commit
bb77af8b5e
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
|||||||
/dhcp-4.2.1rc1.tar.gz
|
/dhcp-4.2.1rc1.tar.gz
|
||||||
/dhcp-4.2.1.tar.gz
|
/dhcp-4.2.1.tar.gz
|
||||||
/dhcp-4.2.1-P1.tar.gz
|
/dhcp-4.2.1-P1.tar.gz
|
||||||
|
/dhcp-4.2.2b1.tar.gz
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
diff -up dhcp-4.2.0/client/dhclient.c.usage dhcp-4.2.0/client/dhclient.c
|
|
||||||
--- dhcp-4.2.0/client/dhclient.c.usage 2010-07-21 13:38:31.000000000 +0200
|
|
||||||
+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 13:49:01.000000000 +0200
|
|
||||||
@@ -1013,6 +1013,10 @@ static void usage()
|
|
||||||
"[-s server]");
|
|
||||||
log_error(" [-cf config-file] [-lf lease-file]%s",
|
|
||||||
"[-pf pid-file] [-e VAR=val]");
|
|
||||||
+ log_error(" [-I <dhcp-client-identifier>] [-B]");
|
|
||||||
+ log_error(" [-H <host-name> | -F <fqdn.fqdn>] [-timeout <timeout>]");
|
|
||||||
+ log_error(" [-V <vendor-class-identifier>]");
|
|
||||||
+ log_error(" [-R <request option list>]");
|
|
||||||
log_fatal(" [-sf script-file] [interface]");
|
|
||||||
}
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
|||||||
diff -up dhcp-4.2.0/client/dhclient.c.initialization-delay dhcp-4.2.0/client/dhclient.c
|
|
||||||
--- dhcp-4.2.0/client/dhclient.c.initialization-delay 2010-07-21 16:16:51.000000000 +0200
|
|
||||||
+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 16:22:18.000000000 +0200
|
|
||||||
@@ -949,11 +949,16 @@ main(int argc, char **argv) {
|
|
||||||
do_release(client);
|
|
||||||
else {
|
|
||||||
client->state = S_INIT;
|
|
||||||
- /* Set up a timeout to start the
|
|
||||||
- * initialization process.
|
|
||||||
+ /* Set up a timeout (0-1 second) to
|
|
||||||
+ * start the initialization process.
|
|
||||||
*/
|
|
||||||
- tv.tv_sec = cur_time + random() % 5;
|
|
||||||
- tv.tv_usec = 0;
|
|
||||||
+ tv.tv_sec = cur_tv.tv_sec;
|
|
||||||
+ tv.tv_usec = cur_tv.tv_usec;
|
|
||||||
+ tv.tv_usec += (random() % 100) * 10000;
|
|
||||||
+ if (tv.tv_usec >= 1000000) {
|
|
||||||
+ tv.tv_sec += 1;
|
|
||||||
+ tv.tv_usec -= 1000000;
|
|
||||||
+ }
|
|
||||||
add_timeout(&tv, state_reboot,
|
|
||||||
client, 0, 0);
|
|
||||||
}
|
|
||||||
@@ -3930,10 +3935,16 @@ isc_result_t dhclient_interface_startup_
|
|
||||||
ip -> flags |= INTERFACE_RUNNING;
|
|
||||||
for (client = ip -> client; client; client = client -> next) {
|
|
||||||
client -> state = S_INIT;
|
|
||||||
- /* Set up a timeout to start the initialization
|
|
||||||
- process. */
|
|
||||||
- tv . tv_sec = cur_time + random () % 5;
|
|
||||||
- tv . tv_usec = 0;
|
|
||||||
+ /* Set up a timeout (0-1 second) to
|
|
||||||
+ * start the initialization process.
|
|
||||||
+ */
|
|
||||||
+ tv.tv_sec = cur_tv.tv_sec;
|
|
||||||
+ tv.tv_usec = cur_tv.tv_usec;
|
|
||||||
+ tv.tv_usec += (random() % 100) * 10000;
|
|
||||||
+ if (tv.tv_usec >= 1000000) {
|
|
||||||
+ tv.tv_sec += 1;
|
|
||||||
+ tv.tv_usec -= 1000000;
|
|
||||||
+ }
|
|
||||||
add_timeout (&tv, state_reboot, client, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
423
dhcp-4.2.2-CLOEXEC.patch
Normal file
423
dhcp-4.2.2-CLOEXEC.patch
Normal file
@ -0,0 +1,423 @@
|
|||||||
|
diff -up dhcp-4.2.2b1/client/clparse.c.cloexec dhcp-4.2.2b1/client/clparse.c
|
||||||
|
--- dhcp-4.2.2b1/client/clparse.c.cloexec 2011-07-01 14:13:30.973887714 +0200
|
||||||
|
+++ dhcp-4.2.2b1/client/clparse.c 2011-07-01 14:15:15.021580693 +0200
|
||||||
|
@@ -246,7 +246,7 @@ int read_client_conf_file (const char *n
|
||||||
|
int token;
|
||||||
|
isc_result_t status;
|
||||||
|
|
||||||
|
- if ((file = open (name, O_RDONLY)) < 0)
|
||||||
|
+ if ((file = open (name, O_RDONLY | O_CLOEXEC)) < 0)
|
||||||
|
return uerr2isc (errno);
|
||||||
|
|
||||||
|
cfile = NULL;
|
||||||
|
@@ -283,7 +283,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. */
|
||||||
|
- if ((file = open (path_dhclient_db, O_RDONLY)) < 0)
|
||||||
|
+ if ((file = open (path_dhclient_db, O_RDONLY | O_CLOEXEC)) < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
cfile = NULL;
|
||||||
|
diff -up dhcp-4.2.2b1/client/dhclient.c.cloexec dhcp-4.2.2b1/client/dhclient.c
|
||||||
|
--- dhcp-4.2.2b1/client/dhclient.c.cloexec 2011-07-01 14:13:30.970887717 +0200
|
||||||
|
+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 14:16:51.485930388 +0200
|
||||||
|
@@ -148,11 +148,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. */
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 0)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 1)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 2)
|
||||||
|
log_perror = 0; /* No sense logging to /dev/null. */
|
||||||
|
else if (fd != -1)
|
||||||
|
@@ -506,7 +506,7 @@ main(int argc, char **argv) {
|
||||||
|
int e;
|
||||||
|
|
||||||
|
oldpid = 0;
|
||||||
|
- if ((pidfd = fopen(path_dhclient_pid, "r")) != NULL) {
|
||||||
|
+ if ((pidfd = fopen(path_dhclient_pid, "re")) != NULL) {
|
||||||
|
e = fscanf(pidfd, "%ld\n", &temp);
|
||||||
|
oldpid = (pid_t)temp;
|
||||||
|
|
||||||
|
@@ -548,7 +548,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);
|
||||||
|
|
||||||
|
- if ((pidfd = fopen(new_path_dhclient_pid, "r")) != NULL) {
|
||||||
|
+ if ((pidfd = fopen(new_path_dhclient_pid, "re")) != NULL) {
|
||||||
|
e = fscanf(pidfd, "%ld\n", &temp);
|
||||||
|
oldpid = (pid_t)temp;
|
||||||
|
|
||||||
|
@@ -573,7 +573,7 @@ main(int argc, char **argv) {
|
||||||
|
int dhc_running = 0;
|
||||||
|
char procfn[256] = "";
|
||||||
|
|
||||||
|
- if ((pidfp = fopen(path_dhclient_pid, "r")) != NULL) {
|
||||||
|
+ if ((pidfp = fopen(path_dhclient_pid, "re")) != NULL) {
|
||||||
|
if ((fscanf(pidfp, "%ld", &temp)==1) && ((dhcpid=(pid_t)temp) > 0)) {
|
||||||
|
snprintf(procfn,256,"/proc/%u",dhcpid);
|
||||||
|
dhc_running = (access(procfn, F_OK) == 0);
|
||||||
|
@@ -2995,7 +2995,7 @@ void rewrite_client_leases ()
|
||||||
|
|
||||||
|
if (leaseFile != NULL)
|
||||||
|
fclose (leaseFile);
|
||||||
|
- leaseFile = fopen (path_dhclient_db, "w");
|
||||||
|
+ leaseFile = fopen (path_dhclient_db, "we");
|
||||||
|
if (leaseFile == NULL) {
|
||||||
|
log_error ("can't create %s: %m", path_dhclient_db);
|
||||||
|
return;
|
||||||
|
@@ -3105,7 +3105,7 @@ write_duid(struct data_string *duid)
|
||||||
|
return DHCP_R_INVALIDARG;
|
||||||
|
|
||||||
|
if (leaseFile == NULL) { /* XXX? */
|
||||||
|
- leaseFile = fopen(path_dhclient_db, "w");
|
||||||
|
+ leaseFile = fopen(path_dhclient_db, "we");
|
||||||
|
if (leaseFile == NULL) {
|
||||||
|
log_error("can't create %s: %m", path_dhclient_db);
|
||||||
|
return ISC_R_IOERROR;
|
||||||
|
@@ -3285,7 +3285,7 @@ int write_client_lease (client, lease, r
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (leaseFile == NULL) { /* XXX */
|
||||||
|
- leaseFile = fopen (path_dhclient_db, "w");
|
||||||
|
+ leaseFile = fopen (path_dhclient_db, "we");
|
||||||
|
if (leaseFile == NULL) {
|
||||||
|
log_error ("can't create %s: %m", path_dhclient_db);
|
||||||
|
return 0;
|
||||||
|
@@ -3772,9 +3772,9 @@ void go_daemon ()
|
||||||
|
close(2);
|
||||||
|
|
||||||
|
/* Reopen them on /dev/null. */
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
|
||||||
|
write_client_pid_file ();
|
||||||
|
|
||||||
|
@@ -3791,14 +3791,14 @@ void write_client_pid_file ()
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- pfdesc = open (path_dhclient_pid, O_CREAT | O_TRUNC | O_WRONLY, 0644);
|
||||||
|
+ pfdesc = open (path_dhclient_pid, O_CREAT | O_TRUNC | O_WRONLY | O_CLOEXEC, 0644);
|
||||||
|
|
||||||
|
if (pfdesc < 0) {
|
||||||
|
log_error ("Can't create %s: %m", path_dhclient_pid);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- pf = fdopen (pfdesc, "w");
|
||||||
|
+ pf = fdopen (pfdesc, "we");
|
||||||
|
if (!pf) {
|
||||||
|
close(pfdesc);
|
||||||
|
log_error ("Can't fdopen %s: %m", path_dhclient_pid);
|
||||||
|
diff -up dhcp-4.2.2b1/common/bpf.c.cloexec dhcp-4.2.2b1/common/bpf.c
|
||||||
|
--- dhcp-4.2.2b1/common/bpf.c.cloexec 2011-07-01 14:13:30.976887712 +0200
|
||||||
|
+++ dhcp-4.2.2b1/common/bpf.c 2011-07-01 14:13:31.030887673 +0200
|
||||||
|
@@ -94,7 +94,7 @@ int if_register_bpf (info)
|
||||||
|
for (b = 0; 1; b++) {
|
||||||
|
/* %Audit% 31 bytes max. %2004.06.17,Safe% */
|
||||||
|
sprintf(filename, BPF_FORMAT, b);
|
||||||
|
- sock = open (filename, O_RDWR, 0);
|
||||||
|
+ sock = open (filename, O_RDWR | O_CLOEXEC, 0);
|
||||||
|
if (sock < 0) {
|
||||||
|
if (errno == EBUSY) {
|
||||||
|
continue;
|
||||||
|
diff -up dhcp-4.2.2b1/common/discover.c.cloexec dhcp-4.2.2b1/common/discover.c
|
||||||
|
--- dhcp-4.2.2b1/common/discover.c.cloexec 2011-06-27 18:18:20.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/common/discover.c 2011-07-01 14:13:31.031887673 +0200
|
||||||
|
@@ -421,7 +421,7 @@ begin_iface_scan(struct iface_conf_list
|
||||||
|
int len;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
- ifaces->fp = fopen("/proc/net/dev", "r");
|
||||||
|
+ ifaces->fp = fopen("/proc/net/dev", "re");
|
||||||
|
if (ifaces->fp == NULL) {
|
||||||
|
log_error("Error opening '/proc/net/dev' to list interfaces");
|
||||||
|
return 0;
|
||||||
|
@@ -456,7 +456,7 @@ begin_iface_scan(struct iface_conf_list
|
||||||
|
|
||||||
|
#ifdef DHCPv6
|
||||||
|
if (local_family == AF_INET6) {
|
||||||
|
- ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
|
||||||
|
+ ifaces->fp6 = fopen("/proc/net/if_inet6", "re");
|
||||||
|
if (ifaces->fp6 == NULL) {
|
||||||
|
log_error("Error opening '/proc/net/if_inet6' to "
|
||||||
|
"list IPv6 interfaces; %m");
|
||||||
|
diff -up dhcp-4.2.2b1/common/dlpi.c.cloexec dhcp-4.2.2b1/common/dlpi.c
|
||||||
|
--- dhcp-4.2.2b1/common/dlpi.c.cloexec 2011-07-01 14:13:30.977887712 +0200
|
||||||
|
+++ dhcp-4.2.2b1/common/dlpi.c 2011-07-01 14:13:31.032887673 +0200
|
||||||
|
@@ -806,7 +806,7 @@ dlpiopen(const char *ifname) {
|
||||||
|
}
|
||||||
|
*dp = '\0';
|
||||||
|
|
||||||
|
- return open (devname, O_RDWR, 0);
|
||||||
|
+ return open (devname, O_RDWR | O_CLOEXEC, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff -up dhcp-4.2.2b1/common/nit.c.cloexec dhcp-4.2.2b1/common/nit.c
|
||||||
|
--- dhcp-4.2.2b1/common/nit.c.cloexec 2011-07-01 14:13:30.978887712 +0200
|
||||||
|
+++ dhcp-4.2.2b1/common/nit.c 2011-07-01 14:13:31.033887672 +0200
|
||||||
|
@@ -81,7 +81,7 @@ int if_register_nit (info)
|
||||||
|
struct strioctl sio;
|
||||||
|
|
||||||
|
/* Open a NIT device */
|
||||||
|
- sock = open ("/dev/nit", O_RDWR);
|
||||||
|
+ sock = open ("/dev/nit", O_RDWR | O_CLOEXEC);
|
||||||
|
if (sock < 0)
|
||||||
|
log_fatal ("Can't open NIT device for %s: %m", info -> name);
|
||||||
|
|
||||||
|
diff -up dhcp-4.2.2b1/common/resolv.c.cloexec dhcp-4.2.2b1/common/resolv.c
|
||||||
|
--- dhcp-4.2.2b1/common/resolv.c.cloexec 2009-11-20 02:49:01.000000000 +0100
|
||||||
|
+++ dhcp-4.2.2b1/common/resolv.c 2011-07-01 14:13:31.033887672 +0200
|
||||||
|
@@ -49,7 +49,7 @@ void read_resolv_conf (parse_time)
|
||||||
|
struct domain_search_list *dp, *dl, *nd;
|
||||||
|
isc_result_t status;
|
||||||
|
|
||||||
|
- if ((file = open (path_resolv_conf, O_RDONLY)) < 0) {
|
||||||
|
+ if ((file = open (path_resolv_conf, O_RDONLY | O_CLOEXEC)) < 0) {
|
||||||
|
log_error ("Can't open %s: %m", path_resolv_conf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
diff -up dhcp-4.2.2b1/common/upf.c.cloexec dhcp-4.2.2b1/common/upf.c
|
||||||
|
--- dhcp-4.2.2b1/common/upf.c.cloexec 2011-07-01 14:13:30.979887712 +0200
|
||||||
|
+++ dhcp-4.2.2b1/common/upf.c 2011-07-01 14:13:31.034887671 +0200
|
||||||
|
@@ -77,7 +77,7 @@ int if_register_upf (info)
|
||||||
|
/* %Audit% Cannot exceed 36 bytes. %2004.06.17,Safe% */
|
||||||
|
sprintf(filename, "/dev/pf/pfilt%d", b);
|
||||||
|
|
||||||
|
- sock = open (filename, O_RDWR, 0);
|
||||||
|
+ sock = open (filename, O_RDWR | O_CLOEXEC, 0);
|
||||||
|
if (sock < 0) {
|
||||||
|
if (errno == EBUSY) {
|
||||||
|
continue;
|
||||||
|
diff -up dhcp-4.2.2b1/dst/dst_api.c.cloexec dhcp-4.2.2b1/dst/dst_api.c
|
||||||
|
--- dhcp-4.2.2b1/dst/dst_api.c.cloexec 2009-10-29 01:46:48.000000000 +0100
|
||||||
|
+++ dhcp-4.2.2b1/dst/dst_api.c 2011-07-01 14:13:31.035887670 +0200
|
||||||
|
@@ -437,7 +437,7 @@ dst_s_write_private_key(const DST_KEY *k
|
||||||
|
PRIVATE_KEY, PATH_MAX);
|
||||||
|
|
||||||
|
/* Do not overwrite an existing file */
|
||||||
|
- if ((fp = dst_s_fopen(file, "w", 0600)) != NULL) {
|
||||||
|
+ if ((fp = dst_s_fopen(file, "we", 0600)) != NULL) {
|
||||||
|
int nn;
|
||||||
|
if ((nn = fwrite(encoded_block, 1, len, fp)) != len) {
|
||||||
|
EREPORT(("dst_write_private_key(): Write failure on %s %d != %d errno=%d\n",
|
||||||
|
@@ -494,7 +494,7 @@ dst_s_read_public_key(const char *in_nam
|
||||||
|
* flags, proto, alg stored as decimal (or hex numbers FIXME).
|
||||||
|
* (FIXME: handle parentheses for line continuation.)
|
||||||
|
*/
|
||||||
|
- if ((fp = dst_s_fopen(name, "r", 0)) == NULL) {
|
||||||
|
+ if ((fp = dst_s_fopen(name, "re", 0)) == NULL) {
|
||||||
|
EREPORT(("dst_read_public_key(): Public Key not found %s\n",
|
||||||
|
name));
|
||||||
|
return (NULL);
|
||||||
|
@@ -620,7 +620,7 @@ dst_s_write_public_key(const DST_KEY *ke
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
/* create public key file */
|
||||||
|
- if ((fp = dst_s_fopen(filename, "w+", 0644)) == NULL) {
|
||||||
|
+ if ((fp = dst_s_fopen(filename, "w+e", 0644)) == NULL) {
|
||||||
|
EREPORT(("DST_write_public_key: open of file:%s failed (errno=%d)\n",
|
||||||
|
filename, errno));
|
||||||
|
return (0);
|
||||||
|
@@ -854,7 +854,7 @@ dst_s_read_private_key_file(char *name,
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
/* first check if we can find the key file */
|
||||||
|
- if ((fp = dst_s_fopen(filename, "r", 0)) == NULL) {
|
||||||
|
+ if ((fp = dst_s_fopen(filename, "re", 0)) == NULL) {
|
||||||
|
EREPORT(("dst_s_read_private_key_file: Could not open file %s in directory %s\n",
|
||||||
|
filename, dst_path[0] ? dst_path :
|
||||||
|
(char *) getcwd(NULL, PATH_MAX - 1)));
|
||||||
|
diff -up dhcp-4.2.2b1/dst/prandom.c.cloexec dhcp-4.2.2b1/dst/prandom.c
|
||||||
|
--- dhcp-4.2.2b1/dst/prandom.c.cloexec 2009-11-20 02:49:01.000000000 +0100
|
||||||
|
+++ dhcp-4.2.2b1/dst/prandom.c 2011-07-01 14:13:31.035887670 +0200
|
||||||
|
@@ -269,7 +269,7 @@ get_dev_random(u_char *output, unsigned
|
||||||
|
|
||||||
|
s = stat("/dev/random", &st);
|
||||||
|
if (s == 0 && S_ISCHR(st.st_mode)) {
|
||||||
|
- if ((fd = open("/dev/random", O_RDONLY | O_NONBLOCK)) != -1) {
|
||||||
|
+ if ((fd = open("/dev/random", O_RDONLY | O_NONBLOCK | O_CLOEXEC)) != -1) {
|
||||||
|
if ((n = read(fd, output, size)) < 0)
|
||||||
|
n = 0;
|
||||||
|
close(fd);
|
||||||
|
@@ -480,7 +480,7 @@ digest_file(dst_work *work)
|
||||||
|
work->file_digest = dst_free_key(work->file_digest);
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
- if ((fp = fopen(name, "r")) == NULL)
|
||||||
|
+ if ((fp = fopen(name, "re")) == NULL)
|
||||||
|
return (0);
|
||||||
|
for (no = 0; (i = fread(buf, sizeof(*buf), sizeof(buf), fp)) > 0;
|
||||||
|
no += i)
|
||||||
|
diff -up dhcp-4.2.2b1/omapip/trace.c.cloexec dhcp-4.2.2b1/omapip/trace.c
|
||||||
|
--- dhcp-4.2.2b1/omapip/trace.c.cloexec 2010-05-27 02:34:57.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/omapip/trace.c 2011-07-01 14:13:31.036887669 +0200
|
||||||
|
@@ -141,10 +141,10 @@ isc_result_t trace_begin (const char *fi
|
||||||
|
return DHCP_R_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
- traceoutfile = open (filename, O_CREAT | O_WRONLY | O_EXCL, 0600);
|
||||||
|
+ traceoutfile = open (filename, O_CREAT | O_WRONLY | O_EXCL | O_CLOEXEC, 0600);
|
||||||
|
if (traceoutfile < 0 && errno == EEXIST) {
|
||||||
|
log_error ("WARNING: Overwriting trace file \"%s\"", filename);
|
||||||
|
- traceoutfile = open (filename, O_WRONLY | O_EXCL | O_TRUNC,
|
||||||
|
+ traceoutfile = open (filename, O_WRONLY | O_EXCL | O_TRUNC | O_CLOEXEC,
|
||||||
|
0600);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -431,7 +431,7 @@ void trace_file_replay (const char *file
|
||||||
|
isc_result_t result;
|
||||||
|
int len;
|
||||||
|
|
||||||
|
- traceinfile = fopen (filename, "r");
|
||||||
|
+ traceinfile = fopen (filename, "re");
|
||||||
|
if (!traceinfile) {
|
||||||
|
log_error("Can't open tracefile %s: %m", filename);
|
||||||
|
return;
|
||||||
|
diff -up dhcp-4.2.2b1/relay/dhcrelay.c.cloexec dhcp-4.2.2b1/relay/dhcrelay.c
|
||||||
|
--- dhcp-4.2.2b1/relay/dhcrelay.c.cloexec 2011-05-10 15:07:37.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/relay/dhcrelay.c 2011-07-01 14:18:07.630209767 +0200
|
||||||
|
@@ -183,11 +183,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. */
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 0)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 1)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 2)
|
||||||
|
log_perror = 0; /* No sense logging to /dev/null. */
|
||||||
|
else if (fd != -1)
|
||||||
|
@@ -540,13 +540,13 @@ main(int argc, char **argv) {
|
||||||
|
|
||||||
|
if (no_pid_file == ISC_FALSE) {
|
||||||
|
pfdesc = open(path_dhcrelay_pid,
|
||||||
|
- O_CREAT | O_TRUNC | O_WRONLY, 0644);
|
||||||
|
+ O_CREAT | O_TRUNC | O_WRONLY | O_CLOEXEC, 0644);
|
||||||
|
|
||||||
|
if (pfdesc < 0) {
|
||||||
|
log_error("Can't create %s: %m",
|
||||||
|
path_dhcrelay_pid);
|
||||||
|
} else {
|
||||||
|
- pf = fdopen(pfdesc, "w");
|
||||||
|
+ pf = fdopen(pfdesc, "we");
|
||||||
|
if (!pf)
|
||||||
|
log_error("Can't fdopen %s: %m",
|
||||||
|
path_dhcrelay_pid);
|
||||||
|
diff -up dhcp-4.2.2b1/server/confpars.c.cloexec dhcp-4.2.2b1/server/confpars.c
|
||||||
|
--- dhcp-4.2.2b1/server/confpars.c.cloexec 2010-10-14 00:34:45.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/server/confpars.c 2011-07-01 14:13:31.039887666 +0200
|
||||||
|
@@ -116,7 +116,7 @@ isc_result_t read_conf_file (const char
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- if ((file = open (filename, O_RDONLY)) < 0) {
|
||||||
|
+ if ((file = open (filename, O_RDONLY | O_CLOEXEC)) < 0) {
|
||||||
|
if (leasep) {
|
||||||
|
log_error ("Can't open lease database %s: %m --",
|
||||||
|
path_dhcpd_db);
|
||||||
|
diff -up dhcp-4.2.2b1/server/db.c.cloexec dhcp-4.2.2b1/server/db.c
|
||||||
|
--- dhcp-4.2.2b1/server/db.c.cloexec 2010-09-14 00:15:26.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/server/db.c 2011-07-01 14:13:31.040887665 +0200
|
||||||
|
@@ -1035,7 +1035,7 @@ void db_startup (testp)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (!testp) {
|
||||||
|
- db_file = fopen (path_dhcpd_db, "a");
|
||||||
|
+ db_file = fopen (path_dhcpd_db, "ae");
|
||||||
|
if (!db_file)
|
||||||
|
log_fatal ("Can't open %s for append.", path_dhcpd_db);
|
||||||
|
expire_all_pools ();
|
||||||
|
@@ -1083,12 +1083,12 @@ int new_lease_file ()
|
||||||
|
path_dhcpd_db, (int)t) >= sizeof newfname)
|
||||||
|
log_fatal("new_lease_file: lease file path too long");
|
||||||
|
|
||||||
|
- db_fd = open (newfname, O_WRONLY | O_TRUNC | O_CREAT, 0664);
|
||||||
|
+ db_fd = open (newfname, O_WRONLY | O_TRUNC | O_CREAT | O_CLOEXEC, 0664);
|
||||||
|
if (db_fd < 0) {
|
||||||
|
log_error ("Can't create new lease file: %m");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- if ((new_db_file = fdopen(db_fd, "w")) == NULL) {
|
||||||
|
+ if ((new_db_file = fdopen(db_fd, "we")) == NULL) {
|
||||||
|
log_error("Can't fdopen new lease file: %m");
|
||||||
|
close(db_fd);
|
||||||
|
goto fdfail;
|
||||||
|
diff -up dhcp-4.2.2b1/server/dhcpd.c.cloexec dhcp-4.2.2b1/server/dhcpd.c
|
||||||
|
--- dhcp-4.2.2b1/server/dhcpd.c.cloexec 2011-04-21 16:08:15.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/server/dhcpd.c 2011-07-01 14:19:40.354124505 +0200
|
||||||
|
@@ -270,11 +270,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. */
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 0)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 1)
|
||||||
|
- fd = open("/dev/null", O_RDWR);
|
||||||
|
+ fd = open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
if (fd == 2)
|
||||||
|
log_perror = 0; /* No sense logging to /dev/null. */
|
||||||
|
else if (fd != -1)
|
||||||
|
@@ -793,7 +793,7 @@ main(int argc, char **argv) {
|
||||||
|
*/
|
||||||
|
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) {
|
||||||
|
@@ -812,7 +812,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)));
|
||||||
|
@@ -840,9 +840,9 @@ main(int argc, char **argv) {
|
||||||
|
close(2);
|
||||||
|
|
||||||
|
/* Reopen them on /dev/null. */
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
- open("/dev/null", O_RDWR);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
+ open("/dev/null", O_RDWR | O_CLOEXEC);
|
||||||
|
log_perror = 0; /* No sense logging to /dev/null. */
|
||||||
|
|
||||||
|
IGNORE_RET (chdir("/"));
|
||||||
|
diff -up dhcp-4.2.2b1/server/ldap.c.cloexec dhcp-4.2.2b1/server/ldap.c
|
||||||
|
--- dhcp-4.2.2b1/server/ldap.c.cloexec 2010-03-25 16:26:58.000000000 +0100
|
||||||
|
+++ dhcp-4.2.2b1/server/ldap.c 2011-07-01 14:13:31.043887665 +0200
|
||||||
|
@@ -685,7 +685,7 @@ ldap_start (void)
|
||||||
|
|
||||||
|
if (ldap_debug_file != NULL && ldap_debug_fd == -1)
|
||||||
|
{
|
||||||
|
- if ((ldap_debug_fd = open (ldap_debug_file, O_CREAT | O_TRUNC | O_WRONLY,
|
||||||
|
+ if ((ldap_debug_fd = open (ldap_debug_file, O_CREAT | O_TRUNC | O_WRONLY | O_CLOEXEC,
|
||||||
|
S_IRUSR | S_IWUSR)) < 0)
|
||||||
|
log_error ("Error opening debug LDAP log file %s: %s", ldap_debug_file,
|
||||||
|
strerror (errno));
|
@ -1,18 +1,18 @@
|
|||||||
diff -up dhcp-4.2.1rc1/bind/Makefile.PIE-RELRO dhcp-4.2.1rc1/bind/Makefile
|
diff -up dhcp-4.2.2b1/bind/Makefile.PIE-RELRO dhcp-4.2.2b1/bind/Makefile
|
||||||
--- dhcp-4.2.1rc1/bind/Makefile.PIE-RELRO 2011-02-18 20:59:02.000000000 +0100
|
--- dhcp-4.2.2b1/bind/Makefile.PIE-RELRO 2011-06-27 23:43:09.000000000 +0200
|
||||||
+++ dhcp-4.2.1rc1/bind/Makefile 2011-02-23 10:56:35.000000000 +0100
|
+++ dhcp-4.2.2b1/bind/Makefile 2011-07-01 14:28:49.134674155 +0200
|
||||||
@@ -45,7 +45,7 @@ all:
|
@@ -45,7 +45,7 @@ all:
|
||||||
# Currently disable the epoll and devpoll options as they don't interact
|
# Currently disable the epoll and devpoll options as they don't interact
|
||||||
# well with the DHCP code.
|
# well with the DHCP code.
|
||||||
@echo Configuring BIND Export libraries for DHCP.
|
@echo Configuring BIND Export libraries for DHCP.
|
||||||
- @(cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib > ${binddir}/configure.log)
|
- @(cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib --with-gssapi=no > ${binddir}/configure.log)
|
||||||
+ @(cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib --with-libtool --with-pic --disable-shared > ${binddir}/configure.log)
|
+ @(cd ${bindsrcdir} && ./configure --disable-kqueue --disable-epoll --disable-devpoll --without-openssl --without-libxml2 --enable-exportlib --enable-threads=no --with-export-includedir=${binddir}/include --with-export-libdir=${binddir}/lib --with-gssapi=no --with-libtool --with-pic --disable-shared > ${binddir}/configure.log)
|
||||||
|
|
||||||
# Build the export libraries
|
# Build the export libraries
|
||||||
@echo Building BIND Export libraries - this takes some time.
|
@echo Building BIND Export libraries - this takes some time.
|
||||||
diff -up dhcp-4.2.1rc1/client/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/client/Makefile.am
|
diff -up dhcp-4.2.2b1/client/Makefile.am.PIE-RELRO dhcp-4.2.2b1/client/Makefile.am
|
||||||
--- dhcp-4.2.1rc1/client/Makefile.am.PIE-RELRO 2011-02-23 10:56:35.000000000 +0100
|
--- dhcp-4.2.2b1/client/Makefile.am.PIE-RELRO 2011-07-01 14:26:36.995286194 +0200
|
||||||
+++ dhcp-4.2.1rc1/client/Makefile.am 2011-02-23 10:56:35.000000000 +0100
|
+++ dhcp-4.2.2b1/client/Makefile.am 2011-07-01 14:26:37.047285196 +0200
|
||||||
@@ -4,15 +4,11 @@ dhclient_SOURCES = clparse.c dhclient.c
|
@@ -4,15 +4,11 @@ dhclient_SOURCES = clparse.c dhclient.c
|
||||||
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
|
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
|
||||||
scripts/netbsd scripts/nextstep scripts/openbsd \
|
scripts/netbsd scripts/nextstep scripts/openbsd \
|
||||||
@ -33,9 +33,9 @@ diff -up dhcp-4.2.1rc1/client/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/client/Makefil
|
|||||||
-dhc6.o: dhc6.c
|
-dhc6.o: dhc6.c
|
||||||
- $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
|
- $(COMPILE) -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \
|
||||||
- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
|
- -DLOCALSTATEDIR='"$(localstatedir)"' -c dhc6.c
|
||||||
diff -up dhcp-4.2.1rc1/common/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/common/Makefile.am
|
diff -up dhcp-4.2.2b1/common/Makefile.am.PIE-RELRO dhcp-4.2.2b1/common/Makefile.am
|
||||||
--- dhcp-4.2.1rc1/common/Makefile.am.PIE-RELRO 2011-02-18 19:44:42.000000000 +0100
|
--- dhcp-4.2.2b1/common/Makefile.am.PIE-RELRO 2011-02-18 19:44:42.000000000 +0100
|
||||||
+++ dhcp-4.2.1rc1/common/Makefile.am 2011-02-23 10:59:39.000000000 +0100
|
+++ dhcp-4.2.2b1/common/Makefile.am 2011-07-01 14:26:37.048285177 +0200
|
||||||
@@ -1,5 +1,5 @@
|
@@ -1,5 +1,5 @@
|
||||||
AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
|
AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"'
|
||||||
-AM_CFLAGS = $(LDAP_CFLAGS)
|
-AM_CFLAGS = $(LDAP_CFLAGS)
|
||||||
@ -43,9 +43,9 @@ diff -up dhcp-4.2.1rc1/common/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/common/Makefil
|
|||||||
|
|
||||||
noinst_LIBRARIES = libdhcp.a
|
noinst_LIBRARIES = libdhcp.a
|
||||||
libdhcp_a_SOURCES = alloc.c bpf.c comapi.c conflex.c ctrace.c discover.c \
|
libdhcp_a_SOURCES = alloc.c bpf.c comapi.c conflex.c ctrace.c discover.c \
|
||||||
diff -up dhcp-4.2.1rc1/omapip/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/omapip/Makefile.am
|
diff -up dhcp-4.2.2b1/omapip/Makefile.am.PIE-RELRO dhcp-4.2.2b1/omapip/Makefile.am
|
||||||
--- dhcp-4.2.1rc1/omapip/Makefile.am.PIE-RELRO 2010-02-12 01:13:54.000000000 +0100
|
--- dhcp-4.2.2b1/omapip/Makefile.am.PIE-RELRO 2011-07-01 14:26:36.884288319 +0200
|
||||||
+++ dhcp-4.2.1rc1/omapip/Makefile.am 2011-02-23 10:56:35.000000000 +0100
|
+++ dhcp-4.2.2b1/omapip/Makefile.am 2011-07-01 14:26:37.048285177 +0200
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
+AM_CFLAGS = -fpic
|
+AM_CFLAGS = -fpic
|
||||||
+
|
+
|
||||||
@ -59,9 +59,9 @@ diff -up dhcp-4.2.1rc1/omapip/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/omapip/Makefil
|
|||||||
+svtest_CFLAGS = -fpie
|
+svtest_CFLAGS = -fpie
|
||||||
svtest_LDADD = libomapi.a $(BIND9_LIBDIR) -ldns-export -lisc-export
|
svtest_LDADD = libomapi.a $(BIND9_LIBDIR) -ldns-export -lisc-export
|
||||||
|
|
||||||
diff -up dhcp-4.2.1rc1/relay/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/relay/Makefile.am
|
diff -up dhcp-4.2.2b1/relay/Makefile.am.PIE-RELRO dhcp-4.2.2b1/relay/Makefile.am
|
||||||
--- dhcp-4.2.1rc1/relay/Makefile.am.PIE-RELRO 2009-10-28 05:12:30.000000000 +0100
|
--- dhcp-4.2.2b1/relay/Makefile.am.PIE-RELRO 2011-07-01 14:26:36.884288319 +0200
|
||||||
+++ dhcp-4.2.1rc1/relay/Makefile.am 2011-02-23 10:56:35.000000000 +0100
|
+++ dhcp-4.2.2b1/relay/Makefile.am 2011-07-01 14:26:37.049285158 +0200
|
||||||
@@ -2,8 +2,11 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
|
@@ -2,8 +2,11 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
|
||||||
|
|
||||||
sbin_PROGRAMS = dhcrelay
|
sbin_PROGRAMS = dhcrelay
|
||||||
@ -74,10 +74,10 @@ diff -up dhcp-4.2.1rc1/relay/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/relay/Makefile.
|
|||||||
man_MANS = dhcrelay.8
|
man_MANS = dhcrelay.8
|
||||||
EXTRA_DIST = $(man_MANS)
|
EXTRA_DIST = $(man_MANS)
|
||||||
|
|
||||||
diff -up dhcp-4.2.1rc1/server/Makefile.am.PIE-RELRO dhcp-4.2.1rc1/server/Makefile.am
|
diff -up dhcp-4.2.2b1/server/Makefile.am.PIE-RELRO dhcp-4.2.2b1/server/Makefile.am
|
||||||
--- dhcp-4.2.1rc1/server/Makefile.am.PIE-RELRO 2010-03-24 22:49:47.000000000 +0100
|
--- dhcp-4.2.2b1/server/Makefile.am.PIE-RELRO 2011-07-01 14:26:36.885288300 +0200
|
||||||
+++ dhcp-4.2.1rc1/server/Makefile.am 2011-02-23 10:56:35.000000000 +0100
|
+++ dhcp-4.2.2b1/server/Makefile.am 2011-07-01 14:26:37.049285158 +0200
|
||||||
@@ -6,9 +6,10 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \
|
@@ -6,9 +6,10 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
|
||||||
omapi.c mdb.c stables.c salloc.c ddns.c dhcpleasequery.c \
|
omapi.c mdb.c stables.c salloc.c ddns.c dhcpleasequery.c \
|
||||||
dhcpv6.c mdb6.c ldap.c ldap_casa.c
|
dhcpv6.c mdb6.c ldap.c ldap_casa.c
|
||||||
|
|
14
dhcp-4.2.2-dhclient-usage.patch
Normal file
14
dhcp-4.2.2-dhclient-usage.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff -up dhcp-4.2.2b1/client/dhclient.c.usage dhcp-4.2.2b1/client/dhclient.c
|
||||||
|
--- dhcp-4.2.2b1/client/dhclient.c.usage 2011-07-01 13:55:16.000000000 +0200
|
||||||
|
+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 13:58:55.243800602 +0200
|
||||||
|
@@ -1047,6 +1047,10 @@ static void usage()
|
||||||
|
" [-s server-addr] [-cf config-file] "
|
||||||
|
"[-lf lease-file]\n"
|
||||||
|
" [-pf pid-file] [--no-pid] [-e VAR=val]\n"
|
||||||
|
+ " [-I <dhcp-client-identifier>] [-B]\n"
|
||||||
|
+ " [-H <host-name> | -F <fqdn.fqdn>] [-timeout <timeout>]\n"
|
||||||
|
+ " [-V <vendor-class-identifier>]\n"
|
||||||
|
+ " [-R <request option list>]\n"
|
||||||
|
" [-sf script-file] [interface]");
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
diff -up dhcp-4.2.0/client/clparse.c.options dhcp-4.2.0/client/clparse.c
|
diff -up dhcp-4.2.2b1/client/clparse.c.options dhcp-4.2.2b1/client/clparse.c
|
||||||
--- dhcp-4.2.0/client/clparse.c.options 2009-11-20 02:48:58.000000000 +0100
|
--- dhcp-4.2.2b1/client/clparse.c.options 2011-04-21 16:08:14.000000000 +0200
|
||||||
+++ dhcp-4.2.0/client/clparse.c 2010-07-21 13:29:05.000000000 +0200
|
+++ dhcp-4.2.2b1/client/clparse.c 2011-07-01 13:51:52.935755570 +0200
|
||||||
@@ -136,6 +136,7 @@ isc_result_t read_client_conf ()
|
@@ -146,6 +146,7 @@ isc_result_t read_client_conf ()
|
||||||
/* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache)
|
/* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache)
|
||||||
*/
|
*/
|
||||||
top_level_config.requested_lease = 7200;
|
top_level_config.requested_lease = 7200;
|
||||||
@ -9,7 +9,7 @@ diff -up dhcp-4.2.0/client/clparse.c.options dhcp-4.2.0/client/clparse.c
|
|||||||
|
|
||||||
group_allocate (&top_level_config.on_receipt, MDL);
|
group_allocate (&top_level_config.on_receipt, MDL);
|
||||||
if (!top_level_config.on_receipt)
|
if (!top_level_config.on_receipt)
|
||||||
@@ -303,7 +304,8 @@ void read_client_leases ()
|
@@ -313,7 +314,8 @@ void read_client_leases ()
|
||||||
interface-declaration |
|
interface-declaration |
|
||||||
LEASE client-lease-statement |
|
LEASE client-lease-statement |
|
||||||
ALIAS client-lease-statement |
|
ALIAS client-lease-statement |
|
||||||
@ -19,7 +19,7 @@ diff -up dhcp-4.2.0/client/clparse.c.options dhcp-4.2.0/client/clparse.c
|
|||||||
|
|
||||||
void parse_client_statement (cfile, ip, config)
|
void parse_client_statement (cfile, ip, config)
|
||||||
struct parse *cfile;
|
struct parse *cfile;
|
||||||
@@ -717,6 +719,12 @@ void parse_client_statement (cfile, ip,
|
@@ -732,6 +734,12 @@ void parse_client_statement (cfile, ip,
|
||||||
parse_reject_statement (cfile, config);
|
parse_reject_statement (cfile, config);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -32,9 +32,9 @@ diff -up dhcp-4.2.0/client/clparse.c.options dhcp-4.2.0/client/clparse.c
|
|||||||
default:
|
default:
|
||||||
lose = 0;
|
lose = 0;
|
||||||
stmt = (struct executable_statement *)0;
|
stmt = (struct executable_statement *)0;
|
||||||
diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
diff -up dhcp-4.2.2b1/client/dhclient.c.options dhcp-4.2.2b1/client/dhclient.c
|
||||||
--- dhcp-4.2.0/client/dhclient.c.options 2010-02-17 21:33:55.000000000 +0100
|
--- dhcp-4.2.2b1/client/dhclient.c.options 2011-05-11 16:20:59.000000000 +0200
|
||||||
+++ dhcp-4.2.0/client/dhclient.c 2010-07-21 13:30:10.000000000 +0200
|
+++ dhcp-4.2.2b1/client/dhclient.c 2011-07-01 13:51:52.936755545 +0200
|
||||||
@@ -39,6 +39,12 @@
|
@@ -39,6 +39,12 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <dns/result.h>
|
#include <dns/result.h>
|
||||||
@ -48,7 +48,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
TIME default_lease_time = 43200; /* 12 hours... */
|
TIME default_lease_time = 43200; /* 12 hours... */
|
||||||
TIME max_lease_time = 86400; /* 24 hours... */
|
TIME max_lease_time = 86400; /* 24 hours... */
|
||||||
|
|
||||||
@@ -82,6 +88,9 @@ int wanted_ia_na = -1; /* the absolute
|
@@ -87,6 +93,9 @@ int wanted_ia_na = -1; /* the absolute
|
||||||
int wanted_ia_ta = 0;
|
int wanted_ia_ta = 0;
|
||||||
int wanted_ia_pd = 0;
|
int wanted_ia_pd = 0;
|
||||||
char *mockup_relay = NULL;
|
char *mockup_relay = NULL;
|
||||||
@ -58,7 +58,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
|
|
||||||
void run_stateless(int exit_mode);
|
void run_stateless(int exit_mode);
|
||||||
|
|
||||||
@@ -112,6 +121,15 @@ main(int argc, char **argv) {
|
@@ -123,6 +132,15 @@ main(int argc, char **argv) {
|
||||||
int local_family_set = 0;
|
int local_family_set = 0;
|
||||||
#endif /* DHCPv6 */
|
#endif /* DHCPv6 */
|
||||||
char *s;
|
char *s;
|
||||||
@ -74,7 +74,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
|
|
||||||
/* Initialize client globals. */
|
/* Initialize client globals. */
|
||||||
memset(&default_duid, 0, sizeof(default_duid));
|
memset(&default_duid, 0, sizeof(default_duid));
|
||||||
@@ -297,6 +315,88 @@ main(int argc, char **argv) {
|
@@ -310,6 +328,88 @@ main(int argc, char **argv) {
|
||||||
} else if (!strcmp(argv[i], "--version")) {
|
} else if (!strcmp(argv[i], "--version")) {
|
||||||
log_info("isc-dhclient-%s", PACKAGE_VERSION);
|
log_info("isc-dhclient-%s", PACKAGE_VERSION);
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -163,7 +163,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
} else if (argv[i][0] == '-') {
|
} else if (argv[i][0] == '-') {
|
||||||
usage();
|
usage();
|
||||||
} else if (interfaces_requested < 0) {
|
} else if (interfaces_requested < 0) {
|
||||||
@@ -466,6 +566,166 @@ main(int argc, char **argv) {
|
@@ -484,6 +584,166 @@ main(int argc, char **argv) {
|
||||||
/* Parse the dhclient.conf file. */
|
/* Parse the dhclient.conf file. */
|
||||||
read_client_conf();
|
read_client_conf();
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
/* Parse the lease database. */
|
/* Parse the lease database. */
|
||||||
read_client_leases();
|
read_client_leases();
|
||||||
|
|
||||||
@@ -2337,7 +2597,8 @@ void make_discover (client, lease)
|
@@ -2397,7 +2657,8 @@ void make_discover (client, lease)
|
||||||
client -> packet.xid = random ();
|
client -> packet.xid = random ();
|
||||||
client -> packet.secs = 0; /* filled in by send_discover. */
|
client -> packet.secs = 0; /* filled in by send_discover. */
|
||||||
|
|
||||||
@ -340,7 +340,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
client -> packet.flags = 0;
|
client -> packet.flags = 0;
|
||||||
else
|
else
|
||||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||||
@@ -2421,7 +2682,9 @@ void make_request (client, lease)
|
@@ -2481,7 +2742,9 @@ void make_request (client, lease)
|
||||||
} else {
|
} else {
|
||||||
memset (&client -> packet.ciaddr, 0,
|
memset (&client -> packet.ciaddr, 0,
|
||||||
sizeof client -> packet.ciaddr);
|
sizeof client -> packet.ciaddr);
|
||||||
@ -351,7 +351,7 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
client -> packet.flags = 0;
|
client -> packet.flags = 0;
|
||||||
else
|
else
|
||||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||||
@@ -2483,7 +2746,8 @@ void make_decline (client, lease)
|
@@ -2543,7 +2806,8 @@ void make_decline (client, lease)
|
||||||
client -> packet.hops = 0;
|
client -> packet.hops = 0;
|
||||||
client -> packet.xid = client -> xid;
|
client -> packet.xid = client -> xid;
|
||||||
client -> packet.secs = 0; /* Filled in by send_request. */
|
client -> packet.secs = 0; /* Filled in by send_request. */
|
||||||
@ -361,10 +361,10 @@ diff -up dhcp-4.2.0/client/dhclient.c.options dhcp-4.2.0/client/dhclient.c
|
|||||||
client -> packet.flags = 0;
|
client -> packet.flags = 0;
|
||||||
else
|
else
|
||||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||||
diff -up dhcp-4.2.0/common/conflex.c.options dhcp-4.2.0/common/conflex.c
|
diff -up dhcp-4.2.2b1/common/conflex.c.options dhcp-4.2.2b1/common/conflex.c
|
||||||
--- dhcp-4.2.0/common/conflex.c.options 2010-03-24 22:49:47.000000000 +0100
|
--- dhcp-4.2.2b1/common/conflex.c.options 2011-05-11 16:20:59.000000000 +0200
|
||||||
+++ dhcp-4.2.0/common/conflex.c 2010-07-21 13:29:05.000000000 +0200
|
+++ dhcp-4.2.2b1/common/conflex.c 2011-07-01 13:51:52.938755494 +0200
|
||||||
@@ -803,6 +803,8 @@ intern(char *atom, enum dhcp_token dfv)
|
@@ -808,6 +808,8 @@ intern(char *atom, enum dhcp_token dfv)
|
||||||
return BALANCE;
|
return BALANCE;
|
||||||
if (!strcasecmp (atom + 1, "ound"))
|
if (!strcasecmp (atom + 1, "ound"))
|
||||||
return BOUND;
|
return BOUND;
|
||||||
@ -373,10 +373,10 @@ diff -up dhcp-4.2.0/common/conflex.c.options dhcp-4.2.0/common/conflex.c
|
|||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
if (!strcasecmp(atom + 1, "ase"))
|
if (!strcasecmp(atom + 1, "ase"))
|
||||||
diff -up dhcp-4.2.0/includes/dhcpd.h.options dhcp-4.2.0/includes/dhcpd.h
|
diff -up dhcp-4.2.2b1/includes/dhcpd.h.options dhcp-4.2.2b1/includes/dhcpd.h
|
||||||
--- dhcp-4.2.0/includes/dhcpd.h.options 2010-06-01 19:29:59.000000000 +0200
|
--- dhcp-4.2.2b1/includes/dhcpd.h.options 2011-05-20 16:21:11.000000000 +0200
|
||||||
+++ dhcp-4.2.0/includes/dhcpd.h 2010-07-21 13:29:05.000000000 +0200
|
+++ dhcp-4.2.2b1/includes/dhcpd.h 2011-07-01 13:51:52.940755442 +0200
|
||||||
@@ -1119,6 +1119,9 @@ struct client_config {
|
@@ -1147,6 +1147,9 @@ struct client_config {
|
||||||
int do_forward_update; /* If nonzero, and if we have the
|
int do_forward_update; /* If nonzero, and if we have the
|
||||||
information we need, update the
|
information we need, update the
|
||||||
A record for the address we get. */
|
A record for the address we get. */
|
||||||
@ -386,16 +386,16 @@ diff -up dhcp-4.2.0/includes/dhcpd.h.options dhcp-4.2.0/includes/dhcpd.h
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Per-interface state used in the dhcp client... */
|
/* Per-interface state used in the dhcp client... */
|
||||||
diff -up dhcp-4.2.0/includes/dhctoken.h.options dhcp-4.2.0/includes/dhctoken.h
|
diff -up dhcp-4.2.2b1/includes/dhctoken.h.options dhcp-4.2.2b1/includes/dhctoken.h
|
||||||
--- dhcp-4.2.0/includes/dhctoken.h.options 2010-02-17 21:33:55.000000000 +0100
|
--- dhcp-4.2.2b1/includes/dhctoken.h.options 2011-05-12 14:02:47.000000000 +0200
|
||||||
+++ dhcp-4.2.0/includes/dhctoken.h 2010-07-21 13:33:08.000000000 +0200
|
+++ dhcp-4.2.2b1/includes/dhctoken.h 2011-07-01 13:53:43.316861637 +0200
|
||||||
@@ -357,7 +357,8 @@ enum dhcp_token {
|
@@ -361,7 +361,8 @@ enum dhcp_token {
|
||||||
CONFLICT_DONE = 660,
|
|
||||||
AUTO_PARTNER_DOWN = 661,
|
|
||||||
GETHOSTNAME = 662,
|
GETHOSTNAME = 662,
|
||||||
- REWIND = 663
|
REWIND = 663,
|
||||||
+ REWIND = 663,
|
INITIAL_DELAY = 664,
|
||||||
+ BOOTP_BROADCAST_ALWAYS = 664
|
- GETHOSTBYNAME = 665
|
||||||
|
+ GETHOSTBYNAME = 665,
|
||||||
|
+ BOOTP_BROADCAST_ALWAYS = 666
|
||||||
};
|
};
|
||||||
|
|
||||||
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
@ -1,6 +1,6 @@
|
|||||||
diff -up dhcp-4.2.0/client/clparse.c.rfc3442 dhcp-4.2.0/client/clparse.c
|
diff -up dhcp-4.2.2b1/client/clparse.c.rfc3442 dhcp-4.2.2b1/client/clparse.c
|
||||||
--- dhcp-4.2.0/client/clparse.c.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/client/clparse.c.rfc3442 2011-07-01 14:22:38.031534508 +0200
|
||||||
+++ dhcp-4.2.0/client/clparse.c 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/client/clparse.c 2011-07-01 14:22:38.128532940 +0200
|
||||||
@@ -37,7 +37,7 @@
|
@@ -37,7 +37,7 @@
|
||||||
|
|
||||||
struct client_config top_level_config;
|
struct client_config top_level_config;
|
||||||
@ -35,9 +35,9 @@ diff -up dhcp-4.2.0/client/clparse.c.rfc3442 dhcp-4.2.0/client/clparse.c
|
|||||||
for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) {
|
for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) {
|
||||||
if (default_requested_options[code] == NULL)
|
if (default_requested_options[code] == NULL)
|
||||||
log_fatal("Unable to find option definition for "
|
log_fatal("Unable to find option definition for "
|
||||||
diff -up dhcp-4.2.0/common/dhcp-options.5.rfc3442 dhcp-4.2.0/common/dhcp-options.5
|
diff -up dhcp-4.2.2b1/common/dhcp-options.5.rfc3442 dhcp-4.2.2b1/common/dhcp-options.5
|
||||||
--- dhcp-4.2.0/common/dhcp-options.5.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/common/dhcp-options.5.rfc3442 2011-07-01 14:22:38.020534686 +0200
|
||||||
+++ dhcp-4.2.0/common/dhcp-options.5 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/common/dhcp-options.5 2011-07-01 14:22:38.129532924 +0200
|
||||||
@@ -115,6 +115,26 @@ hexadecimal, separated by colons. For
|
@@ -115,6 +115,26 @@ hexadecimal, separated by colons. For
|
||||||
or
|
or
|
||||||
option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f;
|
option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f;
|
||||||
@ -95,10 +95,10 @@ diff -up dhcp-4.2.0/common/dhcp-options.5.rfc3442 dhcp-4.2.0/common/dhcp-options
|
|||||||
.B option \fBstreettalk-directory-assistance-server\fR \fIip-address\fR
|
.B option \fBstreettalk-directory-assistance-server\fR \fIip-address\fR
|
||||||
[\fB,\fR \fIip-address\fR...]\fB;\fR
|
[\fB,\fR \fIip-address\fR...]\fB;\fR
|
||||||
.fi
|
.fi
|
||||||
diff -up dhcp-4.2.0/common/inet.c.rfc3442 dhcp-4.2.0/common/inet.c
|
diff -up dhcp-4.2.2b1/common/inet.c.rfc3442 dhcp-4.2.2b1/common/inet.c
|
||||||
--- dhcp-4.2.0/common/inet.c.rfc3442 2009-11-20 02:49:00.000000000 +0100
|
--- dhcp-4.2.2b1/common/inet.c.rfc3442 2011-05-11 02:47:22.000000000 +0200
|
||||||
+++ dhcp-4.2.0/common/inet.c 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/common/inet.c 2011-07-01 14:22:38.130532908 +0200
|
||||||
@@ -526,6 +526,60 @@ free_iaddrcidrnetlist(struct iaddrcidrne
|
@@ -528,6 +528,60 @@ free_iaddrcidrnetlist(struct iaddrcidrne
|
||||||
return ISC_R_SUCCESS;
|
return ISC_R_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,9 +159,9 @@ diff -up dhcp-4.2.0/common/inet.c.rfc3442 dhcp-4.2.0/common/inet.c
|
|||||||
/* piaddr() turns an iaddr structure into a printable address. */
|
/* piaddr() turns an iaddr structure into a printable address. */
|
||||||
/* XXX: should use a const pointer rather than passing the structure */
|
/* XXX: should use a const pointer rather than passing the structure */
|
||||||
const char *
|
const char *
|
||||||
diff -up dhcp-4.2.0/common/options.c.rfc3442 dhcp-4.2.0/common/options.c
|
diff -up dhcp-4.2.2b1/common/options.c.rfc3442 dhcp-4.2.2b1/common/options.c
|
||||||
--- dhcp-4.2.0/common/options.c.rfc3442 2010-06-01 19:29:59.000000000 +0200
|
--- dhcp-4.2.2b1/common/options.c.rfc3442 2011-03-24 22:57:13.000000000 +0100
|
||||||
+++ dhcp-4.2.0/common/options.c 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/common/options.c 2011-07-01 14:22:38.132532876 +0200
|
||||||
@@ -706,7 +706,11 @@ cons_options(struct packet *inpacket, st
|
@@ -706,7 +706,11 @@ cons_options(struct packet *inpacket, st
|
||||||
* packet.
|
* packet.
|
||||||
*/
|
*/
|
||||||
@ -246,9 +246,9 @@ diff -up dhcp-4.2.0/common/options.c.rfc3442 dhcp-4.2.0/common/options.c
|
|||||||
case '6':
|
case '6':
|
||||||
iaddr.len = 16;
|
iaddr.len = 16;
|
||||||
memcpy(iaddr.iabuf, dp, 16);
|
memcpy(iaddr.iabuf, dp, 16);
|
||||||
diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
diff -up dhcp-4.2.2b1/common/parse.c.rfc3442 dhcp-4.2.2b1/common/parse.c
|
||||||
--- dhcp-4.2.0/common/parse.c.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/common/parse.c.rfc3442 2011-07-01 14:22:38.097533441 +0200
|
||||||
+++ dhcp-4.2.0/common/parse.c 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/common/parse.c 2011-07-01 14:22:38.135532828 +0200
|
||||||
@@ -341,6 +341,39 @@ int parse_ip_addr (cfile, addr)
|
@@ -341,6 +341,39 @@ int parse_ip_addr (cfile, addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,7 +289,7 @@ diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
|||||||
* Return true if every character in the string is hexadecimal.
|
* Return true if every character in the string is hexadecimal.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
@@ -707,8 +740,10 @@ unsigned char *parse_numeric_aggregate (
|
@@ -700,8 +733,10 @@ unsigned char *parse_numeric_aggregate (
|
||||||
if (count) {
|
if (count) {
|
||||||
token = peek_token (&val, (unsigned *)0, cfile);
|
token = peek_token (&val, (unsigned *)0, cfile);
|
||||||
if (token != separator) {
|
if (token != separator) {
|
||||||
@ -301,7 +301,7 @@ diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
|||||||
if (token != RBRACE && token != LBRACE)
|
if (token != RBRACE && token != LBRACE)
|
||||||
token = next_token (&val,
|
token = next_token (&val,
|
||||||
(unsigned *)0,
|
(unsigned *)0,
|
||||||
@@ -1619,6 +1654,9 @@ int parse_option_code_definition (cfile,
|
@@ -1624,6 +1659,9 @@ int parse_option_code_definition (cfile,
|
||||||
case IP_ADDRESS:
|
case IP_ADDRESS:
|
||||||
type = 'I';
|
type = 'I';
|
||||||
break;
|
break;
|
||||||
@ -311,7 +311,7 @@ diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
|||||||
case IP6_ADDRESS:
|
case IP6_ADDRESS:
|
||||||
type = '6';
|
type = '6';
|
||||||
break;
|
break;
|
||||||
@@ -5232,6 +5270,15 @@ int parse_option_token (rv, cfile, fmt,
|
@@ -5288,6 +5326,15 @@ int parse_option_token (rv, cfile, fmt,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -327,7 +327,7 @@ diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
|||||||
case '6': /* IPv6 address. */
|
case '6': /* IPv6 address. */
|
||||||
if (!parse_ip6_addr(cfile, &addr)) {
|
if (!parse_ip6_addr(cfile, &addr)) {
|
||||||
return 0;
|
return 0;
|
||||||
@@ -5492,6 +5539,13 @@ int parse_option_decl (oc, cfile)
|
@@ -5548,6 +5595,13 @@ int parse_option_decl (oc, cfile)
|
||||||
goto exit;
|
goto exit;
|
||||||
len = ip_addr.len;
|
len = ip_addr.len;
|
||||||
dp = ip_addr.iabuf;
|
dp = ip_addr.iabuf;
|
||||||
@ -341,9 +341,9 @@ diff -up dhcp-4.2.0/common/parse.c.rfc3442 dhcp-4.2.0/common/parse.c
|
|||||||
|
|
||||||
alloc:
|
alloc:
|
||||||
if (hunkix + len > sizeof hunkbuf) {
|
if (hunkix + len > sizeof hunkbuf) {
|
||||||
diff -up dhcp-4.2.0/common/tables.c.rfc3442 dhcp-4.2.0/common/tables.c
|
diff -up dhcp-4.2.2b1/common/tables.c.rfc3442 dhcp-4.2.2b1/common/tables.c
|
||||||
--- dhcp-4.2.0/common/tables.c.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/common/tables.c.rfc3442 2011-07-01 14:22:38.087533601 +0200
|
||||||
+++ dhcp-4.2.0/common/tables.c 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/common/tables.c 2011-07-01 14:22:38.137532796 +0200
|
||||||
@@ -51,6 +51,7 @@ HASH_FUNCTIONS (option_code, const unsig
|
@@ -51,6 +51,7 @@ HASH_FUNCTIONS (option_code, const unsig
|
||||||
Format codes:
|
Format codes:
|
||||||
|
|
||||||
@ -360,28 +360,28 @@ diff -up dhcp-4.2.0/common/tables.c.rfc3442 dhcp-4.2.0/common/tables.c
|
|||||||
{ "vivco", "Evendor-class.", &dhcp_universe, 124, 1 },
|
{ "vivco", "Evendor-class.", &dhcp_universe, 124, 1 },
|
||||||
{ "vivso", "Evendor.", &dhcp_universe, 125, 1 },
|
{ "vivso", "Evendor.", &dhcp_universe, 125, 1 },
|
||||||
#if 0
|
#if 0
|
||||||
diff -up dhcp-4.2.0/includes/dhcpd.h.rfc3442 dhcp-4.2.0/includes/dhcpd.h
|
diff -up dhcp-4.2.2b1/includes/dhcpd.h.rfc3442 dhcp-4.2.2b1/includes/dhcpd.h
|
||||||
--- dhcp-4.2.0/includes/dhcpd.h.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/includes/dhcpd.h.rfc3442 2011-07-01 14:22:38.000000000 +0200
|
||||||
+++ dhcp-4.2.0/includes/dhcpd.h 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/includes/dhcpd.h 2011-07-01 14:24:19.999810333 +0200
|
||||||
@@ -2638,6 +2638,7 @@ isc_result_t range2cidr(struct iaddrcidr
|
@@ -2662,6 +2662,7 @@ isc_result_t range2cidr(struct iaddrcidr
|
||||||
const struct iaddr *lo, const struct iaddr *hi);
|
const struct iaddr *lo, const struct iaddr *hi);
|
||||||
isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result);
|
isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result);
|
||||||
const char *piaddr PROTO ((struct iaddr));
|
const char *piaddr (struct iaddr);
|
||||||
+const char *pdestdesc PROTO ((struct iaddr));
|
+const char *pdestdesc (struct iaddr);
|
||||||
char *piaddrmask(struct iaddr *, struct iaddr *);
|
char *piaddrmask(struct iaddr *, struct iaddr *);
|
||||||
char *piaddrcidr(const struct iaddr *, unsigned int);
|
char *piaddrcidr(const struct iaddr *, unsigned int);
|
||||||
u_int16_t validate_port(char *);
|
u_int16_t validate_port(char *);
|
||||||
@@ -2849,6 +2850,7 @@ void parse_client_lease_declaration PROT
|
@@ -2869,6 +2870,7 @@ void parse_client_lease_declaration (str
|
||||||
int parse_option_decl PROTO ((struct option_cache **, struct parse *));
|
int parse_option_decl (struct option_cache **, struct parse *);
|
||||||
void parse_string_list PROTO ((struct parse *, struct string_list **, int));
|
void parse_string_list (struct parse *, struct string_list **, int);
|
||||||
int parse_ip_addr PROTO ((struct parse *, struct iaddr *));
|
int parse_ip_addr (struct parse *, struct iaddr *);
|
||||||
+int parse_destination_descriptor PROTO ((struct parse *, struct iaddr *));
|
+int parse_destination_descriptor (struct parse *, struct iaddr *);
|
||||||
int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *);
|
int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *);
|
||||||
void parse_reject_statement PROTO ((struct parse *, struct client_config *));
|
void parse_reject_statement (struct parse *, struct client_config *);
|
||||||
|
|
||||||
diff -up dhcp-4.2.0/includes/dhcp.h.rfc3442 dhcp-4.2.0/includes/dhcp.h
|
diff -up dhcp-4.2.2b1/includes/dhcp.h.rfc3442 dhcp-4.2.2b1/includes/dhcp.h
|
||||||
--- dhcp-4.2.0/includes/dhcp.h.rfc3442 2009-11-20 02:49:01.000000000 +0100
|
--- dhcp-4.2.2b1/includes/dhcp.h.rfc3442 2009-11-20 02:49:01.000000000 +0100
|
||||||
+++ dhcp-4.2.0/includes/dhcp.h 2010-08-31 10:13:49.000000000 +0200
|
+++ dhcp-4.2.2b1/includes/dhcp.h 2011-07-01 14:22:38.145532665 +0200
|
||||||
@@ -158,6 +158,7 @@ struct dhcp_packet {
|
@@ -158,6 +158,7 @@ struct dhcp_packet {
|
||||||
#define DHO_ASSOCIATED_IP 92
|
#define DHO_ASSOCIATED_IP 92
|
||||||
#define DHO_SUBNET_SELECTION 118 /* RFC3011! */
|
#define DHO_SUBNET_SELECTION 118 /* RFC3011! */
|
||||||
@ -390,16 +390,16 @@ diff -up dhcp-4.2.0/includes/dhcp.h.rfc3442 dhcp-4.2.0/includes/dhcp.h
|
|||||||
#define DHO_VIVCO_SUBOPTIONS 124
|
#define DHO_VIVCO_SUBOPTIONS 124
|
||||||
#define DHO_VIVSO_SUBOPTIONS 125
|
#define DHO_VIVSO_SUBOPTIONS 125
|
||||||
|
|
||||||
diff -up dhcp-4.2.0/includes/dhctoken.h.rfc3442 dhcp-4.2.0/includes/dhctoken.h
|
diff -up dhcp-4.2.2b1/includes/dhctoken.h.rfc3442 dhcp-4.2.2b1/includes/dhctoken.h
|
||||||
--- dhcp-4.2.0/includes/dhctoken.h.rfc3442 2010-08-31 10:12:51.000000000 +0200
|
--- dhcp-4.2.2b1/includes/dhctoken.h.rfc3442 2011-07-01 14:22:37.000000000 +0200
|
||||||
+++ dhcp-4.2.0/includes/dhctoken.h 2010-08-31 10:15:39.000000000 +0200
|
+++ dhcp-4.2.2b1/includes/dhctoken.h 2011-07-01 14:25:12.541867623 +0200
|
||||||
@@ -358,7 +358,8 @@ enum dhcp_token {
|
@@ -362,7 +362,8 @@ enum dhcp_token {
|
||||||
AUTO_PARTNER_DOWN = 661,
|
|
||||||
GETHOSTNAME = 662,
|
|
||||||
REWIND = 663,
|
REWIND = 663,
|
||||||
- BOOTP_BROADCAST_ALWAYS = 664
|
INITIAL_DELAY = 664,
|
||||||
+ BOOTP_BROADCAST_ALWAYS = 664,
|
GETHOSTBYNAME = 665,
|
||||||
+ DESTINATION_DESCRIPTOR = 666
|
- BOOTP_BROADCAST_ALWAYS = 666
|
||||||
|
+ BOOTP_BROADCAST_ALWAYS = 666,
|
||||||
|
+ DESTINATION_DESCRIPTOR = 667
|
||||||
};
|
};
|
||||||
|
|
||||||
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
@ -1,6 +1,6 @@
|
|||||||
diff -up dhcp-4.2.1-P1/common/bpf.c.xen dhcp-4.2.1-P1/common/bpf.c
|
diff -up dhcp-4.2.2b1/common/bpf.c.xen dhcp-4.2.2b1/common/bpf.c
|
||||||
--- dhcp-4.2.1-P1/common/bpf.c.xen 2009-11-20 02:48:59.000000000 +0100
|
--- dhcp-4.2.2b1/common/bpf.c.xen 2009-11-20 02:48:59.000000000 +0100
|
||||||
+++ dhcp-4.2.1-P1/common/bpf.c 2011-06-17 13:33:18.398055078 +0200
|
+++ dhcp-4.2.2b1/common/bpf.c 2011-07-01 14:00:16.936959001 +0200
|
||||||
@@ -485,7 +485,7 @@ ssize_t receive_packet (interface, buf,
|
@@ -485,7 +485,7 @@ ssize_t receive_packet (interface, buf,
|
||||||
offset = decode_udp_ip_header (interface,
|
offset = decode_udp_ip_header (interface,
|
||||||
interface -> rbuf,
|
interface -> rbuf,
|
||||||
@ -10,10 +10,10 @@ diff -up dhcp-4.2.1-P1/common/bpf.c.xen dhcp-4.2.1-P1/common/bpf.c
|
|||||||
|
|
||||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||||
if (offset < 0) {
|
if (offset < 0) {
|
||||||
diff -up dhcp-4.2.1-P1/common/dlpi.c.xen dhcp-4.2.1-P1/common/dlpi.c
|
diff -up dhcp-4.2.2b1/common/dlpi.c.xen dhcp-4.2.2b1/common/dlpi.c
|
||||||
--- dhcp-4.2.1-P1/common/dlpi.c.xen 2011-02-18 20:16:04.000000000 +0100
|
--- dhcp-4.2.2b1/common/dlpi.c.xen 2011-05-11 16:20:59.000000000 +0200
|
||||||
+++ dhcp-4.2.1-P1/common/dlpi.c 2011-06-17 13:33:18.398055078 +0200
|
+++ dhcp-4.2.2b1/common/dlpi.c 2011-07-01 14:00:16.937958997 +0200
|
||||||
@@ -695,7 +695,7 @@ ssize_t receive_packet (interface, buf,
|
@@ -693,7 +693,7 @@ ssize_t receive_packet (interface, buf,
|
||||||
length -= offset;
|
length -= offset;
|
||||||
#endif
|
#endif
|
||||||
offset = decode_udp_ip_header (interface, dbuf, bufix,
|
offset = decode_udp_ip_header (interface, dbuf, bufix,
|
||||||
@ -22,10 +22,10 @@ diff -up dhcp-4.2.1-P1/common/dlpi.c.xen dhcp-4.2.1-P1/common/dlpi.c
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If the IP or UDP checksum was bad, skip the packet...
|
* If the IP or UDP checksum was bad, skip the packet...
|
||||||
diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
diff -up dhcp-4.2.2b1/common/lpf.c.xen dhcp-4.2.2b1/common/lpf.c
|
||||||
--- dhcp-4.2.1-P1/common/lpf.c.xen 2009-07-23 20:52:19.000000000 +0200
|
--- dhcp-4.2.2b1/common/lpf.c.xen 2011-05-10 16:38:58.000000000 +0200
|
||||||
+++ dhcp-4.2.1-P1/common/lpf.c 2011-06-17 13:37:31.611730430 +0200
|
+++ dhcp-4.2.2b1/common/lpf.c 2011-07-01 14:11:24.725748028 +0200
|
||||||
@@ -29,18 +29,33 @@
|
@@ -29,19 +29,33 @@
|
||||||
#include "dhcpd.h"
|
#include "dhcpd.h"
|
||||||
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
|
#if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
@ -38,6 +38,7 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
#include <linux/if_ether.h>
|
#include <linux/if_ether.h>
|
||||||
+#include <linux/if_packet.h>
|
+#include <linux/if_packet.h>
|
||||||
#include <netinet/in_systm.h>
|
#include <netinet/in_systm.h>
|
||||||
|
-#include <net/if_packet.h>
|
||||||
#include "includes/netinet/ip.h"
|
#include "includes/netinet/ip.h"
|
||||||
#include "includes/netinet/udp.h"
|
#include "includes/netinet/udp.h"
|
||||||
#include "includes/netinet/if_ether.h"
|
#include "includes/netinet/if_ether.h"
|
||||||
@ -59,7 +60,7 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
/* Reinitializes the specified interface after an address change. This
|
/* Reinitializes the specified interface after an address change. This
|
||||||
is not required for packet-filter APIs. */
|
is not required for packet-filter APIs. */
|
||||||
|
|
||||||
@@ -66,10 +81,14 @@ int if_register_lpf (info)
|
@@ -67,10 +81,14 @@ int if_register_lpf (info)
|
||||||
struct interface_info *info;
|
struct interface_info *info;
|
||||||
{
|
{
|
||||||
int sock;
|
int sock;
|
||||||
@ -76,7 +77,7 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
htons((short)ETH_P_ALL))) < 0) {
|
htons((short)ETH_P_ALL))) < 0) {
|
||||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||||
@@ -84,11 +103,17 @@ int if_register_lpf (info)
|
@@ -85,11 +103,17 @@ int if_register_lpf (info)
|
||||||
log_fatal ("Open a socket for LPF: %m");
|
log_fatal ("Open a socket for LPF: %m");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
|
||||||
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
|
||||||
errno == EAFNOSUPPORT || errno == EINVAL) {
|
errno == EAFNOSUPPORT || errno == EINVAL) {
|
||||||
@@ -170,9 +195,18 @@ static void lpf_gen_filter_setup (struct
|
@@ -171,9 +195,18 @@ static void lpf_gen_filter_setup (struct
|
||||||
void if_register_receive (info)
|
void if_register_receive (info)
|
||||||
struct interface_info *info;
|
struct interface_info *info;
|
||||||
{
|
{
|
||||||
@ -116,32 +117,34 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
#if defined (HAVE_TR_SUPPORT)
|
#if defined (HAVE_TR_SUPPORT)
|
||||||
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
|
if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
|
||||||
lpf_tr_filter_setup (info);
|
lpf_tr_filter_setup (info);
|
||||||
@@ -294,7 +328,6 @@ ssize_t send_packet (interface, packet,
|
@@ -295,7 +328,6 @@ ssize_t send_packet (interface, packet,
|
||||||
double hh [16];
|
double hh [16];
|
||||||
double ih [1536 / sizeof (double)];
|
double ih [1536 / sizeof (double)];
|
||||||
unsigned char *buf = (unsigned char *)ih;
|
unsigned char *buf = (unsigned char *)ih;
|
||||||
- struct sockaddr sa;
|
- struct sockaddr_pkt sa;
|
||||||
int result;
|
int result;
|
||||||
int fudge;
|
int fudge;
|
||||||
|
|
||||||
@@ -315,15 +348,7 @@ ssize_t send_packet (interface, packet,
|
@@ -316,17 +348,7 @@ ssize_t send_packet (interface, packet,
|
||||||
(unsigned char *)raw, len);
|
(unsigned char *)raw, len);
|
||||||
memcpy (buf + ibufp, raw, len);
|
memcpy (buf + ibufp, raw, len);
|
||||||
|
|
||||||
- /* For some reason, SOCK_PACKET sockets can't be connected,
|
- /* For some reason, SOCK_PACKET sockets can't be connected,
|
||||||
- so we have to do a sentdo every time. */
|
- so we have to do a sentdo every time. */
|
||||||
- memset (&sa, 0, sizeof sa);
|
- memset (&sa, 0, sizeof sa);
|
||||||
- sa.sa_family = AF_PACKET;
|
- sa.spkt_family = AF_PACKET;
|
||||||
- strncpy (sa.sa_data,
|
- strncpy ((char *)sa.spkt_device,
|
||||||
- (const char *)interface -> ifp, sizeof sa.sa_data);
|
- (const char *)interface -> ifp, sizeof sa.spkt_device);
|
||||||
|
- sa.spkt_protocol = htons(ETH_P_IP);
|
||||||
-
|
-
|
||||||
- result = sendto (interface -> wfdesc,
|
- result = sendto (interface -> wfdesc,
|
||||||
- buf + fudge, ibufp + len - fudge, 0, &sa, sizeof sa);
|
- buf + fudge, ibufp + len - fudge, 0,
|
||||||
|
- (const struct sockaddr *)&sa, sizeof sa);
|
||||||
+ result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge);
|
+ result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
log_error ("send_packet: %m");
|
log_error ("send_packet: %m");
|
||||||
return result;
|
return result;
|
||||||
@@ -340,14 +365,35 @@ ssize_t receive_packet (interface, buf,
|
@@ -343,14 +365,35 @@ ssize_t receive_packet (interface, buf,
|
||||||
{
|
{
|
||||||
int length = 0;
|
int length = 0;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
@ -178,7 +181,7 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
bufix = 0;
|
bufix = 0;
|
||||||
/* Decode the physical header... */
|
/* Decode the physical header... */
|
||||||
offset = decode_hw_header (interface, ibuf, bufix, hfrom);
|
offset = decode_hw_header (interface, ibuf, bufix, hfrom);
|
||||||
@@ -364,7 +410,7 @@ ssize_t receive_packet (interface, buf,
|
@@ -367,7 +410,7 @@ ssize_t receive_packet (interface, buf,
|
||||||
|
|
||||||
/* Decode the IP and UDP headers... */
|
/* Decode the IP and UDP headers... */
|
||||||
offset = decode_udp_ip_header (interface, ibuf, bufix, from,
|
offset = decode_udp_ip_header (interface, ibuf, bufix, from,
|
||||||
@ -187,9 +190,9 @@ diff -up dhcp-4.2.1-P1/common/lpf.c.xen dhcp-4.2.1-P1/common/lpf.c
|
|||||||
|
|
||||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
diff -up dhcp-4.2.1-P1/common/nit.c.xen dhcp-4.2.1-P1/common/nit.c
|
diff -up dhcp-4.2.2b1/common/nit.c.xen dhcp-4.2.2b1/common/nit.c
|
||||||
--- dhcp-4.2.1-P1/common/nit.c.xen 2009-11-20 02:49:01.000000000 +0100
|
--- dhcp-4.2.2b1/common/nit.c.xen 2009-11-20 02:49:01.000000000 +0100
|
||||||
+++ dhcp-4.2.1-P1/common/nit.c 2011-06-17 13:33:18.414054663 +0200
|
+++ dhcp-4.2.2b1/common/nit.c 2011-07-01 14:00:16.939958989 +0200
|
||||||
@@ -369,7 +369,7 @@ ssize_t receive_packet (interface, buf,
|
@@ -369,7 +369,7 @@ ssize_t receive_packet (interface, buf,
|
||||||
|
|
||||||
/* Decode the IP and UDP headers... */
|
/* Decode the IP and UDP headers... */
|
||||||
@ -199,9 +202,9 @@ diff -up dhcp-4.2.1-P1/common/nit.c.xen dhcp-4.2.1-P1/common/nit.c
|
|||||||
|
|
||||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
diff -up dhcp-4.2.1-P1/common/packet.c.xen dhcp-4.2.1-P1/common/packet.c
|
diff -up dhcp-4.2.2b1/common/packet.c.xen dhcp-4.2.2b1/common/packet.c
|
||||||
--- dhcp-4.2.1-P1/common/packet.c.xen 2009-07-23 20:52:20.000000000 +0200
|
--- dhcp-4.2.2b1/common/packet.c.xen 2009-07-23 20:52:20.000000000 +0200
|
||||||
+++ dhcp-4.2.1-P1/common/packet.c 2011-06-17 13:33:18.414054663 +0200
|
+++ dhcp-4.2.2b1/common/packet.c 2011-07-01 14:00:16.939958989 +0200
|
||||||
@@ -211,7 +211,7 @@ ssize_t
|
@@ -211,7 +211,7 @@ ssize_t
|
||||||
decode_udp_ip_header(struct interface_info *interface,
|
decode_udp_ip_header(struct interface_info *interface,
|
||||||
unsigned char *buf, unsigned bufix,
|
unsigned char *buf, unsigned bufix,
|
||||||
@ -220,9 +223,9 @@ diff -up dhcp-4.2.1-P1/common/packet.c.xen dhcp-4.2.1-P1/common/packet.c
|
|||||||
udp_packets_bad_checksum++;
|
udp_packets_bad_checksum++;
|
||||||
if (udp_packets_seen > 4 &&
|
if (udp_packets_seen > 4 &&
|
||||||
(udp_packets_seen / udp_packets_bad_checksum) < 2) {
|
(udp_packets_seen / udp_packets_bad_checksum) < 2) {
|
||||||
diff -up dhcp-4.2.1-P1/common/upf.c.xen dhcp-4.2.1-P1/common/upf.c
|
diff -up dhcp-4.2.2b1/common/upf.c.xen dhcp-4.2.2b1/common/upf.c
|
||||||
--- dhcp-4.2.1-P1/common/upf.c.xen 2009-11-20 02:49:01.000000000 +0100
|
--- dhcp-4.2.2b1/common/upf.c.xen 2009-11-20 02:49:01.000000000 +0100
|
||||||
+++ dhcp-4.2.1-P1/common/upf.c 2011-06-17 13:33:18.418054566 +0200
|
+++ dhcp-4.2.2b1/common/upf.c 2011-07-01 14:00:16.940958986 +0200
|
||||||
@@ -320,7 +320,7 @@ ssize_t receive_packet (interface, buf,
|
@@ -320,7 +320,7 @@ ssize_t receive_packet (interface, buf,
|
||||||
|
|
||||||
/* Decode the IP and UDP headers... */
|
/* Decode the IP and UDP headers... */
|
||||||
@ -232,15 +235,15 @@ diff -up dhcp-4.2.1-P1/common/upf.c.xen dhcp-4.2.1-P1/common/upf.c
|
|||||||
|
|
||||||
/* If the IP or UDP checksum was bad, skip the packet... */
|
/* If the IP or UDP checksum was bad, skip the packet... */
|
||||||
if (offset < 0)
|
if (offset < 0)
|
||||||
diff -up dhcp-4.2.1-P1/includes/dhcpd.h.xen dhcp-4.2.1-P1/includes/dhcpd.h
|
diff -up dhcp-4.2.2b1/includes/dhcpd.h.xen dhcp-4.2.2b1/includes/dhcpd.h
|
||||||
--- dhcp-4.2.1-P1/includes/dhcpd.h.xen 2011-06-17 13:33:18.382055486 +0200
|
--- dhcp-4.2.2b1/includes/dhcpd.h.xen 2011-07-01 14:00:16.000000000 +0200
|
||||||
+++ dhcp-4.2.1-P1/includes/dhcpd.h 2011-06-17 13:33:18.420054516 +0200
|
+++ dhcp-4.2.2b1/includes/dhcpd.h 2011-07-01 14:12:18.069642470 +0200
|
||||||
@@ -2776,7 +2776,7 @@ ssize_t decode_hw_header PROTO ((struct
|
@@ -2796,7 +2796,7 @@ ssize_t decode_hw_header (struct interfa
|
||||||
unsigned, struct hardware *));
|
unsigned, struct hardware *);
|
||||||
ssize_t decode_udp_ip_header PROTO ((struct interface_info *, unsigned char *,
|
ssize_t decode_udp_ip_header (struct interface_info *, unsigned char *,
|
||||||
unsigned, struct sockaddr_in *,
|
unsigned, struct sockaddr_in *,
|
||||||
- unsigned, unsigned *));
|
- unsigned, unsigned *);
|
||||||
+ unsigned, unsigned *, int));
|
+ unsigned, unsigned *, int);
|
||||||
|
|
||||||
/* ethernet.c */
|
/* ethernet.c */
|
||||||
void assemble_ethernet_header PROTO ((struct interface_info *, unsigned char *,
|
void assemble_ethernet_header (struct interface_info *, unsigned char *,
|
31
dhcp.spec
31
dhcp.spec
@ -5,18 +5,18 @@
|
|||||||
%global dhcpconfdir %{_sysconfdir}/dhcp
|
%global dhcpconfdir %{_sysconfdir}/dhcp
|
||||||
|
|
||||||
# Patch version
|
# Patch version
|
||||||
%global patchver P1
|
#%global patchver P1
|
||||||
# Pre-Release version
|
# Pre-Release version
|
||||||
#%global prever rc1
|
%global prever b1
|
||||||
|
|
||||||
#%global VERSION %{version}%{prever}
|
|
||||||
#%global VERSION %{version}
|
#%global VERSION %{version}
|
||||||
%global VERSION %{version}-%{patchver}
|
#%global VERSION %{version}-%{patchver}
|
||||||
|
%global VERSION %{version}%{prever}
|
||||||
|
|
||||||
Summary: Dynamic host configuration protocol software
|
Summary: Dynamic host configuration protocol software
|
||||||
Name: dhcp
|
Name: dhcp
|
||||||
Version: 4.2.1
|
Version: 4.2.2
|
||||||
Release: 12.%{patchver}%{?dist}
|
Release: 0.1.%{prever}%{?dist}
|
||||||
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to
|
||||||
# dcantrell maintaining the package) made incorrect use of the epoch and
|
# dcantrell maintaining the package) made incorrect use of the epoch and
|
||||||
# that's why it is at 12 now. It should have never been used, but it was.
|
# that's why it is at 12 now. It should have never been used, but it was.
|
||||||
@ -39,16 +39,16 @@ Source10: dhcpd6.service
|
|||||||
Source11: dhcrelay.service
|
Source11: dhcrelay.service
|
||||||
|
|
||||||
Patch0: dhcp-4.2.0-errwarn-message.patch
|
Patch0: dhcp-4.2.0-errwarn-message.patch
|
||||||
Patch1: dhcp-4.2.0-options.patch
|
Patch1: dhcp-4.2.2-options.patch
|
||||||
Patch2: dhcp-4.2.0-release-by-ifup.patch
|
Patch2: dhcp-4.2.0-release-by-ifup.patch
|
||||||
Patch3: dhcp-4.2.0-dhclient-decline-backoff.patch
|
Patch3: dhcp-4.2.0-dhclient-decline-backoff.patch
|
||||||
Patch4: dhcp-4.2.0-unicast-bootp.patch
|
Patch4: dhcp-4.2.0-unicast-bootp.patch
|
||||||
Patch6: dhcp-4.2.0-dhclient-usage.patch
|
Patch6: dhcp-4.2.2-dhclient-usage.patch
|
||||||
Patch7: dhcp-4.2.0-default-requested-options.patch
|
Patch7: dhcp-4.2.0-default-requested-options.patch
|
||||||
Patch8: dhcp-4.2.1-xen-checksum.patch
|
Patch8: dhcp-4.2.2-xen-checksum.patch
|
||||||
Patch10: dhcp-4.2.1-manpages.patch
|
Patch10: dhcp-4.2.1-manpages.patch
|
||||||
Patch11: dhcp-4.2.0-paths.patch
|
Patch11: dhcp-4.2.0-paths.patch
|
||||||
Patch12: dhcp-4.2.0-CLOEXEC.patch
|
Patch12: dhcp-4.2.2-CLOEXEC.patch
|
||||||
Patch13: dhcp-4.2.0-inherit-leases.patch
|
Patch13: dhcp-4.2.0-inherit-leases.patch
|
||||||
Patch14: dhcp-4.2.0-garbage-chars.patch
|
Patch14: dhcp-4.2.0-garbage-chars.patch
|
||||||
Patch15: dhcp-4.2.0-missing-ipv6-not-fatal.patch
|
Patch15: dhcp-4.2.0-missing-ipv6-not-fatal.patch
|
||||||
@ -59,9 +59,8 @@ Patch20: dhcp-4.2.0-logpid.patch
|
|||||||
Patch21: dhcp-4.2.0-UseMulticast.patch
|
Patch21: dhcp-4.2.0-UseMulticast.patch
|
||||||
Patch22: dhcp-4.2.1-sendDecline.patch
|
Patch22: dhcp-4.2.1-sendDecline.patch
|
||||||
Patch23: dhcp-4.2.1-retransmission.patch
|
Patch23: dhcp-4.2.1-retransmission.patch
|
||||||
Patch24: dhcp-4.2.0-initialization-delay.patch
|
Patch25: dhcp-4.2.2-rfc3442-classless-static-routes.patch
|
||||||
Patch25: dhcp-4.2.0-rfc3442-classless-static-routes.patch
|
Patch26: dhcp-4.2.2-PIE-RELRO.patch
|
||||||
Patch26: dhcp-4.2.1-PIE-RELRO.patch
|
|
||||||
Patch27: dhcp-4.2.0-honor-expired.patch
|
Patch27: dhcp-4.2.0-honor-expired.patch
|
||||||
Patch28: dhcp-4.2.0-noprefixavail.patch
|
Patch28: dhcp-4.2.0-noprefixavail.patch
|
||||||
Patch29: dhcp420-rh637017.patch
|
Patch29: dhcp420-rh637017.patch
|
||||||
@ -276,9 +275,6 @@ rm bind/bind.tar.gz
|
|||||||
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21238])
|
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21238])
|
||||||
%patch23 -p1 -b .retransmission
|
%patch23 -p1 -b .retransmission
|
||||||
|
|
||||||
# Cut down the 0-4 second delay before sending first DHCPDISCOVER (#587070)
|
|
||||||
%patch24 -p1 -b .initialization-delay
|
|
||||||
|
|
||||||
# RFC 3442 - Classless Static Route Option for DHCPv4 (#516325)
|
# RFC 3442 - Classless Static Route Option for DHCPv4 (#516325)
|
||||||
%patch25 -p1 -b .rfc3442
|
%patch25 -p1 -b .rfc3442
|
||||||
|
|
||||||
@ -651,6 +647,9 @@ fi
|
|||||||
%{_initddir}/dhcrelay
|
%{_initddir}/dhcrelay
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jul 01 2011 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.2-0.1.b1
|
||||||
|
- 4.2.2b1: upstream merged initialization-delay.patch
|
||||||
|
|
||||||
* Fri Jun 17 2011 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.1-12.P1
|
* Fri Jun 17 2011 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.1-12.P1
|
||||||
- Removed upstream-merged IFNAMSIZ.patch
|
- Removed upstream-merged IFNAMSIZ.patch
|
||||||
- Polished patches according to results from static analysis of code.
|
- Polished patches according to results from static analysis of code.
|
||||||
|
Loading…
Reference in New Issue
Block a user