From 7b69e548fb2c64c4c0dec23b9a6c9135c3021092 Mon Sep 17 00:00:00 2001 From: Jiri Popelka Date: Thu, 10 Jul 2014 19:01:31 +0200 Subject: [PATCH] 4.3.1b1 --- dhcp-PPP.patch | 80 +-- dhcp-UseMulticast.patch | 48 +- dhcp-capability.patch | 134 ++-- dhcp-conflex-do-forward-updates.patch | 12 - dhcp-dhclient-decline-backoff.patch | 36 +- dhcp-dhclient-decline-onetry.patch | 27 - dhcp-dhclient-options.patch | 76 +- dhcp-duidv4.patch | 32 +- dhcp-dupl-key.patch | 13 - dhcp-getifaddrs.patch | 18 +- dhcp-logpid.patch | 12 - dhcp-lpf-ib.patch | 50 +- dhcp-next-server.patch | 53 -- dhcp-paranoia.patch | 98 +-- dhcp-remove-bind.patch | 100 +-- dhcp-retransmission.patch | 48 -- dhcp-sharedlib.patch | 61 +- dhcp-systemtap.patch | 956 +++++++++++++------------- dhcp.spec | 49 +- 19 files changed, 839 insertions(+), 1064 deletions(-) delete mode 100644 dhcp-conflex-do-forward-updates.patch delete mode 100644 dhcp-dhclient-decline-onetry.patch delete mode 100644 dhcp-dupl-key.patch delete mode 100644 dhcp-logpid.patch delete mode 100644 dhcp-next-server.patch delete mode 100644 dhcp-retransmission.patch diff --git a/dhcp-PPP.patch b/dhcp-PPP.patch index 585800b..5d022e4 100644 --- a/dhcp-PPP.patch +++ b/dhcp-PPP.patch @@ -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; } diff --git a/dhcp-UseMulticast.patch b/dhcp-UseMulticast.patch index 41c74be..ee0ea6b 100644 --- a/dhcp-UseMulticast.patch +++ b/dhcp-UseMulticast.patch @@ -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. */ diff --git a/dhcp-capability.patch b/dhcp-capability.patch index d304b95..ae0d9f3 100644 --- a/dhcp-capability.patch +++ b/dhcp-capability.patch @@ -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 #include @@ -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 #include @@ -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) diff --git a/dhcp-conflex-do-forward-updates.patch b/dhcp-conflex-do-forward-updates.patch deleted file mode 100644 index 1ca01c4..0000000 --- a/dhcp-conflex-do-forward-updates.patch +++ /dev/null @@ -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; diff --git a/dhcp-dhclient-decline-backoff.patch b/dhcp-dhclient-decline-backoff.patch index 7436e6a..3e52e64 100644 --- a/dhcp-dhclient-decline-backoff.patch +++ b/dhcp-dhclient-decline-backoff.patch @@ -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, diff --git a/dhcp-dhclient-decline-onetry.patch b/dhcp-dhclient-decline-onetry.patch deleted file mode 100644 index 5c42227..0000000 --- a/dhcp-dhclient-decline-onetry.patch +++ /dev/null @@ -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. */ diff --git a/dhcp-dhclient-options.patch b/dhcp-dhclient-options.patch index 74270c6..077319e 100644 --- a/dhcp-dhclient-options.patch +++ b/dhcp-dhclient-options.patch @@ -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 #include @@ -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 ] [-B]\n" + " [-H | -F ] [-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, diff --git a/dhcp-duidv4.patch b/dhcp-duidv4.patch index 97138ae..7b2dfab 100644 --- a/dhcp-duidv4.patch +++ b/dhcp-duidv4.patch @@ -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); diff --git a/dhcp-dupl-key.patch b/dhcp-dupl-key.patch deleted file mode 100644 index 2fab20d..0000000 --- a/dhcp-dupl-key.patch +++ /dev/null @@ -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); diff --git a/dhcp-getifaddrs.patch b/dhcp-getifaddrs.patch index bf52db7..685e52a 100644 --- a/dhcp-getifaddrs.patch +++ b/dhcp-getifaddrs.patch @@ -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); diff --git a/dhcp-logpid.patch b/dhcp-logpid.patch deleted file mode 100644 index 6f161e1..0000000 --- a/dhcp-logpid.patch +++ /dev/null @@ -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)); diff --git a/dhcp-lpf-ib.patch b/dhcp-lpf-ib.patch index 8f505b3..8e094d6 100644 --- a/dhcp-lpf-ib.patch +++ b/dhcp-lpf-ib.patch @@ -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 @@ -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); diff --git a/dhcp-next-server.patch b/dhcp-next-server.patch deleted file mode 100644 index 0d88af4..0000000 --- a/dhcp-next-server.patch +++ /dev/null @@ -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 *, diff --git a/dhcp-paranoia.patch b/dhcp-paranoia.patch index bfc9542..0f2db8c 100644 --- a/dhcp-paranoia.patch +++ b/dhcp-paranoia.patch @@ -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) diff --git a/dhcp-remove-bind.patch b/dhcp-remove-bind.patch index 901a8b0..02f4ffc 100644 --- a/dhcp-remove-bind.patch +++ b/dhcp-remove-bind.patch @@ -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 diff --git a/dhcp-retransmission.patch b/dhcp-retransmission.patch deleted file mode 100644 index b104310..0000000 --- a/dhcp-retransmission.patch +++ /dev/null @@ -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); - } diff --git a/dhcp-sharedlib.patch b/dhcp-sharedlib.patch index 7b7327f..0646e33 100644 --- a/dhcp-sharedlib.patch +++ b/dhcp-sharedlib.patch @@ -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 diff --git a/dhcp-systemtap.patch b/dhcp-systemtap.patch index b5e0348..fcd789b 100644 --- a/dhcp-systemtap.patch +++ b/dhcp-systemtap.patch @@ -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 + #include + #include +- ++#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 + ++#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 - #include - #include -- -+#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 - -+#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 ++ diff --git a/dhcp.spec b/dhcp.spec index abc5dfa..5bbc84e 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -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 ' 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 - 12:4.3.1-0.1.b1 +- 4.3.1b1 + * Thu Jun 12 2014 Filipe Brandenburger - 12:4.3.0-15 - dhclient-script: fix issue with classless static routes that breaks Fedora 20 on GCE cloud (#1102830)