This commit is contained in:
Jiri Popelka 2014-07-10 19:01:31 +02:00
parent 6b7e125d8b
commit 7b69e548fb
19 changed files with 839 additions and 1064 deletions

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/dhc6.c.PPP dhcp-4.3.0a1/client/dhc6.c
--- dhcp-4.3.0a1/client/dhc6.c.PPP 2013-12-19 16:16:45.925550229 +0100
+++ dhcp-4.3.0a1/client/dhc6.c 2013-12-19 16:16:45.930550159 +0100
@@ -5080,7 +5080,8 @@ make_client6_options(struct client_state
diff -up dhcp-4.3.1b1/client/dhc6.c.mRfpsB dhcp-4.3.1b1/client/dhc6.c
--- dhcp-4.3.1b1/client/dhc6.c.mRfpsB 2014-07-10 17:48:03.779424870 +0200
+++ dhcp-4.3.1b1/client/dhc6.c 2014-07-10 17:48:03.795424644 +0200
@@ -5088,7 +5088,8 @@ make_client6_options(struct client_state
*/
if ((oc = lookup_option(&dhcpv6_universe, *op,
D6O_CLIENTID)) == NULL) {
@ -11,10 +11,10 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.PPP dhcp-4.3.0a1/client/dhc6.c
MDL))
log_fatal("Failure assembling a DUID.");
diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.PPP 2013-12-19 16:16:45.932550131 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 16:27:38.334473958 +0100
@@ -926,8 +926,8 @@ main(int argc, char **argv) {
diff -up dhcp-4.3.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.mRfpsB 2014-07-10 17:39:25.853763858 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:49:49.882925843 +0200
@@ -948,8 +948,8 @@ main(int argc, char **argv) {
if (default_duid.buffer != NULL)
data_string_forget(&default_duid, MDL);
@ -25,7 +25,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c
}
}
@@ -3225,7 +3225,7 @@ write_options(struct client_state *clien
@@ -3267,7 +3267,7 @@ write_options(struct client_state *clien
* is not how it is intended. Upcoming rearchitecting the client should
* address this "one daemon model."
*/
@ -34,7 +34,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c
form_duid(struct data_string *duid, const char *file, int line)
{
struct interface_info *ip;
@@ -3237,6 +3237,15 @@ form_duid(struct data_string *duid, cons
@@ -3280,6 +3280,15 @@ form_duid(struct data_string *duid, cons
if (ip == NULL)
log_fatal("Impossible condition at %s:%d.", MDL);
@ -50,19 +50,19 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.PPP dhcp-4.3.0a1/client/dhclient.c
if ((ip->hw_address.hlen == 0) ||
(ip->hw_address.hlen > sizeof(ip->hw_address.hbuf)))
log_fatal("Impossible hardware address length at %s:%d.", MDL);
@@ -3272,6 +3281,8 @@ form_duid(struct data_string *duid, cons
memcpy(duid->buffer->data + 4, ip->hw_address.hbuf + 1,
ip->hw_address.hlen - 1);
@@ -3323,6 +3332,8 @@ form_duid(struct data_string *duid, cons
log_info("Created duid %s.", str);
dfree(str, MDL);
}
+
+ return ISC_R_SUCCESS;
}
/* Write the default DUID to the lease store. */
diff -up dhcp-4.3.0a1/common/bpf.c.PPP dhcp-4.3.0a1/common/bpf.c
--- dhcp-4.3.0a1/common/bpf.c.PPP 2013-12-19 16:16:45.868551024 +0100
+++ dhcp-4.3.0a1/common/bpf.c 2013-12-19 16:16:45.934550103 +0100
@@ -602,6 +602,22 @@ get_hw_addr(const char *name, struct har
diff -up dhcp-4.3.1b1/common/bpf.c.mRfpsB dhcp-4.3.1b1/common/bpf.c
--- dhcp-4.3.1b1/common/bpf.c.mRfpsB 2014-07-10 17:39:25.797764653 +0200
+++ dhcp-4.3.1b1/common/bpf.c 2014-07-10 17:48:03.797424616 +0200
@@ -600,6 +600,22 @@ get_hw_addr(const char *name, struct har
memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen);
break;
#endif /* IFT_FDDI */
@ -85,9 +85,9 @@ diff -up dhcp-4.3.0a1/common/bpf.c.PPP dhcp-4.3.0a1/common/bpf.c
default:
log_fatal("Unsupported device type %d for \"%s\"",
sa->sdl_type, name);
diff -up dhcp-4.3.0a1/common/lpf.c.PPP dhcp-4.3.0a1/common/lpf.c
--- dhcp-4.3.0a1/common/lpf.c.PPP 2013-12-19 16:16:45.848551303 +0100
+++ dhcp-4.3.0a1/common/lpf.c 2013-12-19 16:16:45.934550103 +0100
diff -up dhcp-4.3.1b1/common/lpf.c.mRfpsB dhcp-4.3.1b1/common/lpf.c
--- dhcp-4.3.1b1/common/lpf.c.mRfpsB 2014-07-10 17:39:25.744765404 +0200
+++ dhcp-4.3.1b1/common/lpf.c 2014-07-10 17:48:03.797424616 +0200
@@ -511,6 +511,22 @@ get_hw_addr(const char *name, struct har
hw->hbuf[0] = HTYPE_FDDI;
memcpy(&hw->hbuf[1], sa->sa_data, 6);
@ -111,22 +111,10 @@ diff -up dhcp-4.3.0a1/common/lpf.c.PPP dhcp-4.3.0a1/common/lpf.c
default:
log_fatal("Unsupported device type %ld for \"%s\"",
(long int)sa->sa_family, name);
diff -up dhcp-4.3.0a1/includes/dhcp.h.PPP dhcp-4.3.0a1/includes/dhcp.h
--- dhcp-4.3.0a1/includes/dhcp.h.PPP 2013-12-19 16:16:45.919550313 +0100
+++ dhcp-4.3.0a1/includes/dhcp.h 2013-12-19 16:16:45.936550076 +0100
@@ -85,6 +85,8 @@ struct dhcp_packet {
* is no standard for this so we
* just steal a type */
+#define HTYPE_RESERVED 0 /* RFC 5494 */
+
/* Magic cookie validating dhcp options field (and bootp vendor
extensions field). */
#define DHCP_OPTIONS_COOKIE "\143\202\123\143"
diff -up dhcp-4.3.0a1/includes/dhcpd.h.PPP dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.PPP 2013-12-19 16:16:45.935550090 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-19 16:28:33.468709007 +0100
@@ -2824,7 +2824,7 @@ void client_dns_remove(struct client_sta
diff -up dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB dhcp-4.3.1b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.mRfpsB 2014-07-10 17:48:03.761425124 +0200
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:48:03.798424601 +0200
@@ -2839,7 +2839,7 @@ void client_dns_remove(struct client_sta
void dhcpv4_client_assignments(void);
void dhcpv6_client_assignments(void);
@ -135,10 +123,22 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.PPP dhcp-4.3.0a1/includes/dhcpd.h
/* dhc6.c */
void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line);
diff -up dhcp-4.3.0a1/server/dhcpv6.c.PPP dhcp-4.3.0a1/server/dhcpv6.c
--- dhcp-4.3.0a1/server/dhcpv6.c.PPP 2013-12-19 16:16:45.901550564 +0100
+++ dhcp-4.3.0a1/server/dhcpv6.c 2013-12-19 16:16:45.937550062 +0100
@@ -307,6 +307,9 @@ generate_new_server_duid(void) {
diff -up dhcp-4.3.1b1/includes/dhcp.h.mRfpsB dhcp-4.3.1b1/includes/dhcp.h
--- dhcp-4.3.1b1/includes/dhcp.h.mRfpsB 2014-07-10 17:48:03.761425124 +0200
+++ dhcp-4.3.1b1/includes/dhcp.h 2014-07-10 17:48:03.798424601 +0200
@@ -81,6 +81,8 @@ struct dhcp_packet {
* is no standard for this so we
* just steal a type */
+#define HTYPE_RESERVED 0 /* RFC 5494 */
+
/* Magic cookie validating dhcp options field (and bootp vendor
extensions field). */
#define DHCP_OPTIONS_COOKIE "\143\202\123\143"
diff -up dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB dhcp-4.3.1b1/server/dhcpv6.c
--- dhcp-4.3.1b1/server/dhcpv6.c.mRfpsB 2014-07-10 17:47:31.464881409 +0200
+++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 17:48:03.800424573 +0200
@@ -330,6 +330,9 @@ generate_new_server_duid(void) {
if (p->hw_address.hlen > 0) {
break;
}

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
--- dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/server/dhcpv6.c 2013-12-19 15:54:46.934932371 +0100
@@ -353,6 +353,48 @@ generate_new_server_duid(void) {
diff -up dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast dhcp-4.3.1b1/server/dhcpv6.c
--- dhcp-4.3.1b1/server/dhcpv6.c.UseMulticast 2014-07-02 19:58:40.000000000 +0200
+++ dhcp-4.3.1b1/server/dhcpv6.c 2014-07-10 18:20:03.066256219 +0200
@@ -376,6 +376,48 @@ generate_new_server_duid(void) {
}
/*
@ -50,7 +50,20 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
* Get the client identifier from the packet.
*/
isc_result_t
@@ -1498,6 +1540,56 @@ lease_to_client(struct data_string *repl
@@ -706,6 +748,12 @@ static const int required_opts[] = {
D6O_PREFERENCE,
0
};
+static const int required_opts_NAA[] = {
+ D6O_CLIENTID,
+ D6O_SERVERID,
+ D6O_STATUS_CODE,
+ 0
+};
static const int required_opts_solicit[] = {
D6O_CLIENTID,
D6O_SERVERID,
@@ -1587,6 +1635,56 @@ lease_to_client(struct data_string *repl
reply.shared->group, NULL);
}
@ -107,18 +120,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
/*
* RFC3315 section 17.2.2 (Solicit):
*
@@ -1523,8 +1615,8 @@ lease_to_client(struct data_string *repl
* Sends a Renew/Rebind if the IA is not in the Reply message.
*/
#if defined (RFC3315_PRE_ERRATA_2010_08)
- if (no_resources_avail && (reply.ia_count != 0) &&
- (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT))
+ else if (no_resources_avail && (reply.ia_count != 0) &&
+ (reply.packet->dhcpv6_msg_type == DHCPV6_SOLICIT))
{
/* Set the NoAddrsAvail status code. */
if (!set_status_code(STATUS_NoAddrsAvail,
@@ -1571,6 +1663,7 @@ lease_to_client(struct data_string *repl
@@ -1619,6 +1717,7 @@ lease_to_client(struct data_string *repl
* Having stored the client's IA's, store any options that
* will fit in the remaining space.
*/
@ -126,7 +128,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
reply.cursor += store_options6((char *)reply.buf.data + reply.cursor,
sizeof(reply.buf) - reply.cursor,
reply.opt_state, reply.packet,
@@ -4688,7 +4781,6 @@ dhcpv6_solicit(struct data_string *reply
@@ -4748,7 +4847,6 @@ dhcpv6_solicit(struct data_string *reply
* Very similar to Solicit handling, except the server DUID is required.
*/
@ -134,7 +136,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
static void
dhcpv6_request(struct data_string *reply_ret, struct packet *packet) {
struct data_string client_id;
@@ -5018,7 +5110,6 @@ exit:
@@ -5078,7 +5176,6 @@ exit:
* except for the error code of when addresses don't match.
*/
@ -142,7 +144,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
static void
dhcpv6_renew(struct data_string *reply, struct packet *packet) {
struct data_string client_id;
@@ -5262,18 +5353,60 @@ iterate_over_ia_na(struct data_string *r
@@ -5322,18 +5419,60 @@ iterate_over_ia_na(struct data_string *r
goto exit;
}
@ -213,7 +215,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
/*
* Loop through the IA_NA reported by the client, and deal with
@@ -5411,6 +5544,7 @@ iterate_over_ia_na(struct data_string *r
@@ -5471,6 +5610,7 @@ iterate_over_ia_na(struct data_string *r
/*
* Return our reply to the caller.
*/
@ -221,7 +223,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
reply_ret->len = reply_ofs;
reply_ret->buffer = NULL;
if (!buffer_allocate(&reply_ret->buffer, reply_ofs, MDL)) {
@@ -5456,7 +5590,6 @@ exit:
@@ -5516,7 +5656,6 @@ exit:
* we still need to be aware of this possibility.
*/
@ -229,7 +231,7 @@ diff -up dhcp-4.3.0a1/server/dhcpv6.c.UseMulticast dhcp-4.3.0a1/server/dhcpv6.c
/* TODO: IA_TA */
static void
dhcpv6_decline(struct data_string *reply, struct packet *packet) {
@@ -5926,7 +6059,6 @@ exit:
@@ -5986,7 +6125,6 @@ exit:
* Release means a client is done with the leases.
*/

View File

@ -1,39 +1,7 @@
diff -up dhcp-4.3.0a1/client/Makefile.am.capability dhcp-4.3.0a1/client/Makefile.am
--- dhcp-4.3.0a1/client/Makefile.am.capability 2013-12-19 16:15:26.549657115 +0100
+++ dhcp-4.3.0a1/client/Makefile.am 2013-12-19 16:16:04.126133091 +0100
@@ -4,7 +4,7 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \
scripts/solaris scripts/openwrt
-dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/client/dhclient-script.8.capability dhcp-4.3.0a1/client/dhclient-script.8
--- dhcp-4.3.0a1/client/dhclient-script.8.capability 2013-12-19 16:15:26.520657520 +0100
+++ dhcp-4.3.0a1/client/dhclient-script.8 2013-12-19 16:15:26.549657115 +0100
@@ -246,6 +246,16 @@ repeatedly initialized to the values pro
the other. Assuming the information provided by both servers is
valid, this shouldn't cause any real problems, but it could be
confusing.
+.PP
+Normally, if dhclient was compiled with libcap-ng support,
+dhclient drops most capabilities immediately upon startup.
+While more secure, this greatly restricts the additional actions that
+hooks in dhclient-script can take. For example, any daemons that
+dhclient-script starts or restarts will inherit the restricted
+capabilities as well, which may interfere with their correct operation.
+Thus, the
+.BI \-nc
+option can be used to prevent dhclient from dropping capabilities.
.SH SEE ALSO
dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and
dhclient.leases(5).
diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient.8
--- dhcp-4.3.0a1/client/dhclient.8.capability 2013-12-19 16:15:26.482658050 +0100
+++ dhcp-4.3.0a1/client/dhclient.8 2013-12-19 16:15:26.550657101 +0100
@@ -124,6 +124,9 @@ dhclient - Dynamic Host Configuration Pr
diff -up dhcp-4.3.1b1/client/dhclient.8.zzftXp dhcp-4.3.1b1/client/dhclient.8
--- dhcp-4.3.1b1/client/dhclient.8.zzftXp 2014-07-10 17:38:26.938599402 +0200
+++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:39:25.852763873 +0200
@@ -128,6 +128,9 @@ dhclient - Dynamic Host Configuration Pr
.B -w
]
[
@ -43,7 +11,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient.
.B -B
]
[
@@ -300,6 +303,32 @@ has been added or removed, so that the c
@@ -304,6 +307,32 @@ has been added or removed, so that the c
address on that interface.
.TP
@ -76,9 +44,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.capability dhcp-4.3.0a1/client/dhclient.
.BI \-B
Set the BOOTP broadcast flag in request packets so servers will always
broadcast replies.
diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.capability 2013-12-19 16:15:26.532657352 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 16:15:26.551657087 +0100
diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.zzftXp 2014-07-10 17:39:25.797764653 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:39:25.853763858 +0200
@@ -39,6 +39,10 @@
#include <limits.h>
#include <dns/result.h>
@ -90,7 +58,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.
/*
* Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define
* that when building ISC code.
@@ -141,6 +145,9 @@ main(int argc, char **argv) {
@@ -143,6 +147,9 @@ main(int argc, char **argv) {
int timeout_arg = 0;
char *arg_conf = NULL;
int arg_conf_len = 0;
@ -100,7 +68,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.
/* Initialize client globals. */
memset(&default_duid, 0, sizeof(default_duid));
@@ -413,6 +420,10 @@ main(int argc, char **argv) {
@@ -425,6 +432,10 @@ main(int argc, char **argv) {
}
dhclient_request_options = argv[i];
@ -111,7 +79,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.
} else if (argv[i][0] == '-') {
usage();
} else if (interfaces_requested < 0) {
@@ -461,6 +472,19 @@ main(int argc, char **argv) {
@@ -473,6 +484,19 @@ main(int argc, char **argv) {
path_dhclient_script = s;
}
@ -131,10 +99,42 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.capability dhcp-4.3.0a1/client/dhclient.
/* Set up the initial dhcp option universe. */
initialize_common_option_spaces();
diff -up dhcp-4.3.0a1/configure.ac.capability dhcp-4.3.0a1/configure.ac
--- dhcp-4.3.0a1/configure.ac.capability 2013-12-19 16:15:26.475658147 +0100
+++ dhcp-4.3.0a1/configure.ac 2013-12-19 16:15:26.552657074 +0100
@@ -489,6 +489,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
diff -up dhcp-4.3.1b1/client/dhclient-script.8.zzftXp dhcp-4.3.1b1/client/dhclient-script.8
--- dhcp-4.3.1b1/client/dhclient-script.8.zzftXp 2014-07-10 17:39:25.761765163 +0200
+++ dhcp-4.3.1b1/client/dhclient-script.8 2014-07-10 17:39:25.851763887 +0200
@@ -243,6 +243,16 @@ repeatedly initialized to the values pro
the other. Assuming the information provided by both servers is
valid, this shouldn't cause any real problems, but it could be
confusing.
+.PP
+Normally, if dhclient was compiled with libcap-ng support,
+dhclient drops most capabilities immediately upon startup.
+While more secure, this greatly restricts the additional actions that
+hooks in dhclient-script can take. For example, any daemons that
+dhclient-script starts or restarts will inherit the restricted
+capabilities as well, which may interfere with their correct operation.
+Thus, the
+.BI \-nc
+option can be used to prevent dhclient from dropping capabilities.
.SH SEE ALSO
dhclient(8), dhcpd(8), dhcrelay(8), dhclient.conf(5) and
dhclient.leases(5).
diff -up dhcp-4.3.1b1/client/Makefile.am.zzftXp dhcp-4.3.1b1/client/Makefile.am
--- dhcp-4.3.1b1/client/Makefile.am.zzftXp 2014-07-10 17:38:10.778828583 +0200
+++ dhcp-4.3.1b1/client/Makefile.am 2014-07-10 17:39:25.851763887 +0200
@@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \
scripts/solaris scripts/openwrt
-dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
+dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.1b1/configure.ac.zzftXp dhcp-4.3.1b1/configure.ac
--- dhcp-4.3.1b1/configure.ac.zzftXp 2014-07-10 17:38:10.779828569 +0200
+++ dhcp-4.3.1b1/configure.ac 2014-07-10 17:39:25.854763844 +0200
@@ -499,6 +499,41 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
# Look for optional headers.
AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
@ -176,22 +176,10 @@ diff -up dhcp-4.3.0a1/configure.ac.capability dhcp-4.3.0a1/configure.ac
# Solaris needs some libraries for functions
AC_SEARCH_LIBS(socket, [socket])
AC_SEARCH_LIBS(inet_ntoa, [nsl])
diff -up dhcp-4.3.0a1/relay/Makefile.am.capability dhcp-4.3.0a1/relay/Makefile.am
--- dhcp-4.3.0a1/relay/Makefile.am.capability 2013-12-19 16:15:26.552657074 +0100
+++ dhcp-4.3.0a1/relay/Makefile.am 2013-12-19 16:16:26.159825841 +0100
@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay
dhcrelay_SOURCES = dhcrelay.c
-dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
+dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
--- dhcp-4.3.0a1/relay/dhcrelay.c.capability 2013-12-19 16:15:26.535657311 +0100
+++ dhcp-4.3.0a1/relay/dhcrelay.c 2013-12-19 16:15:26.553657060 +0100
@@ -37,6 +37,11 @@
diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c
--- dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp 2014-07-10 17:39:25.799764624 +0200
+++ dhcp-4.3.1b1/relay/dhcrelay.c 2014-07-10 17:40:19.191007421 +0200
@@ -31,6 +31,11 @@
#include <signal.h>
#include <sys/time.h>
@ -203,7 +191,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
TIME default_lease_time = 43200; /* 12 hours... */
TIME max_lease_time = 86400; /* 24 hours... */
struct tree_cache *global_options[256];
@@ -382,6 +387,10 @@ main(int argc, char **argv) {
@@ -376,6 +381,10 @@ main(int argc, char **argv) {
usage();
dhcrelay_sub_id = argv[i];
#endif
@ -214,7 +202,7 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
} else if (!strcmp(argv[i], "-pf")) {
if (++i == argc)
usage();
@@ -452,6 +461,17 @@ main(int argc, char **argv) {
@@ -446,6 +455,17 @@ main(int argc, char **argv) {
#endif
}
@ -232,9 +220,9 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
if (!quiet) {
log_info("%s %s", message, PACKAGE_VERSION);
log_info(copyright);
@@ -601,6 +621,15 @@ main(int argc, char **argv) {
signal(SIGINT, dhcp_signal_handler); /* control-c */
@@ -598,6 +618,15 @@ main(int argc, char **argv) {
signal(SIGTERM, dhcp_signal_handler); /* kill */
#endif
+#ifdef HAVE_LIBCAP_NG
+ /* Drop all capabilities */
@ -248,3 +236,15 @@ diff -up dhcp-4.3.0a1/relay/dhcrelay.c.capability dhcp-4.3.0a1/relay/dhcrelay.c
/* Start dispatching packets and timeouts... */
dispatch();
diff -up dhcp-4.3.1b1/relay/Makefile.am.zzftXp dhcp-4.3.1b1/relay/Makefile.am
--- dhcp-4.3.1b1/relay/Makefile.am.zzftXp 2014-07-10 17:38:10.780828554 +0200
+++ dhcp-4.3.1b1/relay/Makefile.am 2014-07-10 17:39:25.854763844 +0200
@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay
dhcrelay_SOURCES = dhcrelay.c
-dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la \
+dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.la $(CAPNG_LDADD) \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS)

View File

@ -1,12 +0,0 @@
diff -up dhcp-4.3.0a1/common/conflex.c.forward-updates dhcp-4.3.0a1/common/conflex.c
--- dhcp-4.3.0a1/common/conflex.c.forward-updates 2013-12-20 13:52:11.315466686 +0100
+++ dhcp-4.3.0a1/common/conflex.c 2013-12-20 13:52:11.492464218 +0100
@@ -896,7 +896,7 @@ intern(char *atom, enum dhcp_token dfv)
if (!strcasecmp(atom + 7, "list"))
return DOMAIN_LIST;
}
- if (!strcasecmp (atom + 1, "o-forward-update"))
+ if (!strcasecmp (atom + 1, "o-forward-updates"))
return DO_FORWARD_UPDATE;
if (!strcasecmp (atom + 1, "ebug"))
return TOKEN_DEBUG;

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.backoff 2013-12-19 15:11:11.310534716 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:11:11.315534646 +0100
@@ -1250,6 +1250,8 @@ void state_init (cpp)
diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.JwFUZj 2014-07-10 17:38:50.511265091 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:39:16.164901267 +0200
@@ -1281,6 +1281,8 @@ void state_init (cpp)
void *cpp;
{
struct client_state *client = cpp;
@ -10,7 +10,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c
ASSERT_STATE(state, S_INIT);
@@ -1262,9 +1264,18 @@ void state_init (cpp)
@@ -1293,9 +1295,18 @@ void state_init (cpp)
client -> first_sending = cur_time;
client -> interval = client -> config -> initial_interval;
@ -32,15 +32,15 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c
}
/*
@@ -1557,6 +1568,7 @@ void bind_lease (client)
send_decline (client);
destroy_client_lease (client -> new);
client -> new = (struct client_lease *)0;
+ client -> state = S_DECLINED;
state_init (client);
return;
}
@@ -4001,6 +4013,7 @@ void client_location_changed ()
@@ -1592,6 +1603,7 @@ void bind_lease (client)
"try (declined). Exiting.");
exit(2);
} else {
+ client -> state = S_DECLINED;
state_init(client);
return;
}
@@ -4059,6 +4071,7 @@ void client_location_changed ()
case S_INIT:
case S_REBINDING:
case S_STOPPED:
@ -48,10 +48,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.backoff dhcp-4.3.0a1/client/dhclient.c
break;
}
client -> state = S_INIT;
diff -up dhcp-4.3.0a1/includes/dhcpd.h.backoff dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.backoff 2013-12-19 15:11:11.305534786 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-19 15:11:11.316534632 +0100
@@ -1088,7 +1088,8 @@ enum dhcp_state {
diff -up dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj dhcp-4.3.1b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj 2014-07-10 17:38:26.941599360 +0200
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:38:50.526264878 +0200
@@ -1087,7 +1087,8 @@ enum dhcp_state {
S_BOUND = 5,
S_RENEWING = 6,
S_REBINDING = 7,

View File

@ -1,27 +0,0 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.decline-onetry dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.decline-onetry 2013-12-20 13:37:26.382796437 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-20 13:37:26.401796172 +0100
@@ -1708,11 +1708,18 @@ void bind_lease (client)
if (script_go (client)) {
make_decline (client, client -> new);
send_decline (client);
- destroy_client_lease (client -> new);
- client -> new = (struct client_lease *)0;
- client -> state = S_DECLINED;
- state_init (client);
- return;
+ if (onetry) {
+ if (!quiet)
+ log_info ("Unable to obtain a lease on first try.%s",
+ " Exiting.");
+ exit (2);
+ } else {
+ destroy_client_lease (client -> new);
+ client -> new = (struct client_lease *)0;
+ client -> state = S_DECLINED;
+ state_init (client);
+ return;
+ }
}
/* Write out the new lease if it has been long enough. */

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c
--- dhcp-4.3.0a1/client/clparse.c.options 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 14:50:15.011193031 +0100
@@ -154,6 +154,7 @@ isc_result_t read_client_conf ()
diff -up dhcp-4.3.1b1/client/clparse.c.fLPqYB dhcp-4.3.1b1/client/clparse.c
--- dhcp-4.3.1b1/client/clparse.c.fLPqYB 2014-07-02 19:58:38.000000000 +0200
+++ dhcp-4.3.1b1/client/clparse.c 2014-07-10 17:38:26.938599402 +0200
@@ -148,6 +148,7 @@ isc_result_t read_client_conf ()
/* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache)
*/
top_level_config.requested_lease = 7200;
@ -9,7 +9,7 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c
group_allocate (&top_level_config.on_receipt, MDL);
if (!top_level_config.on_receipt)
@@ -320,7 +321,8 @@ void read_client_leases ()
@@ -353,7 +354,8 @@ void read_client_leases ()
interface-declaration |
LEASE client-lease-statement |
ALIAS client-lease-statement |
@ -19,7 +19,7 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c
void parse_client_statement (cfile, ip, config)
struct parse *cfile;
@@ -738,6 +740,12 @@ void parse_client_statement (cfile, ip,
@@ -771,6 +773,12 @@ void parse_client_statement (cfile, ip,
parse_reject_statement (cfile, config);
return;
@ -32,10 +32,10 @@ diff -up dhcp-4.3.0a1/client/clparse.c.options dhcp-4.3.0a1/client/clparse.c
default:
lose = 0;
stmt = (struct executable_statement *)0;
diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8
--- dhcp-4.3.0a1/client/dhclient.8.options 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/client/dhclient.8 2013-12-19 14:50:15.010193045 +0100
@@ -124,6 +124,33 @@ dhclient - Dynamic Host Configuration Pr
diff -up dhcp-4.3.1b1/client/dhclient.8.fLPqYB dhcp-4.3.1b1/client/dhclient.8
--- dhcp-4.3.1b1/client/dhclient.8.fLPqYB 2014-07-02 19:58:38.000000000 +0200
+++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:38:26.938599402 +0200
@@ -128,6 +128,33 @@ dhclient - Dynamic Host Configuration Pr
.B -w
]
[
@ -69,7 +69,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8
.B -v
]
[
@@ -271,6 +298,69 @@ not to exit when it doesn't find any suc
@@ -275,6 +302,69 @@ not to exit when it doesn't find any suc
program can then be used to notify the client when a network interface
has been added or removed, so that the client can attempt to configure an IP
address on that interface.
@ -139,9 +139,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.8.options dhcp-4.3.0a1/client/dhclient.8
.TP
.BI \-n
Do not configure any interfaces. This is most likely to be useful in
diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.options 2013-12-13 22:24:38.000000000 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 14:50:15.012193017 +0100
diff -up dhcp-4.3.1b1/client/dhclient.c.fLPqYB dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.fLPqYB 2014-07-02 19:58:38.000000000 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:38:44.520350055 +0200
@@ -39,6 +39,12 @@
#include <limits.h>
#include <dns/result.h>
@ -155,7 +155,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
TIME default_lease_time = 43200; /* 12 hours... */
TIME max_lease_time = 86400; /* 24 hours... */
@@ -87,6 +93,9 @@ int wanted_ia_na = -1; /* the absolute
@@ -88,6 +94,9 @@ int wanted_ia_na = -1; /* the absolute
int wanted_ia_ta = 0;
int wanted_ia_pd = 0;
char *mockup_relay = NULL;
@ -165,7 +165,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
void run_stateless(int exit_mode);
@@ -123,6 +132,15 @@ main(int argc, char **argv) {
@@ -125,6 +134,15 @@ main(int argc, char **argv) {
int local_family_set = 0;
#endif /* DHCPv6 */
char *s;
@ -181,9 +181,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
/* Initialize client globals. */
memset(&default_duid, 0, sizeof(default_duid));
@@ -313,6 +331,88 @@ main(int argc, char **argv) {
} else if (!strcmp(argv[i], "--version")) {
log_info("isc-dhclient-%s", PACKAGE_VERSION);
@@ -325,6 +343,88 @@ main(int argc, char **argv) {
strlen(PACKAGE_VERSION)));
IGNORE_RET(write(STDERR_FILENO, "\n", 1));
exit(0);
+ } else if (!strcmp(argv[i], "-C")) {
+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
@ -270,7 +270,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
} else if (argv[i][0] == '-') {
usage();
} else if (interfaces_requested < 0) {
@@ -490,6 +590,156 @@ main(int argc, char **argv) {
@@ -507,6 +607,156 @@ main(int argc, char **argv) {
/* Parse the dhclient.conf file. */
read_client_conf();
@ -427,9 +427,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
/* Parse the lease database. */
read_client_leases();
@@ -730,6 +980,10 @@ static void usage()
" [-s server-addr] [-cf config-file] "
"[-lf lease-file]\n"
@@ -756,6 +1006,10 @@ static void usage()
" [-s server-addr] [-cf config-file]\n"
" [-df duid-file] [-lf lease-file]\n"
" [-pf pid-file] [--no-pid] [-e VAR=val]\n"
+ " [-C <dhcp-client-identifier>] [-B]\n"
+ " [-H <host-name> | -F <fqdn.fqdn>] [-timeout <timeout>]\n"
@ -438,7 +438,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
" [-sf script-file] [interface]");
}
@@ -2489,7 +2743,8 @@ void make_discover (client, lease)
@@ -2531,7 +2785,8 @@ void make_discover (client, lease)
client -> packet.xid = random ();
client -> packet.secs = 0; /* filled in by send_discover. */
@ -448,7 +448,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
client -> packet.flags = 0;
else
client -> packet.flags = htons (BOOTP_BROADCAST);
@@ -2573,7 +2828,9 @@ void make_request (client, lease)
@@ -2615,7 +2870,9 @@ void make_request (client, lease)
} else {
memset (&client -> packet.ciaddr, 0,
sizeof client -> packet.ciaddr);
@ -459,7 +459,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
client -> packet.flags = 0;
else
client -> packet.flags = htons (BOOTP_BROADCAST);
@@ -2635,7 +2892,8 @@ void make_decline (client, lease)
@@ -2677,7 +2934,8 @@ void make_decline (client, lease)
client -> packet.hops = 0;
client -> packet.xid = client -> xid;
client -> packet.secs = 0; /* Filled in by send_request. */
@ -469,10 +469,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.options dhcp-4.3.0a1/client/dhclient.c
client -> packet.flags = 0;
else
client -> packet.flags = htons (BOOTP_BROADCAST);
diff -up dhcp-4.3.0a1/common/conflex.c.options dhcp-4.3.0a1/common/conflex.c
--- dhcp-4.3.0a1/common/conflex.c.options 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/common/conflex.c 2013-12-19 14:50:15.013193003 +0100
@@ -817,6 +817,8 @@ intern(char *atom, enum dhcp_token dfv)
diff -up dhcp-4.3.1b1/common/conflex.c.fLPqYB dhcp-4.3.1b1/common/conflex.c
--- dhcp-4.3.1b1/common/conflex.c.fLPqYB 2014-07-02 19:58:38.000000000 +0200
+++ dhcp-4.3.1b1/common/conflex.c 2014-07-10 17:38:26.940599374 +0200
@@ -811,6 +811,8 @@ intern(char *atom, enum dhcp_token dfv)
return BALANCE;
if (!strcasecmp (atom + 1, "ound"))
return BOUND;
@ -481,10 +481,10 @@ diff -up dhcp-4.3.0a1/common/conflex.c.options dhcp-4.3.0a1/common/conflex.c
break;
case 'c':
if (!strcasecmp(atom + 1, "ase"))
diff -up dhcp-4.3.0a1/includes/dhcpd.h.options dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.options 2013-12-13 21:49:44.000000000 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-19 14:50:15.014192989 +0100
@@ -1153,6 +1153,9 @@ struct client_config {
diff -up dhcp-4.3.1b1/includes/dhcpd.h.fLPqYB dhcp-4.3.1b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.fLPqYB 2014-07-02 19:58:39.000000000 +0200
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:38:26.941599360 +0200
@@ -1152,6 +1152,9 @@ struct client_config {
int do_forward_update; /* If nonzero, and if we have the
information we need, update the
A record for the address we get. */
@ -494,10 +494,10 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.options dhcp-4.3.0a1/includes/dhcpd.h
};
/* Per-interface state used in the dhcp client... */
diff -up dhcp-4.3.0a1/includes/dhctoken.h.options dhcp-4.3.0a1/includes/dhctoken.h
--- dhcp-4.3.0a1/includes/dhctoken.h.options 2013-12-19 14:50:15.014192989 +0100
+++ dhcp-4.3.0a1/includes/dhctoken.h 2013-12-19 14:51:57.472758577 +0100
@@ -373,7 +373,8 @@ enum dhcp_token {
diff -up dhcp-4.3.1b1/includes/dhctoken.h.fLPqYB dhcp-4.3.1b1/includes/dhctoken.h
--- dhcp-4.3.1b1/includes/dhctoken.h.fLPqYB 2014-07-02 19:58:39.000000000 +0200
+++ dhcp-4.3.1b1/includes/dhctoken.h 2014-07-10 17:38:26.942599346 +0200
@@ -367,7 +367,8 @@ enum dhcp_token {
TOKEN_INFINIBAND = 668,
POOL6 = 669,
V6RELAY = 670,

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0/client/dhclient.8.duidv4 dhcp-4.3.0/client/dhclient.8
--- dhcp-4.3.0/client/dhclient.8.duidv4 2014-02-18 15:52:44.564123664 +0100
+++ dhcp-4.3.0/client/dhclient.8 2014-02-18 15:52:44.629122766 +0100
@@ -454,6 +454,9 @@ used to construct a RFC4361 style client
diff -up dhcp-4.3.1b1/client/dhclient.8.KrJcIv dhcp-4.3.1b1/client/dhclient.8
--- dhcp-4.3.1b1/client/dhclient.8.KrJcIv 2014-07-10 17:39:25.852763873 +0200
+++ dhcp-4.3.1b1/client/dhclient.8 2014-07-10 17:54:26.841012988 +0200
@@ -458,6 +458,9 @@ used to construct a RFC4361 style client
in the client's messages. This client id can be overridden by
setting a client id in the configuration file. Overridding the
client id in this fashion is discouraged.
@ -11,10 +11,10 @@ diff -up dhcp-4.3.0/client/dhclient.8.duidv4 dhcp-4.3.0/client/dhclient.8
.TP
.BI \-I
Use the standard DDNS scheme from RFCs 4701 & 4702.
diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
--- dhcp-4.3.0/client/dhclient.c.duidv4 2014-02-18 15:52:44.626122807 +0100
+++ dhcp-4.3.0/client/dhclient.c 2014-02-18 15:52:44.630122752 +0100
@@ -72,7 +72,7 @@ struct sockaddr_in sockaddr_broadcast;
diff -up dhcp-4.3.1b1/client/dhclient.c.KrJcIv dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.KrJcIv 2014-07-10 17:54:26.829013157 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:55:50.155835918 +0200
@@ -73,7 +73,7 @@ struct sockaddr_in sockaddr_broadcast;
struct in_addr giaddr;
struct data_string default_duid;
int duid_type = 0;
@ -23,7 +23,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
int std_dhcid = 0;
/* ASSERT_STATE() does nothing now; it used to be
@@ -1270,7 +1270,7 @@ static void setup_ib_interface(struct in
@@ -1301,7 +1301,7 @@ static void setup_ib_interface(struct in
}
/* No client ID specified */
@ -32,15 +32,15 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
}
/* Individual States:
@@ -3299,6 +3299,7 @@ form_duid(struct data_string *duid, cons
{
@@ -3342,6 +3342,7 @@ form_duid(struct data_string *duid, cons
struct interface_info *ip;
int len;
char *str;
+ unsigned hlen;
/* For now, just use the first interface on the list. */
ip = interfaces;
@@ -3322,6 +3323,11 @@ form_duid(struct data_string *duid, cons
@@ -3365,6 +3366,11 @@ form_duid(struct data_string *duid, cons
if (duid_type == 0)
duid_type = stateless ? DUID_LL : DUID_LLT;
@ -52,7 +52,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
/*
* 2 bytes for the 'duid type' field.
* 2 bytes for the 'htype' field.
@@ -3329,7 +3335,7 @@ form_duid(struct data_string *duid, cons
@@ -3372,7 +3378,7 @@ form_duid(struct data_string *duid, cons
* enough bytes for the hardware address (note that hw_address has
* the 'htype' on byte zero).
*/
@ -61,7 +61,7 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
if (duid_type == DUID_LLT)
len += 4;
if (!buffer_allocate(&duid->buffer, len, MDL))
@@ -3343,12 +3349,12 @@ form_duid(struct data_string *duid, cons
@@ -3386,12 +3392,12 @@ form_duid(struct data_string *duid, cons
putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]);
putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH);
memcpy(duid->buffer->data + 8, ip->hw_address.hbuf + 1,
@ -74,5 +74,5 @@ diff -up dhcp-4.3.0/client/dhclient.c.duidv4 dhcp-4.3.0/client/dhclient.c
- ip->hw_address.hlen - 1);
+ hlen - 1);
}
return ISC_R_SUCCESS;
str = quotify_buf(duid->data, duid->len, MDL);

View File

@ -1,13 +0,0 @@
diff -up dhcp-4.3.0a1/common/parse.c.dupl-key dhcp-4.3.0a1/common/parse.c
--- dhcp-4.3.0a1/common/parse.c.dupl-key 2013-12-20 13:53:01.121772037 +0100
+++ dhcp-4.3.0a1/common/parse.c 2013-12-20 13:53:01.211770781 +0100
@@ -2930,6 +2930,9 @@ int parse_zone (struct dns_zone *zone, s
}
val = key_name;
}
+ if (zone->key)
+ log_fatal("Multiple key definition for zone %s.",
+ zone->name);
if (omapi_auth_key_lookup_name (&zone -> key, val) !=
ISC_R_SUCCESS)
parse_warn (cfile, "unknown key %s", val);

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.c
--- dhcp-4.3.0a1/common/discover.c.getifaddrs 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/common/discover.c 2013-12-20 13:38:59.995493253 +0100
@@ -376,391 +376,13 @@ end_iface_scan(struct iface_conf_list *i
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
@@ -373,391 +373,13 @@ end_iface_scan(struct iface_conf_list *i
ifaces->sock = -1;
}
@ -43,7 +43,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.
- */
-int
-begin_iface_scan(struct iface_conf_list *ifaces) {
- char buf[256];
- char buf[IF_LINE_LENGTH];
- int len;
- int i;
-
@ -116,7 +116,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.
- */
-static int
-next_iface4(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
- char buf[256];
- char buf[IF_LINE_LENGTH];
- int len;
- char *p;
- char *name;
@ -240,7 +240,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.
- */
-static int
-next_iface6(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
- char buf[256];
- char buf[IF_LINE_LENGTH];
- int len;
- char *p;
- char *name;
@ -394,7 +394,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.
* function.
*
* The getifaddrs() man page describes the use.
@@ -808,6 +430,8 @@ begin_iface_scan(struct iface_conf_list
@@ -805,6 +427,8 @@ begin_iface_scan(struct iface_conf_list
*/
int
next_iface(struct iface_info *info, int *err, struct iface_conf_list *ifaces) {
@ -403,7 +403,7 @@ diff -up dhcp-4.3.0a1/common/discover.c.getifaddrs dhcp-4.3.0a1/common/discover.
if (ifaces->next == NULL) {
*err = 0;
return 0;
@@ -819,8 +443,20 @@ next_iface(struct iface_info *info, int
@@ -816,8 +440,20 @@ next_iface(struct iface_info *info, int
return 0;
}
strcpy(info->name, ifaces->next->ifa_name);

View File

@ -1,12 +0,0 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.logpid dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.logpid 2013-12-19 15:51:50.588388633 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 15:51:50.593388563 +0100
@@ -165,7 +165,7 @@ main(int argc, char **argv) {
else if (fd != -1)
close(fd);
- openlog("dhclient", LOG_NDELAY, LOG_DAEMON);
+ openlog("dhclient", LOG_NDELAY | LOG_PID, LOG_DAEMON);
#if !(defined(DEBUG) || defined(__CYGWIN32__))
setlogmask(LOG_UPTO(LOG_INFO));

View File

@ -1,16 +1,16 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.lpf-ib 2013-12-20 14:03:30.337992402 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-20 14:03:30.345992290 +0100
@@ -113,6 +113,8 @@ static int check_domain_name_list(const
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
@@ -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);
+static void setup_ib_interface(struct interface_info *ip);
+
#ifndef UNIT_TEST
int
main(int argc, char **argv) {
int fd;
@@ -915,6 +917,13 @@ main(int argc, char **argv) {
@@ -937,6 +939,13 @@ main(int argc, char **argv) {
}
srandom(seed + cur_time + (unsigned)getpid());
@ -24,7 +24,7 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c
/*
* Establish a default DUID. We always do so for v6 and
@@ -1199,6 +1208,29 @@ int find_subnet (struct subnet **sp,
@@ -1230,6 +1239,29 @@ int find_subnet (struct subnet **sp,
return 0;
}
@ -54,9 +54,9 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.lpf-ib dhcp-4.3.0a1/client/dhclient.c
/* Individual States:
*
* Each routine is called from the dhclient_state_machine() in one of
diff -up dhcp-4.3.0a1/common/bpf.c.lpf-ib dhcp-4.3.0a1/common/bpf.c
--- dhcp-4.3.0a1/common/bpf.c.lpf-ib 2013-12-20 14:03:30.330992500 +0100
+++ dhcp-4.3.0a1/common/bpf.c 2013-12-20 14:03:30.345992290 +0100
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
@@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
BPF_STMT(BPF_RET+BPF_K, 0),
};
@ -102,9 +102,9 @@ diff -up dhcp-4.3.0a1/common/bpf.c.lpf-ib dhcp-4.3.0a1/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.0a1/common/lpf.c.lpf-ib dhcp-4.3.0a1/common/lpf.c
--- dhcp-4.3.0a1/common/lpf.c.lpf-ib 2013-12-20 14:03:30.331992486 +0100
+++ dhcp-4.3.0a1/common/lpf.c 2013-12-20 14:03:30.346992276 +0100
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)
#include <sys/ioctl.h>
@ -524,10 +524,10 @@ diff -up dhcp-4.3.0a1/common/lpf.c.lpf-ib dhcp-4.3.0a1/common/lpf.c
+ freeifaddrs(ifaddrs);
}
#endif
diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
--- dhcp-4.3.0a1/common/socket.c.lpf-ib 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/common/socket.c 2013-12-20 14:04:54.904811982 +0100
@@ -328,7 +328,7 @@ void if_register_send (info)
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)
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 +536,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
#if defined (USE_SOCKET_FALLBACK)
/* Fallback only registers for send, but may need to receive as
well. */
@@ -391,7 +391,7 @@ void if_register_receive (info)
@@ -385,7 +385,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 +545,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
if (!quiet_interface_discovery)
log_info ("Listening on Socket/%s%s%s",
@@ -505,7 +505,7 @@ if_register6(struct interface_info *info
@@ -499,7 +499,7 @@ if_register6(struct interface_info *info
if (req_multi)
if_register_multicast(info);
@ -554,7 +554,7 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
if (!quiet_interface_discovery) {
if (info->shared_network != NULL) {
@@ -561,7 +561,7 @@ if_register_linklocal6(struct interface_
@@ -555,7 +555,7 @@ if_register_linklocal6(struct interface_
info->rfdesc = sock;
info->wfdesc = sock;
@ -563,10 +563,10 @@ diff -up dhcp-4.3.0a1/common/socket.c.lpf-ib dhcp-4.3.0a1/common/socket.c
if (!quiet_interface_discovery) {
if (info->shared_network != NULL) {
diff -up dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib 2013-12-20 14:03:30.338992388 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-20 14:03:30.348992248 +0100
@@ -1249,6 +1249,7 @@ struct interface_info {
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 {
struct shared_network *shared_network;
/* Networks connected to this interface. */
struct hardware hw_address; /* Its physical address. */
@ -574,7 +574,7 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.lpf-ib dhcp-4.3.0a1/includes/dhcpd.h
struct in_addr *addresses; /* Addresses associated with this
* interface.
*/
@@ -2425,7 +2426,7 @@ void print_dns_status (int, struct dhcp_
@@ -2439,7 +2440,7 @@ void print_dns_status (int, struct dhcp_
#endif
const char *print_time(TIME);

View File

@ -1,53 +0,0 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.next-server dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.next-server 2013-12-20 13:57:06.458349572 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-20 13:57:06.500348986 +0100
@@ -1486,7 +1486,7 @@ void state_selecting (cpp)
client -> state = S_REQUESTING;
/* Bind to the address we received. */
- bind_lease (client);
+ bind_lease (client, NULL);
return;
}
@@ -1676,11 +1676,12 @@ void dhcpack (packet)
if (client -> new -> rebind < cur_time)
client -> new -> rebind = TIME_MAX;
- bind_lease (client);
+ bind_lease (client, &packet -> raw -> siaddr);
}
-void bind_lease (client)
+void bind_lease (client, siaddr)
struct client_state *client;
+ struct in_addr *siaddr;
{
struct timeval tv;
@@ -1702,6 +1703,13 @@ void bind_lease (client)
if (client -> alias)
script_write_params (client, "alias_", client -> alias);
+ if (siaddr) {
+ char buf[INET_ADDRSTRLEN];
+
+ if (inet_ntop (AF_INET, (void *) siaddr, buf, sizeof (buf)))
+ client_envadd (client, "new_", "next_server", "%s", buf);
+ }
+
/* If the BOUND/RENEW code detects another machine using the
offered address, it exits nonzero. We need to send a
DHCPDECLINE and toss the lease. */
diff -up dhcp-4.3.0a1/includes/dhcpd.h.next-server dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.next-server 2013-12-20 13:57:06.434349907 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-20 13:57:06.502348958 +0100
@@ -2771,7 +2771,7 @@ void state_bound (void *);
void state_stop (void *);
void state_panic (void *);
-void bind_lease (struct client_state *);
+void bind_lease (struct client_state *, struct in_addr *);
void make_client_options (struct client_state *,
struct client_lease *, u_int8_t *,

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/dhclient.c.paranoia dhcp-4.3.0a1/client/dhclient.c
--- dhcp-4.3.0a1/client/dhclient.c.paranoia 2013-12-19 16:30:21.401211512 +0100
+++ dhcp-4.3.0a1/client/dhclient.c 2013-12-19 16:30:21.409211401 +0100
@@ -1712,11 +1712,6 @@ int write_host (host)
diff -up dhcp-4.3.1b1/client/dhclient.c.dlTsyN dhcp-4.3.1b1/client/dhclient.c
--- dhcp-4.3.1b1/client/dhclient.c.dlTsyN 2014-07-10 17:49:49.882925843 +0200
+++ dhcp-4.3.1b1/client/dhclient.c 2014-07-10 17:50:26.922402550 +0200
@@ -1748,11 +1748,6 @@ int write_host (host)
return 0;
}
@ -13,10 +13,10 @@ diff -up dhcp-4.3.0a1/client/dhclient.c.paranoia dhcp-4.3.0a1/client/dhclient.c
void bootp (packet)
struct packet *packet;
{
diff -up dhcp-4.3.0a1/includes/dhcpd.h.paranoia dhcp-4.3.0a1/includes/dhcpd.h
--- dhcp-4.3.0a1/includes/dhcpd.h.paranoia 2013-12-19 16:30:21.403211484 +0100
+++ dhcp-4.3.0a1/includes/dhcpd.h 2013-12-19 16:30:21.410211387 +0100
@@ -2851,7 +2851,11 @@ void commit_leases_timeout (void *);
diff -up dhcp-4.3.1b1/includes/dhcpd.h.dlTsyN dhcp-4.3.1b1/includes/dhcpd.h
--- dhcp-4.3.1b1/includes/dhcpd.h.dlTsyN 2014-07-10 17:48:03.798424601 +0200
+++ dhcp-4.3.1b1/includes/dhcpd.h 2014-07-10 17:50:26.923402536 +0200
@@ -2866,7 +2866,11 @@ void commit_leases_timeout (void *);
void commit_leases_readerdry(void *);
int commit_leases (void);
int commit_leases_timed (void);
@ -28,10 +28,10 @@ diff -up dhcp-4.3.0a1/includes/dhcpd.h.paranoia dhcp-4.3.0a1/includes/dhcpd.h
int new_lease_file (void);
int group_writer (struct group_object *);
int write_ia(const struct ia_xx *);
diff -up dhcp-4.3.0a1/server/confpars.c.paranoia dhcp-4.3.0a1/server/confpars.c
--- dhcp-4.3.0a1/server/confpars.c.paranoia 2013-12-19 16:30:21.346212275 +0100
+++ dhcp-4.3.0a1/server/confpars.c 2013-12-19 16:30:21.412211359 +0100
@@ -225,7 +225,11 @@ void trace_conf_input (trace_type_t *tty
diff -up dhcp-4.3.1b1/server/confpars.c.dlTsyN dhcp-4.3.1b1/server/confpars.c
--- dhcp-4.3.1b1/server/confpars.c.dlTsyN 2014-07-10 17:39:25.801764596 +0200
+++ dhcp-4.3.1b1/server/confpars.c 2014-07-10 17:50:26.924402522 +0200
@@ -219,7 +219,11 @@ void trace_conf_input (trace_type_t *tty
}
if (!leaseconf_initialized && ttype == trace_readleases_type) {
@ -43,10 +43,10 @@ diff -up dhcp-4.3.0a1/server/confpars.c.paranoia dhcp-4.3.0a1/server/confpars.c
leaseconf_initialized = 1;
postdb_startup ();
}
diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
--- dhcp-4.3.0a1/server/db.c.paranoia 2013-12-19 16:30:21.346212275 +0100
+++ dhcp-4.3.0a1/server/db.c 2013-12-19 16:30:21.412211359 +0100
@@ -48,6 +48,10 @@ static int counting = 0;
diff -up dhcp-4.3.1b1/server/db.c.dlTsyN dhcp-4.3.1b1/server/db.c
--- dhcp-4.3.1b1/server/db.c.dlTsyN 2014-07-10 17:39:25.801764596 +0200
+++ dhcp-4.3.1b1/server/db.c 2014-07-10 17:50:26.925402508 +0200
@@ -42,6 +42,10 @@ static int counting = 0;
static int count = 0;
TIME write_time;
int lease_file_is_corrupt = 0;
@ -57,7 +57,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
/* Write a single binding scope value in parsable format.
*/
@@ -1052,8 +1056,11 @@ int commit_leases_timed()
@@ -1046,8 +1050,11 @@ int commit_leases_timed()
return (1);
}
@ -71,7 +71,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
{
isc_result_t status;
@@ -1072,6 +1079,11 @@ void db_startup (testp)
@@ -1066,6 +1073,11 @@ void db_startup (testp)
}
#endif
@ -83,7 +83,7 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
#if defined (TRACING)
/* If we're playing back, there is no lease file, so we can't
append it, so we create one immediately (maybe this isn't
@@ -1134,6 +1146,17 @@ int new_lease_file ()
@@ -1128,6 +1140,17 @@ int new_lease_file ()
log_error ("Can't create new lease file: %m");
return 0;
}
@ -101,9 +101,9 @@ diff -up dhcp-4.3.0a1/server/db.c.paranoia dhcp-4.3.0a1/server/db.c
if ((new_db_file = fdopen(db_fd, "we")) == NULL) {
log_error("Can't fdopen new lease file: %m");
close(db_fd);
diff -up dhcp-4.3.0a1/server/dhcpd.8.paranoia dhcp-4.3.0a1/server/dhcpd.8
--- dhcp-4.3.0a1/server/dhcpd.8.paranoia 2013-12-11 01:01:03.000000000 +0100
+++ dhcp-4.3.0a1/server/dhcpd.8 2013-12-19 16:30:21.413211345 +0100
diff -up dhcp-4.3.1b1/server/dhcpd.8.dlTsyN dhcp-4.3.1b1/server/dhcpd.8
--- dhcp-4.3.1b1/server/dhcpd.8.dlTsyN 2014-07-02 19:58:39.000000000 +0200
+++ dhcp-4.3.1b1/server/dhcpd.8 2014-07-10 17:50:26.925402508 +0200
@@ -82,6 +82,18 @@ dhcpd - Dynamic Host Configuration Proto
.I trace-output-file
]
@ -139,10 +139,10 @@ diff -up dhcp-4.3.0a1/server/dhcpd.8.paranoia dhcp-4.3.0a1/server/dhcpd.8
.PP
.I Modifying default file locations:
The following options can be used to modify the locations
diff -up dhcp-4.3.0a1/server/dhcpd.c.paranoia dhcp-4.3.0a1/server/dhcpd.c
--- dhcp-4.3.0a1/server/dhcpd.c.paranoia 2013-12-19 16:30:21.347212261 +0100
+++ dhcp-4.3.0a1/server/dhcpd.c 2013-12-19 16:30:21.414211331 +0100
@@ -623,7 +623,11 @@ main(int argc, char **argv) {
diff -up dhcp-4.3.1b1/server/dhcpd.c.dlTsyN dhcp-4.3.1b1/server/dhcpd.c
--- dhcp-4.3.1b1/server/dhcpd.c.dlTsyN 2014-07-10 17:39:25.802764582 +0200
+++ dhcp-4.3.1b1/server/dhcpd.c 2014-07-10 17:52:35.341588248 +0200
@@ -628,7 +628,11 @@ main(int argc, char **argv) {
group_write_hook = group_writer;
/* Start up the database... */
@ -154,49 +154,3 @@ diff -up dhcp-4.3.0a1/server/dhcpd.c.paranoia dhcp-4.3.0a1/server/dhcpd.c
if (lftest)
exit (0);
@@ -694,22 +698,6 @@ main(int argc, char **argv) {
exit (0);
}
-#if defined (PARANOIA)
- /* change uid to the specified one */
-
- if (set_gid) {
- if (setgroups (0, (void *)0))
- log_fatal ("setgroups: %m");
- if (setgid (set_gid))
- log_fatal ("setgid(%d): %m", (int) set_gid);
- }
-
- if (set_uid) {
- if (setuid (set_uid))
- log_fatal ("setuid(%d): %m", (int) set_uid);
- }
-#endif /* PARANOIA */
-
/*
* Deal with pid files. If the user told us
* not to write a file we don't read one either
@@ -746,6 +734,22 @@ main(int argc, char **argv) {
}
}
+#if defined (PARANOIA)
+ /* change uid to the specified one */
+
+ if (set_gid) {
+ if (setgroups (0, (void *)0))
+ log_fatal ("setgroups: %m");
+ if (setgid (set_gid))
+ log_fatal ("setgid(%d): %m", (int) set_gid);
+ }
+
+ if (set_uid) {
+ if (setuid (set_uid))
+ log_fatal ("setuid(%d): %m", (int) set_uid);
+ }
+#endif /* PARANOIA */
+
/* If we were requested to log to stdout on the command line,
keep doing so; otherwise, stop. */
if (log_perror == -1)

View File

@ -1,25 +1,7 @@
diff -up dhcp-4.3.0a1/Makefile.am.remove-bind dhcp-4.3.0a1/Makefile.am
--- dhcp-4.3.0a1/Makefile.am.remove-bind 2013-12-13 21:49:44.000000000 +0100
+++ dhcp-4.3.0a1/Makefile.am 2013-12-19 14:23:48.907263942 +0100
@@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
bind/Makefile bind/bind.tar.gz bind/version.tmp \
common/tests/Atffile server/tests/Atffile
-SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
+if BUNDLED_BIND
+SUBDIRS = bind
+else
+SUBDIRS =
+endif
+
+SUBDIRS += includes tests common dst omapip client dhcpctl relay server
nobase_include_HEADERS = dhcpctl/dhcpctl.h
diff -up dhcp-4.3.0a1/client/Makefile.am.remove-bind dhcp-4.3.0a1/client/Makefile.am
--- dhcp-4.3.0a1/client/Makefile.am.remove-bind 2013-12-19 14:23:48.904263983 +0100
+++ dhcp-4.3.0a1/client/Makefile.am 2013-12-19 14:32:27.845095985 +0100
@@ -4,8 +4,8 @@ dhclient_SOURCES = clparse.c dhclient.c
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
@@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \
scripts/solaris scripts/openwrt
@ -30,10 +12,10 @@ diff -up dhcp-4.3.0a1/client/Makefile.am.remove-bind dhcp-4.3.0a1/client/Makefil
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind dhcp-4.3.0a1/common/tests/Makefile.am
--- dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind 2013-12-19 14:23:48.905263969 +0100
+++ dhcp-4.3.0a1/common/tests/Makefile.am 2013-12-19 14:33:01.260634412 +0100
@@ -13,15 +13,14 @@ ATF_TESTS += alloc_unittest dns_unittest
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
alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
alloc_unittest_LDADD = $(ATF_LDFLAGS)
alloc_unittest_LDADD += ../libdhcp.a \
@ -47,16 +29,24 @@ diff -up dhcp-4.3.0a1/common/tests/Makefile.am.remove-bind dhcp-4.3.0a1/common/t
dns_unittest_LDADD += ../libdhcp.a \
- ../../omapip/libomapi.a ../../bind/lib/libirs.a \
- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
+ ../../omapip/libomapi.a \
+ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
misc_unittest_LDADD = $(ATF_LDFLAGS)
misc_unittest_LDADD += ../libdhcp.a \
- ../../omapip/libomapi.a ../../bind/lib/libirs.a \
- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a
-
+ ../../omapip/libomapi.a \
+ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
check: $(ATF_TESTS)
atf-run | atf-report
diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac
--- dhcp-4.3.0a1/configure.ac.remove-bind 2013-12-19 14:23:48.906263956 +0100
+++ dhcp-4.3.0a1/configure.ac 2013-12-19 14:37:44.358723889 +0100
@@ -552,20 +552,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
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
@@ -562,20 +562,37 @@ AC_CHECK_MEMBER(struct msghdr.msg_contro
libbind=
AC_ARG_WITH(libbind,
@ -99,7 +89,7 @@ diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac
# OpenLDAP support.
AC_ARG_WITH(ldap,
@@ -600,7 +617,7 @@ fi
@@ -610,7 +627,7 @@ fi
CFLAGS="$CFLAGS $STD_CWARNINGS"
# Try to add the bind include directory
@ -108,9 +98,9 @@ diff -up dhcp-4.3.0a1/configure.ac.remove-bind dhcp-4.3.0a1/configure.ac
case "$host" in
*-darwin*)
diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind dhcp-4.3.0a1/dhcpctl/Makefile.am
--- dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind 2013-12-19 14:23:48.906263956 +0100
+++ dhcp-4.3.0a1/dhcpctl/Makefile.am 2013-12-19 14:40:06.497754274 +0100
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
@@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS)
omshell_SOURCES = omshell.c
@ -126,9 +116,27 @@ diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.remove-bind dhcp-4.3.0a1/dhcpctl/Makef
- ../bind/lib/libirs.a ../bind/lib/libdns.a \
- ../bind/lib/libisccfg.a ../bind/lib/libisc.a
+ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
diff -up dhcp-4.3.0a1/omapip/Makefile.am.remove-bind dhcp-4.3.0a1/omapip/Makefile.am
--- dhcp-4.3.0a1/omapip/Makefile.am.remove-bind 2013-12-19 14:23:48.908263928 +0100
+++ dhcp-4.3.0a1/omapip/Makefile.am 2013-12-19 14:40:51.440118923 +0100
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
@@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \
bind/Makefile bind/bind.tar.gz bind/version.tmp \
common/tests/Atffile server/tests/Atffile
-SUBDIRS = bind includes tests common dst omapip client dhcpctl relay server
+if BUNDLED_BIND
+SUBDIRS = bind
+else
+SUBDIRS =
+endif
+
+SUBDIRS += includes tests common dst omapip client dhcpctl relay server
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
@@ -10,6 +10,5 @@ man_MANS = omapi.3
EXTRA_DIST = $(man_MANS)
@ -138,9 +146,9 @@ diff -up dhcp-4.3.0a1/omapip/Makefile.am.remove-bind dhcp-4.3.0a1/omapip/Makefil
-
+svtest_LDADD = libomapi.a \
+ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
diff -up dhcp-4.3.0a1/relay/Makefile.am.remove-bind dhcp-4.3.0a1/relay/Makefile.am
--- dhcp-4.3.0a1/relay/Makefile.am.remove-bind 2013-12-19 14:23:48.908263928 +0100
+++ dhcp-4.3.0a1/relay/Makefile.am 2013-12-19 14:41:27.302612345 +0100
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
@@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay
dhcrelay_SOURCES = dhcrelay.c
@ -151,9 +159,9 @@ diff -up dhcp-4.3.0a1/relay/Makefile.am.remove-bind dhcp-4.3.0a1/relay/Makefile.
man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/server/Makefile.am.remove-bind dhcp-4.3.0a1/server/Makefile.am
--- dhcp-4.3.0a1/server/Makefile.am.remove-bind 2013-12-19 14:23:48.910263900 +0100
+++ dhcp-4.3.0a1/server/Makefile.am 2013-12-19 14:42:18.065895883 +0100
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
@@ -13,10 +13,8 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
dhcpv6.c mdb6.c ldap.c ldap_casa.c
@ -167,9 +175,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.remove-bind dhcp-4.3.0a1/server/Makefil
man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/server/tests/Makefile.am.remove-bind dhcp-4.3.0a1/server/tests/Makefile.am
--- dhcp-4.3.0a1/server/tests/Makefile.am.remove-bind 2013-12-19 14:23:48.911263886 +0100
+++ dhcp-4.3.0a1/server/tests/Makefile.am 2013-12-19 14:43:32.943840285 +0100
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
@@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa
../ldap.c ../ldap_casa.c ../dhcpd.c

View File

@ -1,48 +0,0 @@
diff -up dhcp-4.3.0a1/client/dhc6.c.retransmission dhcp-4.3.0a1/client/dhc6.c
--- dhcp-4.3.0a1/client/dhc6.c.retransmission 2013-12-19 15:57:09.629945386 +0100
+++ dhcp-4.3.0a1/client/dhc6.c 2013-12-19 15:57:09.634945316 +0100
@@ -302,7 +302,7 @@ dhc6_retrans_init(struct client_state *c
static void
dhc6_retrans_advance(struct client_state *client)
{
- struct timeval elapsed;
+ struct timeval elapsed, elapsed_after_RT;
/* elapsed = cur - start */
elapsed.tv_sec = cur_tv.tv_sec - client->start_time.tv_sec;
@@ -319,6 +319,8 @@ dhc6_retrans_advance(struct client_state
elapsed.tv_sec += 1;
elapsed.tv_usec -= 1000000;
}
+ elapsed_after_RT.tv_sec = elapsed.tv_sec;
+ elapsed_after_RT.tv_usec = elapsed.tv_usec;
/*
* RT for each subsequent message transmission is based on the previous
@@ -356,13 +358,10 @@ dhc6_retrans_advance(struct client_state
elapsed.tv_usec -= 1000000;
}
if (elapsed.tv_sec >= client->MRD) {
- /*
- * wake at RT + cur = start + MRD
- */
- client->RT = client->MRD +
- (client->start_time.tv_sec - cur_tv.tv_sec);
- client->RT = client->RT * 100 +
- (client->start_time.tv_usec - cur_tv.tv_usec) / 10000;
+ client->RT = client->MRD - elapsed_after_RT.tv_sec;
+ client->RT = client->RT * 100 - elapsed_after_RT.tv_usec / 10000;
+ if (client->RT < 0)
+ client->RT = 0;
}
client->txcount++;
}
@@ -1439,7 +1438,7 @@ check_timing6 (struct client_state *clie
}
/* Check if finished (-1 argument). */
- if ((client->MRD != 0) && (elapsed.tv_sec > client->MRD)) {
+ if ((client->MRD != 0) && (elapsed.tv_sec >= client->MRD)) {
log_info("Max retransmission duration exceeded.");
return(CHK_TIM_MRD_EXCEEDED);
}

View File

@ -1,7 +1,7 @@
diff -up dhcp-4.3.0a1/client/Makefile.am.sharedlib dhcp-4.3.0a1/client/Makefile.am
--- dhcp-4.3.0a1/client/Makefile.am.sharedlib 2013-12-20 14:23:14.303534850 +0100
+++ dhcp-4.3.0a1/client/Makefile.am 2013-12-20 14:23:14.312534725 +0100
@@ -4,7 +4,7 @@ dhclient_SOURCES = clparse.c dhclient.c
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
@@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c
scripts/bsdos scripts/freebsd scripts/linux scripts/macos \
scripts/netbsd scripts/nextstep scripts/openbsd \
scripts/solaris scripts/openwrt
@ -10,10 +10,10 @@ diff -up dhcp-4.3.0a1/client/Makefile.am.sharedlib dhcp-4.3.0a1/client/Makefile.
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhclient.8 dhclient-script.8 dhclient.conf.5 dhclient.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib dhcp-4.3.0a1/common/tests/Makefile.am
--- dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib 2013-12-20 14:23:14.304534836 +0100
+++ dhcp-4.3.0a1/common/tests/Makefile.am 2013-12-20 14:23:14.313534711 +0100
@@ -13,13 +13,13 @@ ATF_TESTS += alloc_unittest dns_unittest
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
alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c
alloc_unittest_LDADD = $(ATF_LDFLAGS)
alloc_unittest_LDADD += ../libdhcp.a \
@ -23,15 +23,22 @@ diff -up dhcp-4.3.0a1/common/tests/Makefile.am.sharedlib dhcp-4.3.0a1/common/tes
dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
dns_unittest_LDADD = $(ATF_LDFLAGS)
dns_unittest_LDADD += ../libdhcp.a \
-dns_unittest_LDADD += ../libdhcp.a \
+dns_unittest_LDADD += ../libdhcp.la \
../../omapip/libomapi.a \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
misc_unittest_SOURCES = misc_unittest.c $(top_srcdir)/tests/t_api_dhcp.c
misc_unittest_LDADD = $(ATF_LDFLAGS)
misc_unittest_LDADD += ../libdhcp.a \
- ../../omapip/libomapi.a \
+ ../../omapip/libomapi.la \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
check: $(ATF_TESTS)
atf-run | atf-report
diff -up dhcp-4.3.0a1/configure.ac.sharedlib dhcp-4.3.0a1/configure.ac
--- dhcp-4.3.0a1/configure.ac.sharedlib 2013-12-20 14:23:14.308534781 +0100
+++ dhcp-4.3.0a1/configure.ac 2013-12-20 14:23:14.313534711 +0100
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
@@ -39,7 +39,8 @@ fi
# Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
AC_USE_SYSTEM_EXTENSIONS
@ -42,9 +49,9 @@ diff -up dhcp-4.3.0a1/configure.ac.sharedlib dhcp-4.3.0a1/configure.ac
AC_CONFIG_HEADERS([includes/config.h])
# we sometimes need to know byte order for building packets
diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.0a1/dhcpctl/Makefile.am
--- dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib 2013-12-20 14:23:14.304534836 +0100
+++ dhcp-4.3.0a1/dhcpctl/Makefile.am 2013-12-20 14:23:21.998428024 +0100
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
@@ -1,14 +1,14 @@
bin_PROGRAMS = omshell
-lib_LIBRARIES = libdhcpctl.a
@ -64,9 +71,9 @@ diff -up dhcp-4.3.0a1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.0a1/dhcpctl/Makefil
-cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \
+cltest_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
diff -up dhcp-4.3.0a1/omapip/Makefile.am.sharedlib dhcp-4.3.0a1/omapip/Makefile.am
--- dhcp-4.3.0a1/omapip/Makefile.am.sharedlib 2013-12-20 14:23:14.304534836 +0100
+++ dhcp-4.3.0a1/omapip/Makefile.am 2013-12-20 14:23:14.313534711 +0100
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
@@ -1,7 +1,7 @@
-lib_LIBRARIES = libomapi.a
+lib_LTLIBRARIES = libomapi.la
@ -84,9 +91,9 @@ diff -up dhcp-4.3.0a1/omapip/Makefile.am.sharedlib dhcp-4.3.0a1/omapip/Makefile.
-svtest_LDADD = libomapi.a \
+svtest_LDADD = libomapi.la \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
diff -up dhcp-4.3.0a1/relay/Makefile.am.sharedlib dhcp-4.3.0a1/relay/Makefile.am
--- dhcp-4.3.0a1/relay/Makefile.am.sharedlib 2013-12-20 14:23:14.305534822 +0100
+++ dhcp-4.3.0a1/relay/Makefile.am 2013-12-20 14:23:14.314534697 +0100
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
@@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst
sbin_PROGRAMS = dhcrelay
@ -96,9 +103,9 @@ diff -up dhcp-4.3.0a1/relay/Makefile.am.sharedlib dhcp-4.3.0a1/relay/Makefile.am
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhcrelay.8
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/server/Makefile.am.sharedlib dhcp-4.3.0a1/server/Makefile.am
--- dhcp-4.3.0a1/server/Makefile.am.sharedlib 2013-12-20 14:23:14.305534822 +0100
+++ dhcp-4.3.0a1/server/Makefile.am 2013-12-20 14:23:14.314534697 +0100
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
@@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c
dhcpv6.c mdb6.c ldap.c ldap_casa.c
@ -108,9 +115,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.sharedlib dhcp-4.3.0a1/server/Makefile.
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5
EXTRA_DIST = $(man_MANS)
diff -up dhcp-4.3.0a1/server/tests/Makefile.am.sharedlib dhcp-4.3.0a1/server/tests/Makefile.am
--- dhcp-4.3.0a1/server/tests/Makefile.am.sharedlib 2013-12-20 14:23:14.305534822 +0100
+++ dhcp-4.3.0a1/server/tests/Makefile.am 2013-12-20 14:23:14.314534697 +0100
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
@@ -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,19 +1,7 @@
diff -up dhcp-4.3.0a1/Makefile.am.systemtap dhcp-4.3.0a1/Makefile.am
--- dhcp-4.3.0a1/Makefile.am.systemtap 2013-12-20 13:30:26.149645305 +0100
+++ dhcp-4.3.0a1/Makefile.am 2013-12-20 13:30:26.307643109 +0100
@@ -33,5 +33,8 @@ endif
SUBDIRS += includes tests common omapip client dhcpctl relay server
+SUBDIRS += tapset
+#DIST_SUBDIRS = $(SUBDIRS)
+
nobase_include_HEADERS = dhcpctl/dhcpctl.h
diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac
--- dhcp-4.3.0a1/configure.ac.systemtap 2013-12-20 13:30:26.229644193 +0100
+++ dhcp-4.3.0a1/configure.ac 2013-12-20 13:31:39.195630065 +0100
@@ -524,6 +524,35 @@ else
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
@@ -534,6 +534,35 @@ else
AC_MSG_RESULT(no)
fi
@ -49,7 +37,7 @@ diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac
# Solaris needs some libraries for functions
AC_SEARCH_LIBS(socket, [socket])
AC_SEARCH_LIBS(inet_ntoa, [nsl])
@@ -675,6 +704,7 @@ AC_CONFIG_FILES([
@@ -686,6 +715,7 @@ AC_CONFIG_FILES([
tests/Makefile
server/tests/Makefile
doc/devel/doxyfile
@ -57,9 +45,437 @@ diff -up dhcp-4.3.0a1/configure.ac.systemtap dhcp-4.3.0a1/configure.ac
])
AC_OUTPUT
diff -up dhcp-4.3.0a1/server/Makefile.am.systemtap dhcp-4.3.0a1/server/Makefile.am
--- dhcp-4.3.0a1/server/Makefile.am.systemtap 2013-12-20 13:30:26.156645207 +0100
+++ dhcp-4.3.0a1/server/Makefile.am 2013-12-20 13:34:16.057447630 +0100
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
@@ -33,5 +33,8 @@ endif
SUBDIRS += includes tests common omapip client dhcpctl relay server
+SUBDIRS += tapset
+#DIST_SUBDIRS = $(SUBDIRS)
+
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
@@ -30,7 +30,7 @@
#include <errno.h>
#include <limits.h>
#include <sys/time.h>
-
+#include "trace.h"
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)
dhcp_failover_state_t *peer;
#endif
+ TRACE(DHCPD_DISCOVER_START());
+
find_lease (&lease, packet, packet -> shared_network,
0, &peer_has_leases, (struct lease *)0, MDL);
@@ -425,6 +427,8 @@ void dhcpdiscover (packet, ms_nulltp)
out:
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_DISCOVER_DONE());
}
void dhcprequest (packet, ms_nulltp, ip_lease)
@@ -447,6 +451,8 @@ void dhcprequest (packet, ms_nulltp, ip_
#endif
int have_requested_addr = 0;
+ TRACE(DHCPD_REQUEST_START());
+
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_
log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip));
out:
+
+ TRACE(DHCPD_REQUEST_DONE());
+
if (subnet)
subnet_dereference (&subnet, MDL);
if (lease)
@@ -742,6 +751,7 @@ void dhcprelease (packet, ms_nulltp)
const char *s;
char msgbuf [1024], cstr[16]; /* XXX */
+ TRACE(DHCPD_RELEASE_START());
/* 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)
#endif
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_RELEASE_DONE());
}
void dhcpdecline (packet, ms_nulltp)
@@ -879,6 +891,8 @@ void dhcpdecline (packet, ms_nulltp)
struct option_cache *oc;
struct data_string data;
+ TRACE(DHCPD_DECLINE_START());
+
/* 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)
option_state_dereference (&options, MDL);
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_DECLINE_DONE());
}
void dhcpinform (packet, ms_nulltp)
@@ -1012,6 +1028,8 @@ void dhcpinform (packet, ms_nulltp)
int h_w_fixed_addr = 0;
#endif
+ TRACE(DHCPD_INFORM_START());
+
/* 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)
if (subnet)
subnet_dereference (&subnet, MDL);
+
+ 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;
struct option_cache *oc = (struct option_cache *)0;
+ 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)
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
if (lease -> state)
return;
+ TRACE(DHCPD_ACK_LEASE_START());
+
/* Save original cltt for comparison later. */
lease_cltt = lease->cltt;
@@ -3340,6 +3365,8 @@ void ack_lease (packet, lease, offer, wh
#endif
dhcp_reply(lease);
}
+
+ TRACE(DHCPD_ACK_LEASE_DONE());
}
/*
@@ -3492,6 +3519,8 @@ void dhcp_reply (lease)
if (!state)
log_fatal ("dhcp_reply was supplied lease with no state!");
+ TRACE(DHCPD_REPLY_START());
+
/* Compose a response for the client... */
memset (&raw, 0, sizeof raw);
memset (&d1, 0, sizeof d1);
@@ -3713,6 +3742,8 @@ void dhcp_reply (lease)
free_lease_state (state, MDL);
lease -> state = (struct lease_state *)0;
+
+ TRACE(DHCPD_REPLY_DONE());
}
int find_lease (struct lease **lp,
@@ -3735,6 +3766,8 @@ int find_lease (struct lease **lp,
struct data_string client_identifier;
struct hardware h;
+ TRACE(DHCPD_FIND_LEASE_START());
+
#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,
#if defined (DEBUG_FIND_LEASE)
log_info ("Not returning a lease.");
#endif
+
+ TRACE(DHCPD_FIND_LEASE_DONE());
+
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
@@ -52,6 +52,8 @@ static const char url [] =
# undef group
#endif /* PARANOIA */
+#include "trace.h"
+
#ifndef UNIT_TEST
static void usage(void);
#endif
@@ -801,6 +803,8 @@ main(int argc, char **argv) {
/* Log that we are about to start working */
log_info("Server starting service.");
+ TRACE(DHCPD_MAIN());
+
/*
* 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
@@ -17,6 +17,7 @@
/*! \file server/dhcpv6.c */
#include "dhcpd.h"
+#include "trace.h"
#ifdef DHCPv6
@@ -4829,6 +4830,8 @@ static void
dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) {
struct data_string client_id;
+ TRACE(DHCPD_SIX_SOLICIT_START());
+
/*
* Validate our input.
*/
@@ -4842,6 +4845,8 @@ dhcpv6_solicit(struct data_string *reply
* Clean up.
*/
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_SOLICIT_DONE());
}
/*
@@ -4855,6 +4860,8 @@ dhcpv6_request(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_REQUEST_START());
+
/*
* Validate our input.
*/
@@ -4872,6 +4879,8 @@ dhcpv6_request(struct data_string *reply
*/
data_string_forget(&client_id, MDL);
data_string_forget(&server_id, MDL);
+
+ TRACE(DHCPD_SIX_REQUEST_DONE());
}
/* Find a DHCPv6 packet's shared network from hints in the packet.
@@ -4984,6 +4993,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));
+ TRACE(DHCPD_SIX_CONFIRM_START());
+
/*
* Basic client message validation.
*/
@@ -5170,6 +5181,8 @@ exit:
option_state_dereference(&cli_enc_opt_state, MDL);
if (opt_state != NULL)
option_state_dereference(&opt_state, MDL);
+
+ TRACE(DHCPD_SIX_CONFIRM_DONE());
}
/*
@@ -5184,6 +5197,8 @@ dhcpv6_renew(struct data_string *reply,
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_RENEW_START());
+
/*
* Validate the request.
*/
@@ -5201,6 +5216,8 @@ dhcpv6_renew(struct data_string *reply,
*/
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_RENEW_DONE());
}
/*
@@ -5214,6 +5231,8 @@ static void
dhcpv6_rebind(struct data_string *reply, struct packet *packet) {
struct data_string client_id;
+ TRACE(DHCPD_SIX_REBIND_START());
+
if (!valid_client_msg(packet, &client_id)) {
return;
}
@@ -5221,6 +5240,8 @@ dhcpv6_rebind(struct data_string *reply,
lease_to_client(reply, packet, &client_id, NULL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_REBIND_DONE());
}
static void
@@ -5665,6 +5686,8 @@ dhcpv6_decline(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_DECLINE_START());
+
/*
* Validate our input.
*/
@@ -5685,6 +5708,8 @@ dhcpv6_decline(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_DECLINE_DONE());
}
static void
@@ -6133,6 +6158,8 @@ dhcpv6_release(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_RELEASE_START());
+
/*
* Validate our input.
*/
@@ -6154,6 +6181,8 @@ dhcpv6_release(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_RELEASE_DONE());
}
/*
@@ -6166,6 +6195,8 @@ dhcpv6_information_request(struct data_s
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_INFORMATION_REQUEST_START());
+
/*
* Validate our input.
*/
@@ -6197,6 +6228,8 @@ dhcpv6_information_request(struct data_s
data_string_forget(&client_id, MDL);
}
data_string_forget(&server_id, MDL);
+
+ TRACE(DHCPD_SIX_INFORMATION_REQUEST_DONE());
}
/*
@@ -6225,6 +6258,8 @@ dhcpv6_relay_forw(struct data_string *re
struct dhcpv6_relay_packet *reply;
int reply_ofs;
+ TRACE(DHCPD_SIX_RELAY_FORW_START());
+
/*
* Initialize variables for early exit.
*/
@@ -6484,6 +6519,8 @@ exit:
if (enc_packet != NULL) {
packet_dereference(&enc_packet, MDL);
}
+
+ TRACE(DHCPD_SIX_RELAY_FORW_DONE());
}
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
@@ -30,6 +30,8 @@
#include "dhcpd.h"
#include <omapip/omapip_p.h>
+#include "trace.h"
+
#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
struct lease *l;
struct timeval tv;
+ TRACE(DHCPD_FAILOVER_SET_STATE_START(state->me.state, new_state));
+
/* 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
break;
}
+ TRACE(DHCPD_FAILOVER_SET_STATE_DONE());
+
return ISC_R_SUCCESS;
}
@@ -2423,6 +2429,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (state -> me.state != normal)
return 0;
+ TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_START());
+
state->last_balance = cur_time;
for (s = shared_networks ; s ; s = s->next) {
@@ -2583,6 +2591,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (leases_queued)
commit_leases();
+ TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_DONE());
+
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
@@ -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 \
@ -83,425 +499,9 @@ diff -up dhcp-4.3.0a1/server/Makefile.am.systemtap dhcp-4.3.0a1/server/Makefile.
+
+dhcpd_LDADD += probes.o
+endif
diff -up dhcp-4.3.0a1/server/dhcp.c.systemtap dhcp-4.3.0a1/server/dhcp.c
--- dhcp-4.3.0a1/server/dhcp.c.systemtap 2013-12-20 13:30:26.182644846 +0100
+++ dhcp-4.3.0a1/server/dhcp.c 2013-12-20 13:32:22.909022163 +0100
@@ -36,7 +36,7 @@
#include <errno.h>
#include <limits.h>
#include <sys/time.h>
-
+#include "trace.h"
static void commit_leases_ackout(void *foo);
static void maybe_return_agent_options(struct packet *packet,
struct option_state *options);
@@ -275,6 +275,8 @@ void dhcpdiscover (packet, ms_nulltp)
dhcp_failover_state_t *peer;
#endif
+ TRACE(DHCPD_DISCOVER_START());
+
find_lease (&lease, packet, packet -> shared_network,
0, &peer_has_leases, (struct lease *)0, MDL);
@@ -399,6 +401,8 @@ void dhcpdiscover (packet, ms_nulltp)
out:
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_DISCOVER_DONE());
}
void dhcprequest (packet, ms_nulltp, ip_lease)
@@ -421,6 +425,8 @@ void dhcprequest (packet, ms_nulltp, ip_
#endif
int have_requested_addr = 0;
+ TRACE(DHCPD_REQUEST_START());
+
oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS);
memset (&data, 0, sizeof data);
@@ -700,6 +706,9 @@ void dhcprequest (packet, ms_nulltp, ip_
log_info ("%s: unknown lease %s.", msgbuf, piaddr (cip));
out:
+
+ TRACE(DHCPD_REQUEST_DONE());
+
if (subnet)
subnet_dereference (&subnet, MDL);
if (lease)
@@ -718,6 +727,7 @@ void dhcprelease (packet, ms_nulltp)
const char *s;
char msgbuf [1024], cstr[16]; /* XXX */
+ TRACE(DHCPD_RELEASE_START());
/* DHCPRELEASE must not specify address in requested-address
option, but old protocol specs weren't explicit about this,
@@ -842,6 +852,8 @@ void dhcprelease (packet, ms_nulltp)
#endif
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_RELEASE_DONE());
}
void dhcpdecline (packet, ms_nulltp)
@@ -859,6 +871,8 @@ void dhcpdecline (packet, ms_nulltp)
struct option_cache *oc;
struct data_string data;
+ TRACE(DHCPD_DECLINE_START());
+
/* DHCPDECLINE must specify address. */
if (!(oc = lookup_option (&dhcp_universe, packet -> options,
DHO_DHCP_REQUESTED_ADDRESS)))
@@ -967,6 +981,8 @@ void dhcpdecline (packet, ms_nulltp)
option_state_dereference (&options, MDL);
if (lease)
lease_dereference (&lease, MDL);
+
+ TRACE(DHCPD_DECLINE_DONE());
}
void dhcpinform (packet, ms_nulltp)
@@ -994,6 +1010,8 @@ void dhcpinform (packet, ms_nulltp)
int h_w_fixed_addr = 0;
#endif
+ TRACE(DHCPD_INFORM_START());
+
/* 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. */
@@ -1567,6 +1585,8 @@ void dhcpinform (packet, ms_nulltp)
if (subnet)
subnet_dereference (&subnet, MDL);
+
+ TRACE(DHCPD_INFORM_DONE());
}
void nak_lease (packet, cip)
@@ -1583,6 +1603,8 @@ void nak_lease (packet, cip)
struct option_state *options = (struct option_state *)0;
struct option_cache *oc = (struct option_cache *)0;
+ TRACE(DHCPD_NAK_LEASE_START());
+
option_state_allocate (&options, MDL);
memset (&outgoing, 0, sizeof outgoing);
memset (&raw, 0, sizeof raw);
@@ -1749,6 +1771,7 @@ void nak_lease (packet, cip)
packet->interface->name);
}
+ TRACE(DHCPD_NAK_LEASE_DONE());
}
void ack_lease (packet, lease, offer, when, msg, ms_nulltp, hp)
@@ -1792,6 +1815,8 @@ void ack_lease (packet, lease, offer, wh
if (lease -> state)
return;
+ TRACE(DHCPD_ACK_LEASE_START());
+
/* Save original cltt for comparison later. */
lease_cltt = lease->cltt;
@@ -3225,6 +3250,8 @@ void ack_lease (packet, lease, offer, wh
#endif
dhcp_reply(lease);
}
+
+ TRACE(DHCPD_ACK_LEASE_DONE());
}
/*
@@ -3377,6 +3404,8 @@ void dhcp_reply (lease)
if (!state)
log_fatal ("dhcp_reply was supplied lease with no state!");
+ TRACE(DHCPD_REPLY_START());
+
/* Compose a response for the client... */
memset (&raw, 0, sizeof raw);
memset (&d1, 0, sizeof d1);
@@ -3598,6 +3627,8 @@ void dhcp_reply (lease)
free_lease_state (state, MDL);
lease -> state = (struct lease_state *)0;
+
+ TRACE(DHCPD_REPLY_DONE());
}
int find_lease (struct lease **lp,
@@ -3620,6 +3651,8 @@ int find_lease (struct lease **lp,
struct data_string client_identifier;
struct hardware h;
+ TRACE(DHCPD_FIND_LEASE_START());
+
#if defined(FAILOVER_PROTOCOL)
/* Quick check to see if the peer has leases. */
if (peer_has_leases) {
@@ -4347,6 +4380,9 @@ int find_lease (struct lease **lp,
#if defined (DEBUG_FIND_LEASE)
log_info ("Not returning a lease.");
#endif
+
+ TRACE(DHCPD_FIND_LEASE_DONE());
+
return 0;
}
diff -up dhcp-4.3.0a1/server/dhcpd.c.systemtap dhcp-4.3.0a1/server/dhcpd.c
--- dhcp-4.3.0a1/server/dhcpd.c.systemtap 2013-12-20 13:30:26.281643471 +0100
+++ dhcp-4.3.0a1/server/dhcpd.c 2013-12-20 13:33:26.013144200 +0100
@@ -58,6 +58,8 @@ static const char url [] =
# undef group
#endif /* PARANOIA */
+#include "trace.h"
+
#ifndef UNIT_TEST
static void usage(void);
#endif
@@ -793,6 +795,8 @@ main(int argc, char **argv) {
/* Log that we are about to start working */
log_info("Server starting service.");
+ TRACE(DHCPD_MAIN());
+
/*
* Receive packets and dispatch them...
* dispatch() will never return.
diff -up dhcp-4.3.0a1/server/dhcpv6.c.systemtap dhcp-4.3.0a1/server/dhcpv6.c
--- dhcp-4.3.0a1/server/dhcpv6.c.systemtap 2013-12-20 13:30:26.272643596 +0100
+++ dhcp-4.3.0a1/server/dhcpv6.c 2013-12-20 13:33:48.296834064 +0100
@@ -17,6 +17,7 @@
/*! \file server/dhcpv6.c */
#include "dhcpd.h"
+#include "trace.h"
#ifdef DHCPv6
@@ -4763,6 +4764,8 @@ static void
dhcpv6_solicit(struct data_string *reply_ret, struct packet *packet) {
struct data_string client_id;
+ TRACE(DHCPD_SIX_SOLICIT_START());
+
/*
* Validate our input.
*/
@@ -4776,6 +4779,8 @@ dhcpv6_solicit(struct data_string *reply
* Clean up.
*/
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_SOLICIT_DONE());
}
/*
@@ -4789,6 +4794,8 @@ dhcpv6_request(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_REQUEST_START());
+
/*
* Validate our input.
*/
@@ -4806,6 +4813,8 @@ dhcpv6_request(struct data_string *reply
*/
data_string_forget(&client_id, MDL);
data_string_forget(&server_id, MDL);
+
+ TRACE(DHCPD_SIX_REQUEST_DONE());
}
/* Find a DHCPv6 packet's shared network from hints in the packet.
@@ -4918,6 +4927,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));
+ TRACE(DHCPD_SIX_CONFIRM_START());
+
/*
* Basic client message validation.
*/
@@ -5104,6 +5115,8 @@ exit:
option_state_dereference(&cli_enc_opt_state, MDL);
if (opt_state != NULL)
option_state_dereference(&opt_state, MDL);
+
+ TRACE(DHCPD_SIX_CONFIRM_DONE());
}
/*
@@ -5118,6 +5131,8 @@ dhcpv6_renew(struct data_string *reply,
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_RENEW_START());
+
/*
* Validate the request.
*/
@@ -5135,6 +5150,8 @@ dhcpv6_renew(struct data_string *reply,
*/
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_RENEW_DONE());
}
/*
@@ -5148,6 +5165,8 @@ static void
dhcpv6_rebind(struct data_string *reply, struct packet *packet) {
struct data_string client_id;
+ TRACE(DHCPD_SIX_REBIND_START());
+
if (!valid_client_msg(packet, &client_id)) {
return;
}
@@ -5155,6 +5174,8 @@ dhcpv6_rebind(struct data_string *reply,
lease_to_client(reply, packet, &client_id, NULL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_REBIND_DONE());
}
static void
@@ -5599,6 +5620,8 @@ dhcpv6_decline(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_DECLINE_START());
+
/*
* Validate our input.
*/
@@ -5619,6 +5642,8 @@ dhcpv6_decline(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_DECLINE_DONE());
}
static void
@@ -6067,6 +6092,8 @@ dhcpv6_release(struct data_string *reply
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_RELEASE_START());
+
/*
* Validate our input.
*/
@@ -6088,6 +6115,8 @@ dhcpv6_release(struct data_string *reply
data_string_forget(&server_id, MDL);
data_string_forget(&client_id, MDL);
+
+ TRACE(DHCPD_SIX_RELEASE_DONE());
}
/*
@@ -6100,6 +6129,8 @@ dhcpv6_information_request(struct data_s
struct data_string client_id;
struct data_string server_id;
+ TRACE(DHCPD_SIX_INFORMATION_REQUEST_START());
+
/*
* Validate our input.
*/
@@ -6131,6 +6162,8 @@ dhcpv6_information_request(struct data_s
data_string_forget(&client_id, MDL);
}
data_string_forget(&server_id, MDL);
+
+ TRACE(DHCPD_SIX_INFORMATION_REQUEST_DONE());
}
/*
@@ -6159,6 +6192,8 @@ dhcpv6_relay_forw(struct data_string *re
struct dhcpv6_relay_packet *reply;
int reply_ofs;
+ TRACE(DHCPD_SIX_RELAY_FORW_START());
+
/*
* Initialize variables for early exit.
*/
@@ -6418,6 +6453,8 @@ exit:
if (enc_packet != NULL) {
packet_dereference(&enc_packet, MDL);
}
+
+ TRACE(DHCPD_SIX_RELAY_FORW_DONE());
}
static void
diff -up dhcp-4.3.0a1/server/failover.c.systemtap dhcp-4.3.0a1/server/failover.c
--- dhcp-4.3.0a1/server/failover.c.systemtap 2013-12-11 01:25:12.000000000 +0100
+++ dhcp-4.3.0a1/server/failover.c 2013-12-20 13:30:26.314643012 +0100
@@ -36,6 +36,8 @@
#include "dhcpd.h"
#include <omapip/omapip_p.h>
+#include "trace.h"
+
#if defined (FAILOVER_PROTOCOL)
dhcp_failover_state_t *failover_states;
static isc_result_t do_a_failover_option (omapi_object_t *,
@@ -1710,6 +1712,8 @@ isc_result_t dhcp_failover_set_state (dh
struct lease *l;
struct timeval tv;
+ TRACE(DHCPD_FAILOVER_SET_STATE_START(state->me.state, new_state));
+
/* 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.
@@ -1941,6 +1945,8 @@ isc_result_t dhcp_failover_set_state (dh
break;
}
+ TRACE(DHCPD_FAILOVER_SET_STATE_DONE());
+
return ISC_R_SUCCESS;
}
@@ -2428,6 +2434,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (state -> me.state != normal)
return 0;
+ TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_START());
+
state->last_balance = cur_time;
for (s = shared_networks ; s ; s = s->next) {
@@ -2588,6 +2596,8 @@ dhcp_failover_pool_dobalance(dhcp_failov
if (leases_queued)
commit_leases();
+ TRACE(DHCPD_FAILOVER_POOL_DOBALANCE_DONE());
+
return leases_queued;
}
diff -up dhcp-4.3.0a1/server/probes.d.systemtap dhcp-4.3.0a1/server/probes.d
--- dhcp-4.3.0a1/server/probes.d.systemtap 2013-12-20 13:30:26.314643012 +0100
+++ dhcp-4.3.0a1/server/probes.d 2013-12-20 13:30:26.314643012 +0100
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
@@ -0,0 +1,43 @@
+provider dhcpd {
+ probe main();
@ -546,9 +546,9 @@ diff -up dhcp-4.3.0a1/server/probes.d.systemtap dhcp-4.3.0a1/server/probes.d
+ probe failover_set_state_start(int, int);
+ probe failover_set_state_done();
+};
diff -up dhcp-4.3.0a1/server/tests/Makefile.am.systemtap dhcp-4.3.0a1/server/tests/Makefile.am
--- dhcp-4.3.0a1/server/tests/Makefile.am.systemtap 2013-12-20 13:30:26.315642998 +0100
+++ dhcp-4.3.0a1/server/tests/Makefile.am 2013-12-20 13:34:57.263873891 +0100
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
@@ -21,6 +21,10 @@ DHCPLIBS = $(top_builddir)/common/libdhc
$(top_builddir)/dhcpctl/libdhcpctl.la \
$(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export
@ -560,9 +560,9 @@ diff -up dhcp-4.3.0a1/server/tests/Makefile.am.systemtap dhcp-4.3.0a1/server/tes
ATF_TESTS =
TESTS =
if HAVE_ATF
diff -up dhcp-4.3.0a1/server/trace.h.systemtap dhcp-4.3.0a1/server/trace.h
--- dhcp-4.3.0a1/server/trace.h.systemtap 2013-12-20 13:30:26.315642998 +0100
+++ dhcp-4.3.0a1/server/trace.h 2013-12-20 13:30:26.315642998 +0100
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
@@ -0,0 +1,11 @@
+// trace.h
+
@ -575,39 +575,9 @@ diff -up dhcp-4.3.0a1/server/trace.h.systemtap dhcp-4.3.0a1/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.0a1/tapset/Makefile.am.systemtap dhcp-4.3.0a1/tapset/Makefile.am
--- dhcp-4.3.0a1/tapset/Makefile.am.systemtap 2013-12-20 13:30:26.315642998 +0100
+++ dhcp-4.3.0a1/tapset/Makefile.am 2013-12-20 13:30:26.315642998 +0100
@@ -0,0 +1,26 @@
+# Makefile.am for dhcp/tapset
+# Jiri Popelka
+
+.PHONY: clean-local install-data-hook uninstall-local
+
+#
+EXTRA_DIST = dhcpd.stp
+TAPSET_FILES = $(EXTRA_DIST)
+TAPSET_INSTALL_DIR = $(DESTDIR)@ABS_TAPSET_DIR@
+
+if ENABLE_SYSTEMTAP
+all-local: $(TAPSET_FILES)
+
+clean-local:
+
+install-data-hook:
+ $(MKDIR_P) $(TAPSET_INSTALL_DIR)
+ $(INSTALL_DATA) $(TAPSET_FILES) $(TAPSET_INSTALL_DIR)
+
+uninstall-local:
+ @list='$(TAPSET_FILES)'; for p in $$list; do \
+ echo " rm -f '$(TAPSET_INSTALL_DIR)/$$p'"; \
+ rm -f "$(TAPSET_INSTALL_DIR)/$$p"; \
+ done
+endif
+
diff -up dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap dhcp-4.3.0a1/tapset/dhcpd.stp
--- dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap 2013-12-20 13:30:26.315642998 +0100
+++ dhcp-4.3.0a1/tapset/dhcpd.stp 2013-12-20 13:30:26.315642998 +0100
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
@@ -0,0 +1,212 @@
+/* dhcpd tapset
+ Copyright (C) 2011, Red Hat Inc.
@ -821,3 +791,33 @@ diff -up dhcp-4.3.0a1/tapset/dhcpd.stp.systemtap dhcp-4.3.0a1/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
@@ -0,0 +1,26 @@
+# Makefile.am for dhcp/tapset
+# Jiri Popelka
+
+.PHONY: clean-local install-data-hook uninstall-local
+
+#
+EXTRA_DIST = dhcpd.stp
+TAPSET_FILES = $(EXTRA_DIST)
+TAPSET_INSTALL_DIR = $(DESTDIR)@ABS_TAPSET_DIR@
+
+if ENABLE_SYSTEMTAP
+all-local: $(TAPSET_FILES)
+
+clean-local:
+
+install-data-hook:
+ $(MKDIR_P) $(TAPSET_INSTALL_DIR)
+ $(INSTALL_DATA) $(TAPSET_FILES) $(TAPSET_INSTALL_DIR)
+
+uninstall-local:
+ @list='$(TAPSET_FILES)'; for p in $$list; do \
+ echo " rm -f '$(TAPSET_INSTALL_DIR)/$$p'"; \
+ rm -f "$(TAPSET_INSTALL_DIR)/$$p"; \
+ done
+endif
+

View File

@ -9,16 +9,16 @@
#%%global patchver P2
#%%global prever rc1
%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.0
Release: 15%{?dist}
Version: 4.3.1
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.
@ -53,10 +53,8 @@ Patch13: dhcp-garbage-chars.patch
Patch14: dhcp-add_timeout_when_NULL.patch
Patch15: dhcp-64_bit_lease_parse.patch
Patch16: dhcp-capability.patch
Patch17: dhcp-logpid.patch
Patch18: dhcp-UseMulticast.patch
Patch19: dhcp-sendDecline.patch
Patch20: dhcp-retransmission.patch
Patch21: dhcp-rfc3442-classless-static-routes.patch
Patch22: dhcp-honor-expired.patch
Patch23: dhcp-PPP.patch
@ -67,15 +65,11 @@ Patch27: dhcp-improved-xid.patch
Patch28: dhcp-gpxe-cid.patch
Patch29: dhcp-duidv4.patch
Patch30: dhcp-systemtap.patch
Patch31: dhcp-dhclient-decline-onetry.patch
Patch33: dhcp-getifaddrs.patch
Patch34: dhcp-omapi-leak.patch
Patch35: dhcp-failOverPeer.patch
Patch36: dhcp-interval.patch
Patch37: dhcp-conflex-do-forward-updates.patch
Patch38: dhcp-dupl-key.patch
Patch39: dhcp-range6.patch
Patch40: dhcp-next-server.patch
Patch41: dhcp-no-subnet-error2info.patch
Patch42: dhcp-ffff-checksum.patch
Patch43: dhcp-sd_notify.patch
@ -252,10 +246,6 @@ rm -rf includes/isc-dhcp
# dhclient (#517649, #546765), dhcpd/dhcrelay (#699713)
%patch16 -p1 -b .capability
# dhclient logs its pid to make troubleshooting NM managed systems
# with multiple dhclients running easier (#546792)
%patch17 -p1 -b .logpid
# Discard unicast Request/Renew/Release/Decline message
# (unless we set unicast option) and respond with Reply
# with UseMulticast Status Code option (#573090)
@ -268,13 +258,6 @@ rm -rf includes/isc-dhcp
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21237])
%patch19 -p1 -b .sendDecline
# In client initiated message exchanges stop retransmission
# upon reaching the MRD rather than at some point after it (#559153)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #21238])
# It causes RHBZ#1026565 and because we carry it around *only* to silence TAHI
# tests, un-apply it until I find out how to fix it.
#%%patch20 -p1 -b .retransmission
# RFC 3442 - Classless Static Route Option for DHCPv4 (#516325)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #24572])
%patch21 -p1 -b .rfc3442
@ -288,7 +271,6 @@ rm -rf includes/isc-dhcp
%patch23 -p1 -b .PPP
# dhcpd: BEFORE changing of the effective user/group ID:
# - write PID file (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #25806])
# - chown leases file (#866714)
%patch24 -p1 -b .paranoia
@ -306,11 +288,6 @@ rm -rf includes/isc-dhcp
# http://sourceware.org/systemtap/wiki/SystemTap
%patch30 -p1 -b .systemtap
# Send DHCPDECLINE and exit(2) when duplicate address was detected and
# dhclient had been started with '-1' (#756759).
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #26735])
%patch31 -p1 -b .decline-onetry
# Use getifaddrs() to scan for interfaces on Linux (#449946)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28761])
%patch33 -p1 -b .getifaddrs
@ -327,22 +304,10 @@ rm -rf includes/isc-dhcp
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28038])
%patch36 -p1 -b .interval
# do-forward-updates statement wasn't recognized (#863646)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #31328])
%patch37 -p1 -b .forward-updates
# multiple key statements in zone definition causes inappropriate error (#873794)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #31892])
%patch38 -p1 -b .dupl-key
# Make sure range6 is correct for subnet6 where it's declared (#902966)
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #32453])
%patch39 -p1 -b .range6
# Expose next-server DHCPv4 option to dhclient script
# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #33098])
%patch40 -p1 -b .next-server
# 'No subnet declaration for <iface>' should be info, not error.
%patch41 -p1 -b .error2info
@ -390,6 +355,7 @@ CFLAGS="%{optflags} -fno-strict-aliasing" \
--with-ldapcrypto \
--with-libbind=%{_includedir} --with-libbind-libs=%{_libdir} \
--disable-static \
--enable-log-pid \
%if %sdt
--enable-systemtap \
--with-tapset-install-dir=%{tapsetdir} \
@ -624,6 +590,9 @@ done
%doc doc/html/
%changelog
* Thu Jul 10 2014 Jiri Popelka <jpopelka@redhat.com> - 12:4.3.1-0.1.b1
- 4.3.1b1
* Thu Jun 12 2014 Filipe Brandenburger <filbranden@google.com> - 12:4.3.0-15
- dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830)