From 896e81f5e6c09f96d82374be2a8f981450940a40 Mon Sep 17 00:00:00 2001 From: Jiri Popelka Date: May 02 2016 13:31:33 +0000 Subject: Merge branch 'f24' --- diff --git a/.gitignore b/.gitignore index b15bd77..e369df4 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /dhcp-4.3.3b1.tar.gz /dhcp-4.3.3.tar.gz /dhcp-4.3.3-P1.tar.gz +/dhcp-4.3.4.tar.gz diff --git a/dhcp-IPoIB-log-id.patch b/dhcp-IPoIB-log-id.patch index 68b4e00..97e9dd5 100644 --- a/dhcp-IPoIB-log-id.patch +++ b/dhcp-IPoIB-log-id.patch @@ -1,10 +1,7 @@ -diff -up dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id dhcp-4.3.2b1/common/lpf.c ---- dhcp-4.3.2b1/common/lpf.c.IPoIB-log-id 2015-02-08 17:37:47.055023959 +0100 -+++ dhcp-4.3.2b1/common/lpf.c 2015-02-08 17:41:21.294972666 +0100 -diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c ---- dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id 2015-02-08 17:37:46.980025024 +0100 -+++ dhcp-4.3.2b1/server/dhcp.c 2015-02-08 17:37:47.061023874 +0100 -@@ -77,6 +77,42 @@ const int dhcp_type_name_max = ((sizeof +diff -up dhcp-4.3.4/server/dhcp.c.IPoIB-log-id dhcp-4.3.4/server/dhcp.c +--- dhcp-4.3.4/server/dhcp.c.IPoIB-log-id 2016-04-29 12:52:14.285061620 +0200 ++++ dhcp-4.3.4/server/dhcp.c 2016-04-29 12:53:59.535088020 +0200 +@@ -85,6 +85,42 @@ const int dhcp_type_name_max = ((sizeof # define send_packet trace_packet_send #endif @@ -47,8 +44,8 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c void dhcp (struct packet *packet) { int ms_nulltp = 0; -@@ -105,9 +141,7 @@ dhcp (struct packet *packet) { - +@@ -127,9 +163,7 @@ dhcp (struct packet *packet) { + log_info("%s from %s via %s: %s", s, (packet->raw->htype - ? print_hw_addr(packet->raw->htype, @@ -58,8 +55,8 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c : ""), packet->raw->giaddr.s_addr ? inet_ntoa(packet->raw->giaddr) -@@ -289,9 +323,7 @@ void dhcpdiscover (packet, ms_nulltp) - */ +@@ -326,9 +360,7 @@ void dhcpdiscover (packet, ms_nulltp) + #endif snprintf (msgbuf, sizeof msgbuf, "DHCPDISCOVER from %s %s%s%svia %s", (packet -> raw -> htype - ? print_hw_addr (packet -> raw -> htype, @@ -69,7 +66,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -481,9 +513,7 @@ void dhcprequest (packet, ms_nulltp, ip_ +@@ -540,9 +572,7 @@ void dhcprequest (packet, ms_nulltp, ip_ "DHCPREQUEST for %s%s from %s %s%s%svia %s", piaddr (cip), smbuf, (packet -> raw -> htype @@ -80,7 +77,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -724,9 +754,7 @@ void dhcprelease (packet, ms_nulltp) +@@ -783,9 +813,7 @@ void dhcprelease (packet, ms_nulltp) if ((oc = lookup_option (&dhcp_universe, packet -> options, DHO_DHCP_REQUESTED_ADDRESS))) { log_info ("DHCPRELEASE from %s specified requested-address.", @@ -91,7 +88,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c } oc = lookup_option (&dhcp_universe, packet -> options, -@@ -800,9 +828,7 @@ void dhcprelease (packet, ms_nulltp) +@@ -877,9 +905,7 @@ void dhcprelease (packet, ms_nulltp) "DHCPRELEASE of %s from %s %s%s%svia %s (%sfound)", cstr, (packet -> raw -> htype @@ -102,7 +99,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -891,9 +917,7 @@ void dhcpdecline (packet, ms_nulltp) +@@ -984,9 +1010,7 @@ void dhcpdecline (packet, ms_nulltp) "DHCPDECLINE of %s from %s %s%s%svia %s", piaddr (cip), (packet -> raw -> htype @@ -113,7 +110,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c : (lease ? print_hex_1(lease->uid_len, lease->uid, 60) : "")), -@@ -1544,8 +1568,7 @@ void dhcpinform (packet, ms_nulltp) +@@ -1683,8 +1707,7 @@ void dhcpinform (packet, ms_nulltp) /* Report what we're sending. */ snprintf(msgbuf, sizeof msgbuf, "DHCPACK to %s (%s) via", piaddr(cip), (packet->raw->htype && packet->raw->hlen) ? @@ -123,8 +120,8 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c ""); log_info("%s %s", msgbuf, gip.len ? piaddr(gip) : packet->interface->name); -@@ -1711,9 +1734,7 @@ void nak_lease (packet, cip, network_gro - /* Report what we're sending... */ +@@ -1862,9 +1885,7 @@ void nak_lease (packet, cip, network_gro + #endif log_info ("DHCPNAK on %s to %s via %s", piaddr (*cip), - print_hw_addr (packet -> raw -> htype, @@ -134,7 +131,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c packet -> raw -> giaddr.s_addr ? inet_ntoa (packet -> raw -> giaddr) : packet -> interface -> name); -@@ -3617,7 +3638,7 @@ void dhcp_reply (lease) +@@ -3859,7 +3880,7 @@ void dhcp_reply (lease) ? (state -> offer == DHCPACK ? "DHCPACK" : "DHCPOFFER") : "BOOTREPLY"), piaddr (lease -> ip_addr), @@ -143,7 +140,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c ? print_hw_addr (lease -> hardware_addr.hbuf [0], lease -> hardware_addr.hlen - 1, &lease -> hardware_addr.hbuf [1]) -@@ -4171,10 +4192,7 @@ int find_lease (struct lease **lp, +@@ -4408,10 +4429,7 @@ int find_lease (struct lease **lp, if (uid_lease) { if (uid_lease->binding_state == FTS_ACTIVE) { log_error ("client %s has duplicate%s on %s", @@ -155,7 +152,7 @@ diff -up dhcp-4.3.2b1/server/dhcp.c.IPoIB-log-id dhcp-4.3.2b1/server/dhcp.c " leases", (ip_lease -> subnet -> shared_network -> name)); -@@ -4341,9 +4359,7 @@ int find_lease (struct lease **lp, +@@ -4578,9 +4596,7 @@ int find_lease (struct lease **lp, log_error("uid lease %s for client %s is duplicate " "on %s", piaddr(uid_lease->ip_addr), diff --git a/dhcp-PPP.patch b/dhcp-PPP.patch index 5d022e4..b3d82ea 100644 --- a/dhcp-PPP.patch +++ b/dhcp-PPP.patch @@ -1,7 +1,7 @@ -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 +diff -up dhcp-4.3.4/client/dhc6.c.PPP dhcp-4.3.4/client/dhc6.c +--- dhcp-4.3.4/client/dhc6.c.PPP 2016-04-29 12:46:29.824988665 +0200 ++++ dhcp-4.3.4/client/dhc6.c 2016-04-29 12:46:29.828988666 +0200 +@@ -5641,7 +5641,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.1b1/client/dhc6.c.mRfpsB dhcp-4.3.1b1/client/dhc6.c MDL)) log_fatal("Failure assembling a DUID."); -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) { +diff -up dhcp-4.3.4/client/dhclient.c.PPP dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.PPP 2016-04-29 12:46:29.815988664 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:46:29.830988666 +0200 +@@ -1077,8 +1077,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.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c } } -@@ -3267,7 +3267,7 @@ write_options(struct client_state *clien +@@ -3808,7 +3808,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.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c form_duid(struct data_string *duid, const char *file, int line) { struct interface_info *ip; -@@ -3280,6 +3280,15 @@ form_duid(struct data_string *duid, cons +@@ -3821,6 +3821,15 @@ form_duid(struct data_string *duid, cons if (ip == NULL) log_fatal("Impossible condition at %s:%d.", MDL); @@ -50,7 +50,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/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); -@@ -3323,6 +3332,8 @@ form_duid(struct data_string *duid, cons +@@ -3866,6 +3875,8 @@ form_duid(struct data_string *duid, cons log_info("Created duid %s.", str); dfree(str, MDL); } @@ -59,10 +59,10 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.mRfpsB dhcp-4.3.1b1/client/dhclient.c } /* Write the default DUID to the lease store. */ -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 +diff -up dhcp-4.3.4/common/bpf.c.PPP dhcp-4.3.4/common/bpf.c +--- dhcp-4.3.4/common/bpf.c.PPP 2016-04-29 12:46:29.794988660 +0200 ++++ dhcp-4.3.4/common/bpf.c 2016-04-29 12:46:29.830988666 +0200 +@@ -599,6 +599,22 @@ get_hw_addr(const char *name, struct har memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen); break; #endif /* IFT_FDDI */ @@ -85,10 +85,10 @@ diff -up dhcp-4.3.1b1/common/bpf.c.mRfpsB dhcp-4.3.1b1/common/bpf.c default: log_fatal("Unsupported device type %d for \"%s\"", sa->sdl_type, name); -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 +diff -up dhcp-4.3.4/common/lpf.c.PPP dhcp-4.3.4/common/lpf.c +--- dhcp-4.3.4/common/lpf.c.PPP 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/lpf.c 2016-04-29 12:46:29.830988666 +0200 +@@ -548,6 +548,22 @@ get_hw_addr(const char *name, struct har hw->hbuf[0] = HTYPE_FDDI; memcpy(&hw->hbuf[1], sa->sa_data, 6); break; @@ -111,21 +111,21 @@ diff -up dhcp-4.3.1b1/common/lpf.c.mRfpsB dhcp-4.3.1b1/common/lpf.c default: log_fatal("Unsupported device type %ld for \"%s\"", (long int)sa->sa_family, name); -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 +diff -up dhcp-4.3.4/includes/dhcpd.h.PPP dhcp-4.3.4/includes/dhcpd.h +--- dhcp-4.3.4/includes/dhcpd.h.PPP 2016-04-29 12:46:29.831988667 +0200 ++++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:47:13.167995959 +0200 +@@ -2990,7 +2990,7 @@ void client_dns_remove(struct client_sta void dhcpv4_client_assignments(void); void dhcpv6_client_assignments(void); -void form_duid(struct data_string *duid, const char *file, int line); +isc_result_t form_duid(struct data_string *duid, const char *file, int line); - /* dhc6.c */ - void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line); -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 + void dhcp4o6_start(void); + +diff -up dhcp-4.3.4/includes/dhcp.h.PPP dhcp-4.3.4/includes/dhcp.h +--- dhcp-4.3.4/includes/dhcp.h.PPP 2016-04-29 12:46:29.822988665 +0200 ++++ dhcp-4.3.4/includes/dhcp.h 2016-04-29 12:46:29.832988667 +0200 @@ -81,6 +81,8 @@ struct dhcp_packet { * is no standard for this so we * just steal a type */ @@ -135,10 +135,10 @@ diff -up dhcp-4.3.1b1/includes/dhcp.h.mRfpsB dhcp-4.3.1b1/includes/dhcp.h /* 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) { +diff -up dhcp-4.3.4/server/dhcpv6.c.PPP dhcp-4.3.4/server/dhcpv6.c +--- dhcp-4.3.4/server/dhcpv6.c.PPP 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/server/dhcpv6.c 2016-04-29 12:46:29.833988667 +0200 +@@ -454,6 +454,9 @@ generate_new_server_duid(void) { if (p->hw_address.hlen > 0) { break; } diff --git a/dhcp-VLAN-ID.patch b/dhcp-VLAN-ID.patch deleted file mode 100644 index cb0bd3b..0000000 --- a/dhcp-VLAN-ID.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 7a1862a392038407371d6889e49b06848efa637f Mon Sep 17 00:00:00 2001 -From: Jiri Popelka -Date: Thu, 3 Sep 2015 18:25:42 +0200 -Subject: [PATCH] VLAN ID is only bottom 12-bits of TCI - -The upper 4 bits contain metadata used for quality of service -management. - -TCI(16b) = PCP(3b) + DEI(1b) + VID(12b) - -TCI = Tag control information -PCP = Priority code point -DEI = Drop eligible indicator -VID = VLAN identifier ---- - common/lpf.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/common/lpf.c b/common/lpf.c -index 7889b6b..4c835e6 100644 ---- a/common/lpf.c -+++ b/common/lpf.c -@@ -425,7 +425,8 @@ ssize_t receive_packet (interface, buf, len, from, hfrom) - /* Discard packets with stripped vlan id */ - - #ifdef VLAN_TCI_PRESENT -- if (aux->tp_vlan_tci != 0) -+ /* VLAN ID is only bottom 12-bits of TCI */ -+ if (aux->tp_vlan_tci & 0x0fff) - return 0; - #endif - --- -2.5.0 - diff --git a/dhcp-capability.patch b/dhcp-capability.patch index ae0d9f3..4572c34 100644 --- a/dhcp-capability.patch +++ b/dhcp-capability.patch @@ -1,7 +1,7 @@ -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 +diff -up dhcp-4.3.4/client/dhclient.8.capability dhcp-4.3.4/client/dhclient.8 +--- dhcp-4.3.4/client/dhclient.8.capability 2016-04-29 12:19:40.657129322 +0200 ++++ dhcp-4.3.4/client/dhclient.8 2016-04-29 12:19:40.715129297 +0200 +@@ -134,6 +134,9 @@ dhclient - Dynamic Host Configuration Pr .B -w ] [ @@ -11,7 +11,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.8.zzftXp dhcp-4.3.1b1/client/dhclient.8 .B -B ] [ -@@ -304,6 +307,32 @@ has been added or removed, so that the c +@@ -318,6 +321,32 @@ has been added or removed, so that the c address on that interface. .TP @@ -44,11 +44,11 @@ diff -up dhcp-4.3.1b1/client/dhclient.8.zzftXp dhcp-4.3.1b1/client/dhclient.8 .BI \-B Set the BOOTP broadcast flag in request packets so servers will always broadcast replies. -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 +diff -up dhcp-4.3.4/client/dhclient.c.capability dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.capability 2016-04-29 12:19:40.691129307 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:21:07.620091930 +0200 +@@ -40,6 +40,10 @@ + #include #include +#ifdef HAVE_LIBCAP_NG @@ -58,7 +58,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c /* * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define * that when building ISC code. -@@ -143,6 +147,9 @@ main(int argc, char **argv) { +@@ -237,6 +241,9 @@ main(int argc, char **argv) { int timeout_arg = 0; char *arg_conf = NULL; int arg_conf_len = 0; @@ -68,7 +68,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -425,6 +432,10 @@ main(int argc, char **argv) { +@@ -537,6 +544,10 @@ main(int argc, char **argv) { } dhclient_request_options = argv[i]; @@ -77,9 +77,9 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c + keep_capabilities = 1; +#endif } else if (argv[i][0] == '-') { - usage(); + usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -473,6 +484,19 @@ main(int argc, char **argv) { +@@ -597,6 +608,19 @@ main(int argc, char **argv) { path_dhclient_script = s; } @@ -99,9 +99,9 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.zzftXp dhcp-4.3.1b1/client/dhclient.c /* Set up the initial dhcp option universe. */ initialize_common_option_spaces(); -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 +diff -up dhcp-4.3.4/client/dhclient-script.8.capability dhcp-4.3.4/client/dhclient-script.8 +--- dhcp-4.3.4/client/dhclient-script.8.capability 2016-04-29 12:19:40.668129317 +0200 ++++ dhcp-4.3.4/client/dhclient-script.8 2016-04-29 12:19:40.717129296 +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 @@ -119,10 +119,10 @@ diff -up dhcp-4.3.1b1/client/dhclient-script.8.zzftXp dhcp-4.3.1b1/client/dhclie .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 +diff -up dhcp-4.3.4/client/Makefile.am.capability dhcp-4.3.4/client/Makefile.am +--- dhcp-4.3.4/client/Makefile.am.capability 2016-04-29 12:19:40.652129324 +0200 ++++ dhcp-4.3.4/client/Makefile.am 2016-04-29 12:19:40.717129296 +0200 +@@ -13,7 +13,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 @@ -131,10 +131,10 @@ diff -up dhcp-4.3.1b1/client/Makefile.am.zzftXp dhcp-4.3.1b1/client/Makefile.am $(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([[]], +diff -up dhcp-4.3.4/configure.ac.capability dhcp-4.3.4/configure.ac +--- dhcp-4.3.4/configure.ac.capability 2016-04-29 12:19:40.652129324 +0200 ++++ dhcp-4.3.4/configure.ac 2016-04-29 12:19:40.717129296 +0200 +@@ -585,6 +585,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,12 +176,12 @@ diff -up dhcp-4.3.1b1/configure.ac.zzftXp dhcp-4.3.1b1/configure.ac # Solaris needs some libraries for functions AC_SEARCH_LIBS(socket, [socket]) AC_SEARCH_LIBS(inet_ntoa, [nsl]) -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 +diff -up dhcp-4.3.4/relay/dhcrelay.c.capability dhcp-4.3.4/relay/dhcrelay.c +--- dhcp-4.3.4/relay/dhcrelay.c.capability 2016-04-29 12:19:40.694129306 +0200 ++++ dhcp-4.3.4/relay/dhcrelay.c 2016-04-29 12:22:30.278056386 +0200 +@@ -32,6 +32,11 @@ #include + #include +#ifdef HAVE_LIBCAP_NG +# include @@ -191,8 +191,8 @@ diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -376,6 +381,10 @@ main(int argc, char **argv) { - usage(); +@@ -454,6 +459,10 @@ main(int argc, char **argv) { + usage(use_noarg, argv[i-1]); dhcrelay_sub_id = argv[i]; #endif + } else if (!strcmp(argv[i], "-nc")) { @@ -201,8 +201,8 @@ diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c +#endif } else if (!strcmp(argv[i], "-pf")) { if (++i == argc) - usage(); -@@ -446,6 +455,17 @@ main(int argc, char **argv) { + usage(use_noarg, argv[i-1]); +@@ -528,6 +537,17 @@ main(int argc, char **argv) { #endif } @@ -220,7 +220,7 @@ diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/relay/dhcrelay.c if (!quiet) { log_info("%s %s", message, PACKAGE_VERSION); log_info(copyright); -@@ -598,6 +618,15 @@ main(int argc, char **argv) { +@@ -680,6 +700,15 @@ main(int argc, char **argv) { signal(SIGTERM, dhcp_signal_handler); /* kill */ #endif @@ -236,9 +236,9 @@ diff -up dhcp-4.3.1b1/relay/dhcrelay.c.zzftXp dhcp-4.3.1b1/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 +diff -up dhcp-4.3.4/relay/Makefile.am.capability dhcp-4.3.4/relay/Makefile.am +--- dhcp-4.3.4/relay/Makefile.am.capability 2016-04-29 12:19:40.653129323 +0200 ++++ dhcp-4.3.4/relay/Makefile.am 2016-04-29 12:19:40.718129295 +0200 @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst sbin_PROGRAMS = dhcrelay diff --git a/dhcp-client-request-release-bind-iface.patch b/dhcp-client-request-release-bind-iface.patch index e6df2c1..7b9f271 100644 --- a/dhcp-client-request-release-bind-iface.patch +++ b/dhcp-client-request-release-bind-iface.patch @@ -1,8 +1,8 @@ -diff -up dhcp-4.3.1/client/dhclient.c.bind-iface dhcp-4.3.1/client/dhclient.c ---- dhcp-4.3.1/client/dhclient.c.bind-iface 2015-02-03 12:06:57.040989568 +0100 -+++ dhcp-4.3.1/client/dhclient.c 2015-02-03 12:08:28.716684946 +0100 -@@ -2661,6 +2661,14 @@ void send_request (cpp) - +diff -up dhcp-4.3.4/client/dhclient.c.bind-iface dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.bind-iface 2016-04-29 13:06:50.595257108 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:08:30.237281528 +0200 +@@ -3023,6 +3023,14 @@ void send_request (cpp) + #endif if (destination.sin_addr.s_addr != INADDR_BROADCAST && fallback_interface) { +#if defined(SO_BINDTODEVICE) @@ -16,7 +16,7 @@ diff -up dhcp-4.3.1/client/dhclient.c.bind-iface dhcp-4.3.1/client/dhclient.c result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -2670,6 +2678,13 @@ void send_request (cpp) +@@ -3032,6 +3040,13 @@ void send_request (cpp) client->packet_length, fallback_interface->name); } @@ -30,9 +30,9 @@ diff -up dhcp-4.3.1/client/dhclient.c.bind-iface dhcp-4.3.1/client/dhclient.c } else { /* Send out a packet. */ -@@ -2749,6 +2764,14 @@ void send_release (cpp) - ntohs (destination.sin_port), ntohl(client -> xid)); - +@@ -3144,6 +3159,14 @@ void send_release (cpp) + } else + #endif if (fallback_interface) { +#if defined(SO_BINDTODEVICE) + if (setsockopt(fallback_interface -> wfdesc, SOL_SOCKET, @@ -45,7 +45,7 @@ diff -up dhcp-4.3.1/client/dhclient.c.bind-iface dhcp-4.3.1/client/dhclient.c result = send_packet(fallback_interface, NULL, &client->packet, client->packet_length, from, &destination, NULL); -@@ -2758,6 +2781,13 @@ void send_release (cpp) +@@ -3153,6 +3176,13 @@ void send_release (cpp) client->packet_length, fallback_interface->name); } diff --git a/dhcp-default-requested-options.patch b/dhcp-default-requested-options.patch index afda222..f57fa1f 100644 --- a/dhcp-default-requested-options.patch +++ b/dhcp-default-requested-options.patch @@ -1,16 +1,16 @@ -diff -up dhcp-4.3.0a1/client/clparse.c.requested dhcp-4.3.0a1/client/clparse.c ---- dhcp-4.3.0a1/client/clparse.c.requested 2013-12-19 15:13:27.276631307 +0100 -+++ dhcp-4.3.0a1/client/clparse.c 2013-12-19 15:13:27.313630789 +0100 -@@ -37,7 +37,7 @@ +diff -up dhcp-4.3.4/client/clparse.c.requested dhcp-4.3.4/client/clparse.c +--- dhcp-4.3.4/client/clparse.c.requested 2016-04-29 12:18:50.157151352 +0200 ++++ dhcp-4.3.4/client/clparse.c 2016-04-29 12:19:22.235137243 +0200 +@@ -31,7 +31,7 @@ struct client_config top_level_config; -#define NUM_DEFAULT_REQUESTED_OPTS 9 +#define NUM_DEFAULT_REQUESTED_OPTS 14 - struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 1]; + /* There can be 2 extra requested options for DHCPv4-over-DHCPv6. */ + struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 2 + 1]; - static void parse_client_default_duid(struct parse *cfile); -@@ -119,6 +119,31 @@ isc_result_t read_client_conf () +@@ -116,6 +116,31 @@ isc_result_t read_client_conf () option_code_hash_lookup(&default_requested_options[8], dhcpv6_universe.code_hash, &code, 0, MDL); diff --git a/dhcp-dhclient-decline-backoff.patch b/dhcp-dhclient-decline-backoff.patch index 3e52e64..645f931 100644 --- a/dhcp-dhclient-decline-backoff.patch +++ b/dhcp-dhclient-decline-backoff.patch @@ -1,7 +1,7 @@ -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) +diff -up dhcp-4.3.4/client/dhclient.c.backoff dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.backoff 2016-04-29 12:16:26.976245611 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:16:26.979245609 +0200 +@@ -1423,6 +1423,8 @@ void state_init (cpp) void *cpp; { struct client_state *client = cpp; @@ -10,7 +10,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c ASSERT_STATE(state, S_INIT); -@@ -1293,9 +1295,18 @@ void state_init (cpp) +@@ -1435,9 +1437,18 @@ void state_init (cpp) client -> first_sending = cur_time; client -> interval = client -> config -> initial_interval; @@ -32,7 +32,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c } /* -@@ -1592,6 +1603,7 @@ void bind_lease (client) +@@ -1734,6 +1745,7 @@ void bind_lease (client) "try (declined). Exiting."); exit(2); } else { @@ -40,7 +40,7 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c state_init(client); return; } -@@ -4059,6 +4071,7 @@ void client_location_changed () +@@ -4626,6 +4638,7 @@ void client_location_changed () case S_INIT: case S_REBINDING: case S_STOPPED: @@ -48,10 +48,10 @@ diff -up dhcp-4.3.1b1/client/dhclient.c.JwFUZj dhcp-4.3.1b1/client/dhclient.c break; } client -> state = S_INIT; -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 { +diff -up dhcp-4.3.4/includes/dhcpd.h.backoff dhcp-4.3.4/includes/dhcpd.h +--- dhcp-4.3.4/includes/dhcpd.h.backoff 2016-04-29 12:16:26.980245609 +0200 ++++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:17:30.893203533 +0200 +@@ -1171,7 +1171,8 @@ enum dhcp_state { S_BOUND = 5, S_RENEWING = 6, S_REBINDING = 7, @@ -60,4 +60,4 @@ diff -up dhcp-4.3.1b1/includes/dhcpd.h.JwFUZj dhcp-4.3.1b1/includes/dhcpd.h + S_DECLINED = 9 }; - /* Authentication and BOOTP policy possibilities (not all values work + /* Possible pending client operations. */ diff --git a/dhcp-dhclient-options.patch b/dhcp-dhclient-options.patch index c293118..29e685e 100644 --- a/dhcp-dhclient-options.patch +++ b/dhcp-dhclient-options.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.3b1/client/clparse.c.options dhcp-4.3.3b1/client/clparse.c ---- dhcp-4.3.3b1/client/clparse.c.options 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/client/clparse.c 2015-08-10 10:44:46.958074760 +0200 -@@ -148,6 +148,7 @@ isc_result_t read_client_conf () +diff -up dhcp-4.3.4/client/clparse.c.options dhcp-4.3.4/client/clparse.c +--- dhcp-4.3.4/client/clparse.c.options 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/client/clparse.c 2016-04-29 12:06:13.485470579 +0200 +@@ -189,6 +189,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.3b1/client/clparse.c.options dhcp-4.3.3b1/client/clparse.c group_allocate (&top_level_config.on_receipt, MDL); if (!top_level_config.on_receipt) -@@ -353,7 +354,8 @@ void read_client_leases () +@@ -394,7 +395,8 @@ void read_client_leases () interface-declaration | LEASE client-lease-statement | ALIAS client-lease-statement | @@ -19,9 +19,9 @@ diff -up dhcp-4.3.3b1/client/clparse.c.options dhcp-4.3.3b1/client/clparse.c void parse_client_statement (cfile, ip, config) struct parse *cfile; -@@ -771,6 +773,12 @@ void parse_client_statement (cfile, ip, - parse_reject_statement (cfile, config); - return; +@@ -817,6 +819,12 @@ void parse_client_statement (cfile, ip, + parse_lease_id_format(cfile); + break; + case BOOTP_BROADCAST_ALWAYS: + token = next_token(&val, (unsigned*)0, cfile); @@ -29,13 +29,13 @@ diff -up dhcp-4.3.3b1/client/clparse.c.options dhcp-4.3.3b1/client/clparse.c + parse_semi (cfile); + return; + + default: lose = 0; - stmt = (struct executable_statement *)0; -diff -up dhcp-4.3.3b1/client/dhclient.8.options dhcp-4.3.3b1/client/dhclient.8 ---- dhcp-4.3.3b1/client/dhclient.8.options 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/client/dhclient.8 2015-08-10 10:44:46.958074760 +0200 -@@ -128,6 +128,33 @@ dhclient - Dynamic Host Configuration Pr +diff -up dhcp-4.3.4/client/dhclient.8.options dhcp-4.3.4/client/dhclient.8 +--- dhcp-4.3.4/client/dhclient.8.options 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/client/dhclient.8 2016-04-29 11:59:50.446590077 +0200 +@@ -134,6 +134,33 @@ dhclient - Dynamic Host Configuration Pr .B -w ] [ @@ -69,7 +69,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.8.options dhcp-4.3.3b1/client/dhclient.8 .B -v ] [ -@@ -275,6 +302,69 @@ not to exit when it doesn't find any suc +@@ -289,6 +316,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,11 +139,11 @@ diff -up dhcp-4.3.3b1/client/dhclient.8.options dhcp-4.3.3b1/client/dhclient.8 .TP .BI \-n Do not configure any interfaces. This is most likely to be useful in -diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c ---- dhcp-4.3.3b1/client/dhclient.c.options 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/client/dhclient.c 2015-08-10 10:44:46.959074757 +0200 -@@ -39,6 +39,12 @@ - #include +diff -up dhcp-4.3.4/client/dhclient.c.options dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.options 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:12:14.182364093 +0200 +@@ -40,6 +40,12 @@ + #include #include +/* @@ -155,20 +155,34 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ -@@ -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; +@@ -100,6 +106,10 @@ char *mockup_relay = NULL; + + char *progname = NULL; + +int bootp_broadcast_always = 0; + +extern struct option *default_requested_options[]; ++ + void run_stateless(int exit_mode, u_int16_t port); + + static isc_result_t write_duid(struct data_string *duid); +@@ -177,7 +187,11 @@ usage(const char *sfmt, const char *sarg + " [-s server-addr] [-cf config-file]\n" + " [-df duid-file] [-lf lease-file]\n" + " [-pf pid-file] [--no-pid] [-e VAR=val]\n" +- " [-sf script-file] [interface]*", ++ " [-sf script-file] [interface]*\n" ++ " [-C ] [-B]\n" ++ " [-H | -F ] [-timeout ]\n" ++ " [-V ]\n" ++ " [-R ]", + isc_file_basename(progname)); + } - void run_stateless(int exit_mode); +@@ -214,6 +228,16 @@ main(int argc, char **argv) { + progname = argv[0]; + #endif -@@ -128,6 +137,15 @@ main(int argc, char **argv) { - int local_family_set = 0; - #endif /* DHCPv6 */ - char *s; + char *dhcp_client_identifier_arg = NULL; + char *dhcp_host_name_arg = NULL; + char *dhcp_fqdn_arg = NULL; @@ -178,16 +192,17 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + int timeout_arg = 0; + char *arg_conf = NULL; + int arg_conf_len = 0; - ++ /* Initialize client globals. */ memset(&default_duid, 0, sizeof(default_duid)); -@@ -328,6 +346,88 @@ main(int argc, char **argv) { + +@@ -431,6 +455,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')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + @@ -201,7 +216,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + bootp_broadcast_always = 1; + } else if (!strcmp(argv[i], "-H")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + @@ -218,7 +233,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + dhcp_host_name_arg = argv[i]; + } else if (!strcmp(argv[i], "-F")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + @@ -240,7 +255,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + dhcp_fqdn_arg = argv[i]; + } else if (!strcmp(argv[i], "-timeout")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + @@ -250,7 +265,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + } + } else if (!strcmp(argv[i], "-V")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + @@ -262,15 +277,15 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c + dhcp_vendor_class_identifier_arg = argv[i]; + } else if (!strcmp(argv[i], "-R")) { + if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) { -+ usage(); ++ usage(use_noarg, argv[i-1]); + exit(1); + } + + dhclient_request_options = argv[i]; } else if (argv[i][0] == '-') { - usage(); + usage("Unknown command: %s", argv[i]); } else if (interfaces_requested < 0) { -@@ -510,6 +610,156 @@ main(int argc, char **argv) { +@@ -630,6 +736,156 @@ main(int argc, char **argv) { /* Parse the dhclient.conf file. */ read_client_conf(); @@ -427,18 +442,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c /* Parse the lease database. */ read_client_leases(); -@@ -759,6 +1009,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" -+ " [-V ]\n" -+ " [-R ]\n" - " [-sf script-file] [interface]"); - } - -@@ -2532,7 +2786,8 @@ void make_discover (client, lease) +@@ -3067,7 +3323,8 @@ void make_discover (client, lease) client -> packet.xid = random (); client -> packet.secs = 0; /* filled in by send_discover. */ @@ -448,7 +452,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -2616,7 +2871,9 @@ void make_request (client, lease) +@@ -3152,7 +3409,9 @@ void make_request (client, lease) } else { memset (&client -> packet.ciaddr, 0, sizeof client -> packet.ciaddr); @@ -459,7 +463,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -@@ -2678,7 +2935,8 @@ void make_decline (client, lease) +@@ -3215,7 +3474,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,41 +473,41 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.options dhcp-4.3.3b1/client/dhclient.c client -> packet.flags = 0; else client -> packet.flags = htons (BOOTP_BROADCAST); -diff -up dhcp-4.3.3b1/common/conflex.c.options dhcp-4.3.3b1/common/conflex.c ---- dhcp-4.3.3b1/common/conflex.c.options 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/conflex.c 2015-08-10 10:44:46.959074757 +0200 -@@ -827,6 +827,8 @@ intern(char *atom, enum dhcp_token dfv) - return BALANCE; - if (!strcasecmp (atom + 1, "ound")) - return BOUND; +diff -up dhcp-4.3.4/common/conflex.c.options dhcp-4.3.4/common/conflex.c +--- dhcp-4.3.4/common/conflex.c.options 2016-04-29 11:59:50.448590077 +0200 ++++ dhcp-4.3.4/common/conflex.c 2016-04-29 12:13:23.637342420 +0200 +@@ -832,6 +832,8 @@ intern(char *atom, enum dhcp_token dfv) + if (!strcasecmp(atom+1, "ig-endian")) { + return TOKEN_BIG_ENDIAN; + } + if (!strcasecmp (atom + 1, "ootp-broadcast-always")) + return BOOTP_BROADCAST_ALWAYS; break; case 'c': if (!strcasecmp(atom + 1, "ase")) -diff -up dhcp-4.3.3b1/includes/dhcpd.h.options dhcp-4.3.3b1/includes/dhcpd.h ---- dhcp-4.3.3b1/includes/dhcpd.h.options 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/includes/dhcpd.h 2015-08-10 10:44:46.960074753 +0200 -@@ -1228,6 +1228,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. */ +diff -up dhcp-4.3.4/includes/dhcpd.h.options dhcp-4.3.4/includes/dhcpd.h +--- dhcp-4.3.4/includes/dhcpd.h.options 2016-04-29 11:59:50.448590077 +0200 ++++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:14:05.361329401 +0200 +@@ -1246,6 +1246,9 @@ struct client_config { + + int lease_id_format; /* format for IDs in lease file, + TOKEN_OCTAL or TOKEN_HEX */ + + int bootp_broadcast_always; /* If nonzero, always set the BOOTP_BROADCAST + flag in requests */ }; /* Per-interface state used in the dhcp client... */ -diff -up dhcp-4.3.3b1/includes/dhctoken.h.options dhcp-4.3.3b1/includes/dhctoken.h ---- dhcp-4.3.3b1/includes/dhctoken.h.options 2015-08-10 10:44:46.960074753 +0200 -+++ dhcp-4.3.3b1/includes/dhctoken.h 2015-08-10 10:45:58.055829616 +0200 -@@ -368,7 +368,8 @@ enum dhcp_token { - POOL6 = 669, - V6RELAY = 670, - V6RELOPT = 671, -- PARSE_VENDOR_OPT = 672 -+ PARSE_VENDOR_OPT = 672, -+ BOOTP_BROADCAST_ALWAYS = 673 +diff -up dhcp-4.3.4/includes/dhctoken.h.options dhcp-4.3.4/includes/dhctoken.h +--- dhcp-4.3.4/includes/dhctoken.h.options 2016-04-29 11:59:50.449590076 +0200 ++++ dhcp-4.3.4/includes/dhctoken.h 2016-04-29 12:15:03.073300846 +0200 +@@ -373,7 +373,8 @@ enum dhcp_token { + TOKEN_BIG_ENDIAN = 675, + LEASE_ID_FORMAT = 676, + TOKEN_HEX = 677, +- TOKEN_OCTAL = 678 ++ TOKEN_OCTAL = 678, ++ BOOTP_BROADCAST_ALWAYS = 679 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ diff --git a/dhcp-dhclient-preinit6s.patch b/dhcp-dhclient-preinit6s.patch index 1fd158d..0ce1cf8 100644 --- a/dhcp-dhclient-preinit6s.patch +++ b/dhcp-dhclient-preinit6s.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.3/client/dhclient.c.preinit6s dhcp-4.3.3/client/dhclient.c ---- dhcp-4.3.3/client/dhclient.c.preinit6s 2015-09-22 16:42:27.211145636 +0200 -+++ dhcp-4.3.3/client/dhclient.c 2015-09-22 16:42:54.826112762 +0200 -@@ -691,6 +691,12 @@ main(int argc, char **argv) { +diff -up dhcp-4.3.4/client/dhclient.c.preinit6s dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.preinit6s 2016-04-29 13:15:10.361379493 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:17:43.622415423 +0200 +@@ -812,6 +812,12 @@ main(int argc, char **argv) { inaddr_any.s_addr = INADDR_ANY; @@ -14,7 +14,7 @@ diff -up dhcp-4.3.3/client/dhclient.c.preinit6s dhcp-4.3.3/client/dhclient.c /* Stateless special case. */ if (stateless) { if (release_mode || (wanted_ia_na > 0) || -@@ -702,12 +708,6 @@ main(int argc, char **argv) { +@@ -828,12 +834,6 @@ main(int argc, char **argv) { return 0; } @@ -27,20 +27,26 @@ diff -up dhcp-4.3.3/client/dhclient.c.preinit6s dhcp-4.3.3/client/dhclient.c /* Parse any extra command line configuration arguments: */ if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) { arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg); -@@ -1169,15 +1169,23 @@ void run_stateless(int exit_mode) - struct client_state *client; - omapi_object_t *listener; - isc_result_t result; -- +@@ -1288,20 +1288,30 @@ void run_stateless(int exit_mode, u_int1 + IGNORE_UNUSED(port); + #endif + - /* Discover the network interface. */ - discover_interfaces(DISCOVER_REQUESTED); + struct interface_info *ip; if (!interfaces) - usage(); + usage("No interfaces available for stateless command: %s", "-S"); - /* Parse the dhclient.conf file. */ + #ifdef DHCP4o6 + if (dhcpv4_over_dhcpv6) { + /* Mark we want to request IRT too! */ + dhcpv4_over_dhcpv6++; + } + #endif - read_client_conf(); ++ + for (ip = interfaces; ip; ip = ip->next) { + if ((interfaces_requested > 0) && + ((ip->flags & (INTERFACE_REQUESTED | diff --git a/dhcp-duid_uuid.patch b/dhcp-duid_uuid.patch index 7fe5cb6..f90bc4a 100644 --- a/dhcp-duid_uuid.patch +++ b/dhcp-duid_uuid.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.3/client/dhclient.c.duid_uuid dhcp-4.3.3/client/dhclient.c ---- dhcp-4.3.3/client/dhclient.c.duid_uuid 2015-12-14 12:10:54.694082625 +0100 -+++ dhcp-4.3.3/client/dhclient.c 2015-12-14 12:13:19.538018362 +0100 -@@ -3328,6 +3328,59 @@ write_options(struct client_state *clien +diff -up dhcp-4.3.4/client/dhclient.c.duid_uuid dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.duid_uuid 2016-04-29 12:58:14.846150838 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:58:14.851150839 +0200 +@@ -3868,6 +3868,59 @@ write_options(struct client_state *clien } } @@ -61,7 +61,7 @@ diff -up dhcp-4.3.3/client/dhclient.c.duid_uuid dhcp-4.3.3/client/dhclient.c /* * The "best" default DUID, since we cannot predict any information * about the system (such as whether or not the hardware addresses are -@@ -3348,6 +3401,7 @@ form_duid(struct data_string *duid, cons +@@ -3888,6 +3941,7 @@ form_duid(struct data_string *duid, cons struct interface_info *ip; int len; char *str; @@ -69,7 +69,7 @@ diff -up dhcp-4.3.3/client/dhclient.c.duid_uuid dhcp-4.3.3/client/dhclient.c /* For now, just use the first interface on the list. */ ip = interfaces; -@@ -3368,9 +3422,16 @@ form_duid(struct data_string *duid, cons +@@ -3908,9 +3962,16 @@ form_duid(struct data_string *duid, cons (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf))) log_fatal("Impossible hardware address length at %s:%d.", MDL); @@ -89,7 +89,7 @@ diff -up dhcp-4.3.3/client/dhclient.c.duid_uuid dhcp-4.3.3/client/dhclient.c /* * 2 bytes for the 'duid type' field. * 2 bytes for the 'htype' field. -@@ -3381,13 +3442,18 @@ form_duid(struct data_string *duid, cons +@@ -3921,13 +3982,18 @@ form_duid(struct data_string *duid, cons len = 4 + (ip->hw_address.hlen - 1); if (duid_type == DUID_LLT) len += 4; @@ -109,15 +109,3 @@ diff -up dhcp-4.3.3/client/dhclient.c.duid_uuid dhcp-4.3.3/client/dhclient.c putUShort(duid->buffer->data, DUID_LLT); putUShort(duid->buffer->data + 2, ip->hw_address.hbuf[0]); putULong(duid->buffer->data + 4, cur_time - DUID_TIME_EPOCH); -diff -up dhcp-4.3.3/includes/dhcp6.h.duid_uuid dhcp-4.3.3/includes/dhcp6.h ---- dhcp-4.3.3/includes/dhcp6.h.duid_uuid 2015-08-26 21:13:14.000000000 +0200 -+++ dhcp-4.3.3/includes/dhcp6.h 2015-12-14 12:12:33.258038895 +0100 -@@ -119,6 +119,8 @@ extern const int dhcpv6_type_name_max; - #define DUID_LLT 1 - #define DUID_EN 2 - #define DUID_LL 3 -+/* RFC6355 */ -+#define DUID_UUID 4 - - /* Offsets into IA_*'s where Option spaces commence. */ - #define IA_NA_OFFSET 12 /* IAID, T1, T2, all 4 octets each */ diff --git a/dhcp-improved-xid.patch b/dhcp-improved-xid.patch index 3ccfb67..69a6975 100644 --- a/dhcp-improved-xid.patch +++ b/dhcp-improved-xid.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c ---- dhcp-4.3.2/client/dhclient.c.improved-xid 2015-06-24 18:55:36.775988325 +0200 -+++ dhcp-4.3.2/client/dhclient.c 2015-06-24 18:56:41.598810344 +0200 -@@ -916,6 +916,26 @@ main(int argc, char **argv) { +diff -up dhcp-4.3.4/client/dhclient.c.improved-xid dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.improved-xid 2016-04-29 12:54:55.997102182 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 12:57:25.123139587 +0200 +@@ -1045,6 +1045,26 @@ main(int argc, char **argv) { } } @@ -28,7 +28,7 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c /* At this point, all the interfaces that the script thinks are relevant should be running, so now we once again call discover_interfaces(), and this time ask it to actually set -@@ -930,14 +950,36 @@ main(int argc, char **argv) { +@@ -1059,14 +1079,36 @@ main(int argc, char **argv) { Not much entropy, but we're booting, so we're not likely to find anything better. */ seed = 0; @@ -66,7 +66,7 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c /* Setup specific Infiniband options */ for (ip = interfaces; ip; ip = ip->next) { -@@ -1491,7 +1533,7 @@ void dhcpack (packet) +@@ -1633,7 +1675,7 @@ void dhcpack (packet) return; } @@ -75,7 +75,7 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c lease = packet_to_lease (packet, client); if (!lease) { -@@ -2211,7 +2253,7 @@ void dhcpnak (packet) +@@ -2541,7 +2583,7 @@ void dhcpnak (packet) return; } @@ -84,10 +84,10 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c if (!client -> active) { #if defined (DEBUG) -@@ -2338,10 +2380,10 @@ void send_discover (cpp) - client -> packet.secs = htons (65535); - client -> secs = client -> packet.secs; - +@@ -2674,10 +2716,10 @@ void send_discover (cpp) + (long)(client -> interval)); + } else + #endif - log_info ("DHCPDISCOVER on %s to %s port %d interval %ld", + log_info ("DHCPDISCOVER on %s to %s port %d interval %ld (xid=0x%x)", client -> name ? client -> name : client -> interface -> name, @@ -96,11 +96,11 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c + ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval), ntohl(client -> xid)); /* Send out a packet. */ - result = send_packet(client->interface, NULL, &client->packet, -@@ -2610,10 +2652,10 @@ void send_request (cpp) - client -> packet.secs = htons (65535); - } - + #if defined(DHCPv6) && defined(DHCP4o6) +@@ -2962,10 +3004,10 @@ void send_request (cpp) + log_info ("DHCPREQUEST"); + } else + #endif - log_info ("DHCPREQUEST on %s to %s port %d", + log_info ("DHCPREQUEST on %s to %s port %d (xid=0x%x)", client -> name ? client -> name : client -> interface -> name, @@ -108,12 +108,12 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c - ntohs (destination.sin_port)); + ntohs (destination.sin_port), ntohl(client -> xid)); - if (destination.sin_addr.s_addr != INADDR_BROADCAST && - fallback_interface) { -@@ -2653,10 +2695,10 @@ void send_decline (cpp) - - int result; - + #if defined(DHCPv6) && defined(DHCP4o6) + if (dhcpv4_over_dhcpv6) { +@@ -3022,10 +3064,10 @@ void send_decline (cpp) + log_info ("DHCPDECLINE"); + } else + #endif - log_info ("DHCPDECLINE on %s to %s port %d", + log_info ("DHCPDECLINE on %s to %s port %d (xid=0x%x)", client->name ? client->name : client->interface->name, @@ -122,11 +122,11 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c + ntohs(sockaddr_broadcast.sin_port), ntohl(client -> xid)); /* Send out a packet. */ - result = send_packet(client->interface, NULL, &client->packet, -@@ -2699,10 +2741,10 @@ void send_release (cpp) - return; - } - + #if defined(DHCPv6) && defined(DHCP4o6) +@@ -3084,10 +3126,10 @@ void send_release (cpp) + log_info ("DHCPRELEASE"); + } else + #endif - log_info ("DHCPRELEASE on %s to %s port %d", + log_info ("DHCPRELEASE on %s to %s port %d (xid=0x%x)", client -> name ? client -> name : client -> interface -> name, @@ -134,5 +134,5 @@ diff -up dhcp-4.3.2/client/dhclient.c.improved-xid dhcp-4.3.2/client/dhclient.c - ntohs (destination.sin_port)); + ntohs (destination.sin_port), ntohl(client -> xid)); - if (fallback_interface) { - result = send_packet(fallback_interface, NULL, &client->packet, + #if defined(DHCPv6) && defined(DHCP4o6) + if (dhcpv4_over_dhcpv6) { diff --git a/dhcp-lpf-ib.patch b/dhcp-lpf-ib.patch index 1df6303..766d518 100644 --- a/dhcp-lpf-ib.patch +++ b/dhcp-lpf-ib.patch @@ -1,16 +1,16 @@ -diff -up dhcp-4.3.3b1/client/dhclient.c.lpf-ib dhcp-4.3.3b1/client/dhclient.c ---- dhcp-4.3.3b1/client/dhclient.c.lpf-ib 2015-08-10 10:58:17.659350415 +0200 -+++ dhcp-4.3.3b1/client/dhclient.c 2015-08-10 11:44:15.428321587 +0200 -@@ -117,6 +117,8 @@ static int check_option_values(struct un - static void dhclient_ddns_cb_free(dhcp_ddns_cb_t *ddns_cb, - char* file, int line); +diff -up dhcp-4.3.4/client/dhclient.c.lpf-ib dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.lpf-ib 2016-05-02 14:37:36.945128001 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-05-02 14:37:36.952128005 +0200 +@@ -163,6 +163,8 @@ static const char use_noarg[] = "No argu + static const char use_v6command[] = "Command not used for DHCPv4: %s"; + #endif +static void setup_ib_interface(struct interface_info *ip); + - #ifndef UNIT_TEST - int - main(int argc, char **argv) { -@@ -940,6 +942,13 @@ main(int argc, char **argv) { + static void + usage(const char *sfmt, const char *sarg) + { +@@ -1066,6 +1068,13 @@ main(int argc, char **argv) { } srandom(seed + cur_time + (unsigned)getpid()); @@ -24,7 +24,7 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.lpf-ib dhcp-4.3.3b1/client/dhclient.c /* * Establish a default DUID. We always do so for v6 and -@@ -1231,6 +1240,29 @@ int find_subnet (struct subnet **sp, +@@ -1361,6 +1370,29 @@ int find_subnet (struct subnet **sp, return 0; } @@ -54,10 +54,10 @@ diff -up dhcp-4.3.3b1/client/dhclient.c.lpf-ib dhcp-4.3.3b1/client/dhclient.c /* Individual States: * * Each routine is called from the dhclient_state_machine() in one of -diff -up dhcp-4.3.3b1/common/bpf.c.lpf-ib dhcp-4.3.3b1/common/bpf.c ---- dhcp-4.3.3b1/common/bpf.c.lpf-ib 2015-08-10 10:58:17.659350415 +0200 -+++ dhcp-4.3.3b1/common/bpf.c 2015-08-10 10:58:17.668350384 +0200 -@@ -199,11 +199,44 @@ struct bpf_insn dhcp_bpf_filter [] = { +diff -up dhcp-4.3.4/common/bpf.c.lpf-ib dhcp-4.3.4/common/bpf.c +--- dhcp-4.3.4/common/bpf.c.lpf-ib 2016-05-02 14:37:36.946128001 +0200 ++++ dhcp-4.3.4/common/bpf.c 2016-05-02 14:37:36.952128005 +0200 +@@ -198,11 +198,43 @@ struct bpf_insn dhcp_bpf_filter [] = { BPF_STMT(BPF_RET+BPF_K, 0), }; @@ -93,18 +93,38 @@ diff -up dhcp-4.3.3b1/common/bpf.c.lpf-ib dhcp-4.3.3b1/common/bpf.c +}; + #if defined (DEC_FDDI) - struct bpf_insn *bpf_fddi_filter; + struct bpf_insn *bpf_fddi_filter = NULL; #endif int dhcp_bpf_filter_len = sizeof dhcp_bpf_filter / sizeof (struct bpf_insn); +int dhcp_ib_bpf_filter_len = sizeof dhcp_ib_bpf_filter / sizeof (struct bpf_insn); -+ #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.3b1/common/lpf.c.lpf-ib dhcp-4.3.3b1/common/lpf.c ---- dhcp-4.3.3b1/common/lpf.c.lpf-ib 2015-08-10 10:58:17.660350412 +0200 -+++ dhcp-4.3.3b1/common/lpf.c 2015-08-10 11:45:17.962084958 +0200 +diff -up dhcp-4.3.4/common/discover.c.lpf-ib dhcp-4.3.4/common/discover.c +--- dhcp-4.3.4/common/discover.c.lpf-ib 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/discover.c 2016-05-02 14:38:08.257147982 +0200 +@@ -1235,7 +1235,7 @@ discover_interfaces(int state) { + if_register_send(tmp); + } else { + /* get_hw_addr() was called by register. */ +- get_hw_addr(tmp->name, &tmp->hw_address); ++ get_hw_addr(tmp); + } + break; + #ifdef DHCPv6 +@@ -1248,7 +1248,7 @@ discover_interfaces(int state) { + so now we have to call it explicitly + to not leave the hardware address unknown + (some code expects it cannot be. */ +- get_hw_addr(tmp->name, &tmp->hw_address); ++ get_hw_addr(tmp); + } else { + if_register_linklocal6(tmp); + } +diff -up dhcp-4.3.4/common/lpf.c.lpf-ib dhcp-4.3.4/common/lpf.c +--- dhcp-4.3.4/common/lpf.c.lpf-ib 2016-05-02 14:37:36.947128002 +0200 ++++ dhcp-4.3.4/common/lpf.c 2016-05-02 14:37:36.953128006 +0200 @@ -47,6 +47,17 @@ #include #include @@ -523,9 +543,9 @@ diff -up dhcp-4.3.3b1/common/lpf.c.lpf-ib dhcp-4.3.3b1/common/lpf.c + freeifaddrs(ifaddrs); } #endif -diff -up dhcp-4.3.3b1/common/socket.c.lpf-ib dhcp-4.3.3b1/common/socket.c ---- dhcp-4.3.3b1/common/socket.c.lpf-ib 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/socket.c 2015-08-10 10:58:17.669350380 +0200 +diff -up dhcp-4.3.4/common/socket.c.lpf-ib dhcp-4.3.4/common/socket.c +--- dhcp-4.3.4/common/socket.c.lpf-ib 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/socket.c 2016-05-02 14:37:36.953128006 +0200 @@ -328,7 +328,7 @@ void if_register_send (info) info->wfdesc = if_register_socket(info, AF_INET, 0, NULL); /* If this is a normal IPv4 address, get the hardware address. */ @@ -562,10 +582,10 @@ diff -up dhcp-4.3.3b1/common/socket.c.lpf-ib dhcp-4.3.3b1/common/socket.c if (!quiet_interface_discovery) { if (info->shared_network != NULL) { -diff -up dhcp-4.3.3b1/includes/dhcpd.h.lpf-ib dhcp-4.3.3b1/includes/dhcpd.h ---- dhcp-4.3.3b1/includes/dhcpd.h.lpf-ib 2015-08-10 10:58:17.660350412 +0200 -+++ dhcp-4.3.3b1/includes/dhcpd.h 2015-08-10 10:58:17.669350380 +0200 -@@ -476,6 +476,9 @@ struct packet { +diff -up dhcp-4.3.4/includes/dhcpd.h.lpf-ib dhcp-4.3.4/includes/dhcpd.h +--- dhcp-4.3.4/includes/dhcpd.h.lpf-ib 2016-05-02 14:37:36.948128002 +0200 ++++ dhcp-4.3.4/includes/dhcpd.h 2016-05-02 14:37:36.954128006 +0200 +@@ -482,6 +482,9 @@ struct packet { #define HARDWARE_ADDR_LEN 20 @@ -575,7 +595,7 @@ diff -up dhcp-4.3.3b1/includes/dhcpd.h.lpf-ib dhcp-4.3.3b1/includes/dhcpd.h struct hardware { u_int8_t hlen; u_int8_t hbuf[HARDWARE_ADDR_LEN + 1]; -@@ -1324,6 +1327,7 @@ struct interface_info { +@@ -1343,6 +1346,7 @@ struct interface_info { struct shared_network *shared_network; /* Networks connected to this interface. */ struct hardware hw_address; /* Its physical address. */ @@ -583,12 +603,12 @@ diff -up dhcp-4.3.3b1/includes/dhcpd.h.lpf-ib dhcp-4.3.3b1/includes/dhcpd.h struct in_addr *addresses; /* Addresses associated with this * interface. */ -@@ -2545,7 +2549,7 @@ void print_dns_status (int, struct dhcp_ +@@ -2580,7 +2584,7 @@ void print_dns_status (int, struct dhcp_ #endif const char *print_time(TIME); -void get_hw_addr(const char *name, struct hardware *hw); +void get_hw_addr(struct interface_info *info); - - /* socket.c */ - #if defined (USE_SOCKET_SEND) || defined (USE_SOCKET_RECEIVE) \ + char *buf_to_hex (const unsigned char *s, unsigned len, + const char *file, int line); + char *format_lease_id(const unsigned char *s, unsigned len, int format, diff --git a/dhcp-omapi-leak.patch b/dhcp-omapi-leak.patch deleted file mode 100644 index e0486f8..0000000 --- a/dhcp-omapi-leak.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up dhcp-4.3.0a1/server/db.c.leak dhcp-4.3.0a1/server/db.c ---- dhcp-4.3.0a1/server/db.c.leak 2013-12-20 13:39:51.629774500 +0100 -+++ dhcp-4.3.0a1/server/db.c 2013-12-20 13:39:51.673773887 +0100 -@@ -416,6 +416,7 @@ int write_host (host) - fputc (';', db_file); - if (errno) - ++errors; -+ data_string_forget (&ip_addrs, MDL); - } - - if (host -> named_group) { -diff -up dhcp-4.3.0a1/server/omapi.c.leak dhcp-4.3.0a1/server/omapi.c ---- dhcp-4.3.0a1/server/omapi.c.leak 2013-12-11 01:25:12.000000000 +0100 -+++ dhcp-4.3.0a1/server/omapi.c 2013-12-20 13:39:51.674773873 +0100 -@@ -1133,8 +1133,6 @@ isc_result_t dhcp_host_destroy (omapi_ob - if (h -> type != dhcp_type_host) - return DHCP_R_INVALIDARG; - --#if defined (DEBUG_MEMORY_LEAKAGE) || \ -- defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT) - struct host_decl *host = (struct host_decl *)h; - if (host -> n_ipaddr) - host_dereference (&host -> n_ipaddr, file, line); -@@ -1153,7 +1151,6 @@ isc_result_t dhcp_host_destroy (omapi_ob - omapi_object_dereference ((omapi_object_t **) - &host -> named_group, file, line); - data_string_forget (&host -> auth_key_id, file, line); --#endif - - return ISC_R_SUCCESS; - } -@@ -1239,6 +1236,7 @@ isc_result_t dhcp_host_stuff_values (oma - ip_addrs.data, ip_addrs.len); - if (status != ISC_R_SUCCESS) - return status; -+ data_string_forget (&ip_addrs, MDL); - } - - if (host -> client_identifier.len) { diff --git a/dhcp-remove-bind.patch b/dhcp-remove-bind.patch index fda110e..3676f12 100644 --- a/dhcp-remove-bind.patch +++ b/dhcp-remove-bind.patch @@ -1,63 +1,84 @@ -diff -up dhcp-4.3.3b1/client/Makefile.am.remove-bind dhcp-4.3.3b1/client/Makefile.am ---- dhcp-4.3.3b1/client/Makefile.am.remove-bind 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/client/Makefile.am 2015-08-10 10:20:26.373965596 +0200 -@@ -10,8 +10,8 @@ dhclient_SOURCES = clparse.c dhclient.c +diff -up dhcp-4.3.4/client/Makefile.am.remove-bind dhcp-4.3.4/client/Makefile.am +--- dhcp-4.3.4/client/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/client/Makefile.am 2016-04-29 14:13:50.335204352 +0200 +@@ -4,8 +4,6 @@ + # production code. Sadly, we are not there yet. + SUBDIRS = . tests + +-BINDLIBDIR = @BINDDIR@/lib +- + AM_CPPFLAGS = -DCLIENT_PATH='"PATH=$(sbindir):/sbin:/bin:/usr/sbin:/usr/bin"' \ + -DLOCALSTATEDIR='"$(localstatedir)"' + +@@ -15,7 +13,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.a ../bind/lib/libirs.a \ -- ../bind/lib/libdns.a ../bind/lib/libisccfg.a ../bind/lib/libisc.a +-dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a +dhclient_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ + $(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.4/common/tests/Makefile.am.remove-bind dhcp-4.3.4/common/tests/Makefile.am +--- dhcp-4.3.4/common/tests/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/tests/Makefile.am 2016-04-29 14:13:50.335204352 +0200 +@@ -1,7 +1,5 @@ + SUBDIRS = . -diff -up dhcp-4.3.3b1/common/tests/Makefile.am.remove-bind dhcp-4.3.3b1/common/tests/Makefile.am ---- dhcp-4.3.3b1/common/tests/Makefile.am.remove-bind 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/tests/Makefile.am 2015-08-10 10:20:26.373965596 +0200 -@@ -13,14 +13,14 @@ ATF_TESTS += alloc_unittest dns_unittest +-BINDLIBDIR = @BINDDIR@/lib +- + AM_CPPFLAGS = $(ATF_CFLAGS) -I$(top_srcdir)/includes + + EXTRA_DIST = Atffile +@@ -15,26 +13,26 @@ 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 \ -- ../../omapip/libomapi.a ../../bind/lib/libirs.a \ -- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a +- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a + ../../omapip/libomapi.a \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export dns_unittest_SOURCES = dns_unittest.c $(top_srcdir)/tests/t_api_dhcp.c dns_unittest_LDADD = $(ATF_LDFLAGS) 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 $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/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) -@@ -31,8 +31,8 @@ misc_unittest_LDADD += ../libdhcp.a \ + misc_unittest_LDADD += ../libdhcp.a \ +- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a ++ ../../omapip/libomapi.a \ ++ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export + ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c ns_name_unittest_LDADD = $(ATF_LDFLAGS) ns_name_unittest_LDADD += ../libdhcp.a \ -- ../../omapip/libomapi.a ../../bind/lib/libirs.a \ -- ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a +- ../../omapip/libomapi.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a + ../../omapip/libomapi.a \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export check: $(ATF_TESTS) - sh ${top_srcdir}/tests/unittest.sh -diff -up dhcp-4.3.3b1/configure.ac.remove-bind dhcp-4.3.3b1/configure.ac ---- dhcp-4.3.3b1/configure.ac.remove-bind 2015-07-30 21:02:23.000000000 +0200 -+++ dhcp-4.3.3b1/configure.ac 2015-08-10 10:31:02.761852511 +0200 -@@ -606,23 +606,40 @@ AC_CHECK_MEMBER(struct tpacket_auxdata.t - - libbind= + -cp -n $(top_srcdir)/common/tests/Atffile Atffile +diff -up dhcp-4.3.4/configure.ac.remove-bind dhcp-4.3.4/configure.ac +--- dhcp-4.3.4/configure.ac.remove-bind 2016-03-22 14:19:51.000000000 +0100 ++++ dhcp-4.3.4/configure.ac 2016-04-29 14:13:50.335204352 +0200 +@@ -682,20 +682,33 @@ AC_CHECK_MEMBER(struct tpacket_auxdata.t + BINDDIR= + BINDSRCDIR= AC_ARG_WITH(libbind, -- AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH +- AS_HELP_STRING([--with-libbind=PATH],[bind includes and libraries are in PATH - (default is ./bind)]), -+ AS_HELP_STRING([--with-libbind=PATH],[bind includes are in PATH ++ AS_HELP_STRING([--with-libbind=PATH],[bind includes are in PATH + (default is ./bind/includes)]), use_libbind="$withval", use_libbind="no") - case "$use_libbind" in + case "$use_libbind" in +yes|no) + libbind="\${top_srcdir}/bind/include" + ;; @@ -73,62 +94,74 @@ diff -up dhcp-4.3.3b1/configure.ac.remove-bind dhcp-4.3.3b1/configure.ac + [libbind_libs="$withval"], [libbind_libs='no']) +case "$libbind_libs" in yes) -- libbind="\${top_srcdir}/bind" +- BINDDIR="\${top_srcdir}/bind" +- BINDSRCDIR="\${top_srcdir}/bind" + AC_MSG_ERROR([Specify path to bind9 libraries]) ;; no) -- libbind="\${top_srcdir}/bind" +- BINDDIR="\${top_srcdir}/bind" +- BINDSRCDIR="\${top_srcdir}/bind" + BUNDLED_BIND=yes ;; *) -- libbind="$use_libbind" +- BINDDIR="$use_libbind" + BIND9_LIBDIR="-L$libbind_libs" + BUNDLED_BIND=no - if test ! -d "bind"; then - AC_MSG_WARN(empty bind directory) - fi + if test ! -d "$srcdir/bind"; then + # no bind directory, create it with a fake Makefile.in + # (AC_CONFIG_FILES and top Makefile refer to it so +@@ -709,8 +722,8 @@ EOF + fi ;; esac +-AC_SUBST(BINDDIR) +-AC_SUBST(BINDSRCDIR) +AM_CONDITIONAL([BUNDLED_BIND], [test "$BUNDLED_BIND" = yes]) +AC_SUBST([BIND9_LIBDIR]) # OpenLDAP support. AC_ARG_WITH(ldap, -@@ -700,7 +717,7 @@ fi +@@ -788,7 +801,7 @@ fi CFLAGS="$CFLAGS $STD_CWARNINGS" - # Try to add the bind include directory --CFLAGS="$CFLAGS -I$libbind/include" + # Try to add the bind and dhcp include directories +-CFLAGS="$CFLAGS -I\$(top_srcdir)/includes -I$BINDDIR/include" +CFLAGS="$CFLAGS -I$libbind" case "$host" in *-darwin*) -diff -up dhcp-4.3.3b1/dhcpctl/Makefile.am.remove-bind dhcp-4.3.3b1/dhcpctl/Makefile.am ---- dhcp-4.3.3b1/dhcpctl/Makefile.am.remove-bind 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/dhcpctl/Makefile.am 2015-08-10 10:20:26.374965593 +0200 -@@ -6,12 +6,9 @@ EXTRA_DIST = $(man_MANS) +diff -up dhcp-4.3.4/dhcpctl/Makefile.am.remove-bind dhcp-4.3.4/dhcpctl/Makefile.am +--- dhcp-4.3.4/dhcpctl/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/dhcpctl/Makefile.am 2016-04-29 14:13:50.336204352 +0200 +@@ -1,5 +1,3 @@ +-BINDLIBDIR = @BINDDIR@/lib +- + bin_PROGRAMS = omshell + lib_LIBRARIES = libdhcpctl.a + noinst_PROGRAMS = cltest +@@ -8,12 +6,10 @@ EXTRA_DIST = $(man_MANS) omshell_SOURCES = omshell.c omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libirs.a ../bind/lib/libdns.a \ -- ../bind/lib/libisccfg.a ../bind/lib/libisc.a -- +- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ +- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export + libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c cltest_SOURCES = cltest.c cltest_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libirs.a ../bind/lib/libdns.a \ -- ../bind/lib/libisccfg.a ../bind/lib/libisc.a +- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ +- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export -diff -up dhcp-4.3.3b1/Makefile.am.remove-bind dhcp-4.3.3b1/Makefile.am ---- dhcp-4.3.3b1/Makefile.am.remove-bind 2015-08-10 10:20:26.374965593 +0200 -+++ dhcp-4.3.3b1/Makefile.am 2015-08-10 10:32:20.540597417 +0200 -@@ -25,7 +25,13 @@ EXTRA_DIST = RELNOTES LICENSE \ +diff -up dhcp-4.3.4/Makefile.am.remove-bind dhcp-4.3.4/Makefile.am +--- dhcp-4.3.4/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/Makefile.am 2016-04-29 14:14:06.863193261 +0200 +@@ -26,7 +26,13 @@ EXTRA_DIST = RELNOTES LICENSE \ bind/Makefile.in bind/bind.tar.gz bind/version.tmp \ common/tests/Atffile server/tests/Atffile --SUBDIRS = bind includes tests common omapip client dhcpctl relay server +-SUBDIRS = @BINDSRCDIR@ includes tests common omapip client dhcpctl relay server +if BUNDLED_BIND +SUBDIRS = bind +else @@ -139,60 +172,90 @@ diff -up dhcp-4.3.3b1/Makefile.am.remove-bind dhcp-4.3.3b1/Makefile.am nobase_include_HEADERS = dhcpctl/dhcpctl.h -diff -up dhcp-4.3.3b1/omapip/Makefile.am.remove-bind dhcp-4.3.3b1/omapip/Makefile.am ---- dhcp-4.3.3b1/omapip/Makefile.am.remove-bind 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/omapip/Makefile.am 2015-08-10 10:20:26.375965590 +0200 -@@ -10,6 +10,5 @@ man_MANS = omapi.3 +diff -up dhcp-4.3.4/omapip/Makefile.am.remove-bind dhcp-4.3.4/omapip/Makefile.am +--- dhcp-4.3.4/omapip/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/omapip/Makefile.am 2016-04-29 14:13:50.336204352 +0200 +@@ -1,5 +1,3 @@ +-BINDLIBDIR = @BINDDIR@/lib +- + lib_LIBRARIES = libomapi.a + noinst_PROGRAMS = svtest + +@@ -12,6 +10,6 @@ man_MANS = omapi.3 EXTRA_DIST = $(man_MANS) svtest_SOURCES = test.c --svtest_LDADD = libomapi.a ../bind/lib/libirs.a ../bind/lib/libdns.a \ -- ../bind/lib/libisccfg.a ../bind/lib/libisc.a -- +-svtest_LDADD = libomapi.a $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ +- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a +svtest_LDADD = libomapi.a \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export -diff -up dhcp-4.3.3b1/relay/Makefile.am.remove-bind dhcp-4.3.3b1/relay/Makefile.am ---- dhcp-4.3.3b1/relay/Makefile.am.remove-bind 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/relay/Makefile.am 2015-08-10 10:20:26.375965590 +0200 -@@ -3,8 +3,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst + +diff -up dhcp-4.3.4/relay/Makefile.am.remove-bind dhcp-4.3.4/relay/Makefile.am +--- dhcp-4.3.4/relay/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/relay/Makefile.am 2016-04-29 14:13:50.336204352 +0200 +@@ -1,12 +1,9 @@ +-BINDLIBDIR = @BINDDIR@/lib +- + AM_CPPFLAGS = -DLOCALSTATEDIR='"@localstatedir@"' + sbin_PROGRAMS = dhcrelay dhcrelay_SOURCES = dhcrelay.c dhcrelay_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../bind/lib/libirs.a ../bind/lib/libdns.a \ -- ../bind/lib/libisccfg.a ../bind/lib/libisc.a +- $(BINDLIBDIR)/libirs.a $(BINDLIBDIR)/libdns.a \ +- $(BINDLIBDIR)/libisccfg.a $(BINDLIBDIR)/libisc.a + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export man_MANS = dhcrelay.8 EXTRA_DIST = $(man_MANS) -diff -up dhcp-4.3.3b1/server/Makefile.am.remove-bind dhcp-4.3.3b1/server/Makefile.am ---- dhcp-4.3.3b1/server/Makefile.am.remove-bind 2015-08-10 10:20:26.375965590 +0200 -+++ dhcp-4.3.3b1/server/Makefile.am 2015-08-10 10:34:07.597246299 +0200 -@@ -13,10 +13,9 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c +diff -up dhcp-4.3.4/server/Makefile.am.remove-bind dhcp-4.3.4/server/Makefile.am +--- dhcp-4.3.4/server/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/server/Makefile.am 2016-04-29 14:13:50.336204352 +0200 +@@ -4,8 +4,6 @@ + # production code. Sadly, we are not there yet. + SUBDIRS = . tests + +-BINDLIBDIR = @BINDDIR@/lib +- + AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' + + dist_sysconf_DATA = dhcpd.conf.example +@@ -15,10 +13,9 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c dhcpv6.c mdb6.c ldap.c ldap_casa.c leasechain.c ldap_krb_helper.c dhcpd_CFLAGS = $(LDAP_CFLAGS) -dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a \ -- ../dhcpctl/libdhcpctl.a ../bind/lib/libirs.a \ -- ../bind/lib/libdns.a ../bind/lib/libisccfg.a ../bind/lib/libisc.a \ -- $(LDAP_LIBS) +- ../dhcpctl/libdhcpctl.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a \ +- $(BINDLIBDIR)/libisc.a $(LDAP_LIBS) +dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../dhcpctl/libdhcpctl.a \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export \ + $(LDAP_LIBS) man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 EXTRA_DIST = $(man_MANS) -diff -up dhcp-4.3.3b1/server/tests/Makefile.am.remove-bind dhcp-4.3.3b1/server/tests/Makefile.am ---- dhcp-4.3.3b1/server/tests/Makefile.am.remove-bind 2015-08-10 10:20:26.375965590 +0200 -+++ dhcp-4.3.3b1/server/tests/Makefile.am 2015-08-10 10:35:34.931959866 +0200 -@@ -18,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa +diff -up dhcp-4.3.4/server/tests/Makefile.am.remove-bind dhcp-4.3.4/server/tests/Makefile.am +--- dhcp-4.3.4/server/tests/Makefile.am.remove-bind 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/server/tests/Makefile.am 2016-04-29 14:13:50.336204352 +0200 +@@ -1,9 +1,7 @@ + SUBDIRS = . + +-BINDLIBDIR = @BINDDIR@/lib +- + AM_CPPFLAGS = $(ATF_CFLAGS) -DUNIT_TEST -I$(top_srcdir)/includes +-AM_CPPFLAGS += -I@BINDDIR@/include -I$(top_srcdir) ++AM_CPPFLAGS += -I$(top_srcdir) + AM_CPPFLAGS += -DLOCALSTATEDIR='"."' + + EXTRA_DIST = Atffile +@@ -20,9 +18,8 @@ DHCPSRC = ../dhcp.c ../bootp.c ../confpa ../ldap.c ../ldap_casa.c ../dhcpd.c ../leasechain.c - DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ -- $(top_builddir)/dhcpctl/libdhcpctl.a $(top_builddir)/bind/lib/libirs.a \ -- $(top_builddir)/bind/lib/libdns.a $(top_builddir)/bind/lib/libisccfg.a \ -- $(top_builddir)/bind/lib/libisc.a -+ $(top_builddir)/dhcpctl/libdhcpctl.a \ -+ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export + DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ +- $(top_builddir)/dhcpctl/libdhcpctl.a $(BINDLIBDIR)/libirs.a \ +- $(BINDLIBDIR)/libdns.a $(BINDLIBDIR)/libisccfg.a \ +- $(BINDLIBDIR)/libisc.a ++ $(top_builddir)/dhcpctl/libdhcpctl.a \ ++ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export ATF_TESTS = if HAVE_ATF diff --git a/dhcp-rfc3442-classless-static-routes.patch b/dhcp-rfc3442-classless-static-routes.patch index 9fd1014..0cab7be 100644 --- a/dhcp-rfc3442-classless-static-routes.patch +++ b/dhcp-rfc3442-classless-static-routes.patch @@ -1,16 +1,16 @@ -diff -up dhcp-4.3.3b1/client/clparse.c.rfc3442 dhcp-4.3.3b1/client/clparse.c ---- dhcp-4.3.3b1/client/clparse.c.rfc3442 2015-08-10 10:55:31.711936295 +0200 -+++ dhcp-4.3.3b1/client/clparse.c 2015-08-10 10:55:31.735936210 +0200 +diff -up dhcp-4.3.4/client/clparse.c.rfc3442 dhcp-4.3.4/client/clparse.c +--- dhcp-4.3.4/client/clparse.c.rfc3442 2016-04-29 12:23:34.192032714 +0200 ++++ dhcp-4.3.4/client/clparse.c 2016-04-29 12:24:37.531016317 +0200 @@ -31,7 +31,7 @@ struct client_config top_level_config; -#define NUM_DEFAULT_REQUESTED_OPTS 14 +#define NUM_DEFAULT_REQUESTED_OPTS 15 - struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 1]; + /* There can be 2 extra requested options for DHCPv4-over-DHCPv6. */ + struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 2 + 1]; - static void parse_client_default_duid(struct parse *cfile); -@@ -84,7 +84,11 @@ isc_result_t read_client_conf () +@@ -87,7 +87,11 @@ isc_result_t read_client_conf () dhcp_universe.code_hash, &code, 0, MDL); /* 4 */ @@ -23,7 +23,7 @@ diff -up dhcp-4.3.3b1/client/clparse.c.rfc3442 dhcp-4.3.3b1/client/clparse.c option_code_hash_lookup(&default_requested_options[3], dhcp_universe.code_hash, &code, 0, MDL); -@@ -138,6 +142,11 @@ isc_result_t read_client_conf () +@@ -141,6 +145,11 @@ isc_result_t read_client_conf () option_code_hash_lookup(&default_requested_options[13], dhcp_universe.code_hash, &code, 0, MDL); @@ -35,9 +35,9 @@ diff -up dhcp-4.3.3b1/client/clparse.c.rfc3442 dhcp-4.3.3b1/client/clparse.c for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) { if (default_requested_options[code] == NULL) log_fatal("Unable to find option definition for " -diff -up dhcp-4.3.3b1/common/dhcp-options.5.rfc3442 dhcp-4.3.3b1/common/dhcp-options.5 ---- dhcp-4.3.3b1/common/dhcp-options.5.rfc3442 2015-08-10 10:55:31.705936316 +0200 -+++ dhcp-4.3.3b1/common/dhcp-options.5 2015-08-10 10:55:31.735936210 +0200 +diff -up dhcp-4.3.4/common/dhcp-options.5.rfc3442 dhcp-4.3.4/common/dhcp-options.5 +--- dhcp-4.3.4/common/dhcp-options.5.rfc3442 2016-04-29 12:23:34.183032716 +0200 ++++ dhcp-4.3.4/common/dhcp-options.5 2016-04-29 12:23:34.237032703 +0200 @@ -111,6 +111,26 @@ hexadecimal, separated by colons. For e or option dhcp-client-identifier 43:4c:49:45:54:2d:46:4f:4f; @@ -95,10 +95,10 @@ diff -up dhcp-4.3.3b1/common/dhcp-options.5.rfc3442 dhcp-4.3.3b1/common/dhcp-opt .B option \fBstreettalk-directory-assistance-server\fR \fIip-address\fR [\fB,\fR \fIip-address\fR...]\fB;\fR .fi -diff -up dhcp-4.3.3b1/common/inet.c.rfc3442 dhcp-4.3.3b1/common/inet.c ---- dhcp-4.3.3b1/common/inet.c.rfc3442 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/inet.c 2015-08-10 10:55:31.735936210 +0200 -@@ -521,6 +521,60 @@ free_iaddrcidrnetlist(struct iaddrcidrne +diff -up dhcp-4.3.4/common/inet.c.rfc3442 dhcp-4.3.4/common/inet.c +--- dhcp-4.3.4/common/inet.c.rfc3442 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/inet.c 2016-04-29 12:23:34.237032703 +0200 +@@ -519,6 +519,60 @@ free_iaddrcidrnetlist(struct iaddrcidrne return ISC_R_SUCCESS; } @@ -159,9 +159,9 @@ diff -up dhcp-4.3.3b1/common/inet.c.rfc3442 dhcp-4.3.3b1/common/inet.c /* piaddr() turns an iaddr structure into a printable address. */ /* XXX: should use a const pointer rather than passing the structure */ const char * -diff -up dhcp-4.3.3b1/common/options.c.rfc3442 dhcp-4.3.3b1/common/options.c ---- dhcp-4.3.3b1/common/options.c.rfc3442 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/common/options.c 2015-08-10 10:55:31.736936207 +0200 +diff -up dhcp-4.3.4/common/options.c.rfc3442 dhcp-4.3.4/common/options.c +--- dhcp-4.3.4/common/options.c.rfc3442 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/common/options.c 2016-04-29 12:23:34.237032703 +0200 @@ -713,7 +713,11 @@ cons_options(struct packet *inpacket, st * packet. */ @@ -246,9 +246,9 @@ diff -up dhcp-4.3.3b1/common/options.c.rfc3442 dhcp-4.3.3b1/common/options.c case '6': iaddr.len = 16; memcpy(iaddr.iabuf, dp, 16); -diff -up dhcp-4.3.3b1/common/parse.c.rfc3442 dhcp-4.3.3b1/common/parse.c ---- dhcp-4.3.3b1/common/parse.c.rfc3442 2015-08-10 10:55:31.725936246 +0200 -+++ dhcp-4.3.3b1/common/parse.c 2015-08-10 10:55:31.741936189 +0200 +diff -up dhcp-4.3.4/common/parse.c.rfc3442 dhcp-4.3.4/common/parse.c +--- dhcp-4.3.4/common/parse.c.rfc3442 2016-04-29 12:23:34.220032707 +0200 ++++ dhcp-4.3.4/common/parse.c 2016-04-29 12:23:34.238032702 +0200 @@ -341,6 +341,39 @@ int parse_ip_addr (cfile, addr) } @@ -341,10 +341,10 @@ diff -up dhcp-4.3.3b1/common/parse.c.rfc3442 dhcp-4.3.3b1/common/parse.c alloc: if (hunkix + len > sizeof hunkbuf) { -diff -up dhcp-4.3.3b1/common/tables.c.rfc3442 dhcp-4.3.3b1/common/tables.c ---- dhcp-4.3.3b1/common/tables.c.rfc3442 2015-08-10 10:55:31.719936267 +0200 -+++ dhcp-4.3.3b1/common/tables.c 2015-08-10 10:55:31.742936186 +0200 -@@ -46,6 +46,7 @@ HASH_FUNCTIONS (option_code, const unsig +diff -up dhcp-4.3.4/common/tables.c.rfc3442 dhcp-4.3.4/common/tables.c +--- dhcp-4.3.4/common/tables.c.rfc3442 2016-04-29 12:23:34.209032710 +0200 ++++ dhcp-4.3.4/common/tables.c 2016-04-29 12:23:34.238032702 +0200 +@@ -45,6 +45,7 @@ HASH_FUNCTIONS (option_code, const unsig Format codes: I - IPv4 address @@ -352,7 +352,7 @@ diff -up dhcp-4.3.3b1/common/tables.c.rfc3442 dhcp-4.3.3b1/common/tables.c 6 - IPv6 address l - 32-bit signed integer L - 32-bit unsigned integer -@@ -214,6 +215,7 @@ static struct option dhcp_options[] = { +@@ -216,6 +217,7 @@ static struct option dhcp_options[] = { #endif { "subnet-selection", "I", &dhcp_universe, 118, 1 }, { "domain-search", "D", &dhcp_universe, 119, 1 }, @@ -360,10 +360,10 @@ diff -up dhcp-4.3.3b1/common/tables.c.rfc3442 dhcp-4.3.3b1/common/tables.c { "vivco", "Evendor-class.", &dhcp_universe, 124, 1 }, { "vivso", "Evendor.", &dhcp_universe, 125, 1 }, #if 0 -diff -up dhcp-4.3.3b1/includes/dhcpd.h.rfc3442 dhcp-4.3.3b1/includes/dhcpd.h ---- dhcp-4.3.3b1/includes/dhcpd.h.rfc3442 2015-08-10 10:55:31.709936302 +0200 -+++ dhcp-4.3.3b1/includes/dhcpd.h 2015-08-10 10:55:31.743936182 +0200 -@@ -2855,6 +2855,7 @@ isc_result_t range2cidr(struct iaddrcidr +diff -up dhcp-4.3.4/includes/dhcpd.h.rfc3442 dhcp-4.3.4/includes/dhcpd.h +--- dhcp-4.3.4/includes/dhcpd.h.rfc3442 2016-04-29 12:23:34.186032716 +0200 ++++ dhcp-4.3.4/includes/dhcpd.h 2016-04-29 12:23:34.239032702 +0200 +@@ -2894,6 +2894,7 @@ isc_result_t range2cidr(struct iaddrcidr const struct iaddr *lo, const struct iaddr *hi); isc_result_t free_iaddrcidrnetlist(struct iaddrcidrnetlist **result); const char *piaddr (struct iaddr); @@ -371,7 +371,7 @@ diff -up dhcp-4.3.3b1/includes/dhcpd.h.rfc3442 dhcp-4.3.3b1/includes/dhcpd.h char *piaddrmask(struct iaddr *, struct iaddr *); char *piaddrcidr(const struct iaddr *, unsigned int); u_int16_t validate_port(char *); -@@ -3065,6 +3066,7 @@ void parse_client_lease_declaration (str +@@ -3108,6 +3109,7 @@ void parse_client_lease_declaration (str int parse_option_decl (struct option_cache **, struct parse *); void parse_string_list (struct parse *, struct string_list **, int); int parse_ip_addr (struct parse *, struct iaddr *); @@ -379,9 +379,9 @@ diff -up dhcp-4.3.3b1/includes/dhcpd.h.rfc3442 dhcp-4.3.3b1/includes/dhcpd.h int parse_ip_addr_with_subnet(struct parse *, struct iaddrmatch *); void parse_reject_statement (struct parse *, struct client_config *); -diff -up dhcp-4.3.3b1/includes/dhcp.h.rfc3442 dhcp-4.3.3b1/includes/dhcp.h ---- dhcp-4.3.3b1/includes/dhcp.h.rfc3442 2015-07-30 15:17:16.000000000 +0200 -+++ dhcp-4.3.3b1/includes/dhcp.h 2015-08-10 10:55:31.743936182 +0200 +diff -up dhcp-4.3.4/includes/dhcp.h.rfc3442 dhcp-4.3.4/includes/dhcp.h +--- dhcp-4.3.4/includes/dhcp.h.rfc3442 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/includes/dhcp.h 2016-04-29 12:23:34.239032702 +0200 @@ -159,6 +159,7 @@ struct dhcp_packet { #define DHO_ASSOCIATED_IP 92 #define DHO_SUBNET_SELECTION 118 /* RFC3011! */ @@ -390,16 +390,16 @@ diff -up dhcp-4.3.3b1/includes/dhcp.h.rfc3442 dhcp-4.3.3b1/includes/dhcp.h #define DHO_VIVCO_SUBOPTIONS 124 #define DHO_VIVSO_SUBOPTIONS 125 -diff -up dhcp-4.3.3b1/includes/dhctoken.h.rfc3442 dhcp-4.3.3b1/includes/dhctoken.h ---- dhcp-4.3.3b1/includes/dhctoken.h.rfc3442 2015-08-10 10:55:31.743936182 +0200 -+++ dhcp-4.3.3b1/includes/dhctoken.h 2015-08-10 10:56:19.325768194 +0200 -@@ -369,7 +369,8 @@ enum dhcp_token { - V6RELAY = 670, - V6RELOPT = 671, - PARSE_VENDOR_OPT = 672, -- BOOTP_BROADCAST_ALWAYS = 673 -+ BOOTP_BROADCAST_ALWAYS = 673, -+ DESTINATION_DESCRIPTOR = 674 +diff -up dhcp-4.3.4/includes/dhctoken.h.rfc3442 dhcp-4.3.4/includes/dhctoken.h +--- dhcp-4.3.4/includes/dhctoken.h.rfc3442 2016-04-29 12:23:34.239032702 +0200 ++++ dhcp-4.3.4/includes/dhctoken.h 2016-04-29 12:25:07.236008628 +0200 +@@ -374,7 +374,8 @@ enum dhcp_token { + LEASE_ID_FORMAT = 676, + TOKEN_HEX = 677, + TOKEN_OCTAL = 678, +- BOOTP_BROADCAST_ALWAYS = 679 ++ BOOTP_BROADCAST_ALWAYS = 679, ++ DESTINATION_DESCRIPTOR = 674 }; #define is_identifier(x) ((x) >= FIRST_TOKEN && \ diff --git a/dhcp-sd_notify.patch b/dhcp-sd_notify.patch index 68ac75d..a123923 100644 --- a/dhcp-sd_notify.patch +++ b/dhcp-sd_notify.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.3b1/configure.ac.sd_notify dhcp-4.3.3b1/configure.ac ---- dhcp-4.3.3b1/configure.ac.sd_notify 2015-08-10 11:57:24.955325674 +0200 -+++ dhcp-4.3.3b1/configure.ac 2015-08-10 11:58:20.024113933 +0200 -@@ -777,6 +777,17 @@ if test x$ldap = xyes || test x$ldapcryp +diff -up dhcp-4.3.4/configure.ac.sd_notify dhcp-4.3.4/configure.ac +--- dhcp-4.3.4/configure.ac.sd_notify 2016-04-29 13:08:52.813287060 +0200 ++++ dhcp-4.3.4/configure.ac 2016-04-29 13:08:52.872287075 +0200 +@@ -832,6 +832,17 @@ if test x$ldap = xyes || test x$ldapcryp AC_SUBST(LDAP_CFLAGS, [$LDAP_CFLAGS]) fi @@ -19,10 +19,10 @@ diff -up dhcp-4.3.3b1/configure.ac.sd_notify dhcp-4.3.3b1/configure.ac # Append selected warning levels to CFLAGS before substitution (but after # AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) & etc). CFLAGS="$CFLAGS $STD_CWARNINGS" -diff -up dhcp-4.3.3b1/relay/dhcrelay.c.sd_notify dhcp-4.3.3b1/relay/dhcrelay.c ---- dhcp-4.3.3b1/relay/dhcrelay.c.sd_notify 2015-08-10 11:57:24.901325882 +0200 -+++ dhcp-4.3.3b1/relay/dhcrelay.c 2015-08-10 11:57:24.956325670 +0200 -@@ -36,6 +36,10 @@ +diff -up dhcp-4.3.4/relay/dhcrelay.c.sd_notify dhcp-4.3.4/relay/dhcrelay.c +--- dhcp-4.3.4/relay/dhcrelay.c.sd_notify 2016-04-29 13:08:52.814287061 +0200 ++++ dhcp-4.3.4/relay/dhcrelay.c 2016-04-29 13:08:52.872287075 +0200 +@@ -37,6 +37,10 @@ int keep_capabilities = 0; #endif @@ -33,7 +33,7 @@ diff -up dhcp-4.3.3b1/relay/dhcrelay.c.sd_notify dhcp-4.3.3b1/relay/dhcrelay.c TIME default_lease_time = 43200; /* 12 hours... */ TIME max_lease_time = 86400; /* 24 hours... */ struct tree_cache *global_options[256]; -@@ -627,6 +631,14 @@ main(int argc, char **argv) { +@@ -709,6 +713,14 @@ main(int argc, char **argv) { } #endif @@ -48,23 +48,23 @@ diff -up dhcp-4.3.3b1/relay/dhcrelay.c.sd_notify dhcp-4.3.3b1/relay/dhcrelay.c /* Start dispatching packets and timeouts... */ dispatch(); -diff -up dhcp-4.3.3b1/server/dhcpd.c.sd_notify dhcp-4.3.3b1/server/dhcpd.c ---- dhcp-4.3.3b1/server/dhcpd.c.sd_notify 2015-08-10 11:57:24.937325743 +0200 -+++ dhcp-4.3.3b1/server/dhcpd.c 2015-08-10 11:57:24.956325670 +0200 -@@ -58,6 +58,10 @@ gid_t set_gid = 0; - - #include "trace.h" +diff -up dhcp-4.3.4/server/dhcpd.c.sd_notify dhcp-4.3.4/server/dhcpd.c +--- dhcp-4.3.4/server/dhcpd.c.sd_notify 2016-04-29 13:08:52.873287075 +0200 ++++ dhcp-4.3.4/server/dhcpd.c 2016-04-29 13:12:00.655333096 +0200 +@@ -57,6 +57,10 @@ uid_t set_uid = 0; + gid_t set_gid = 0; + #endif /* PARANOIA */ +#ifdef HAVE_LIBSYSTEMD +#include +#endif + - #ifndef UNIT_TEST - static void usage(void); - #endif -@@ -820,6 +824,13 @@ main(int argc, char **argv) { + struct iaddr server_identifier; + int server_identifier_matched; - TRACE(DHCPD_MAIN()); +@@ -931,6 +935,14 @@ main(int argc, char **argv) { + /* Log that we are about to start working */ + log_info("Server starting service."); +#ifdef HAVE_LIBSYSTEMD + /* We are ready to process incomming packets. Let's notify systemd */ @@ -73,6 +73,7 @@ diff -up dhcp-4.3.3b1/server/dhcpd.c.sd_notify dhcp-4.3.3b1/server/dhcpd.c + "MAINPID=%lu", + (unsigned long) getpid()); +#endif ++ /* * Receive packets and dispatch them... * dispatch() will never return. diff --git a/dhcp-sendDecline.patch b/dhcp-sendDecline.patch index e683366..ede9298 100644 --- a/dhcp-sendDecline.patch +++ b/dhcp-sendDecline.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c ---- dhcp-4.3.0a1/client/dhc6.c.sendDecline 2013-12-11 01:25:12.000000000 +0100 -+++ dhcp-4.3.0a1/client/dhc6.c 2013-12-19 15:56:18.297660118 +0100 -@@ -96,6 +96,8 @@ void do_select6(void *input); +diff -up dhcp-4.3.4/client/dhc6.c.sendDecline dhcp-4.3.4/client/dhc6.c +--- dhcp-4.3.4/client/dhc6.c.sendDecline 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/client/dhc6.c 2016-05-02 14:51:57.916578401 +0200 +@@ -115,6 +115,8 @@ void do_select6(void *input); void do_refresh6(void *input); static void do_release6(void *input); static void start_bound(struct client_state *client); @@ -10,7 +10,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c static void start_informed(struct client_state *client); void informed_handler(struct packet *packet, struct client_state *client); void bound_handler(struct packet *packet, struct client_state *client); -@@ -2017,6 +2019,7 @@ start_release6(struct client_state *clie +@@ -2314,6 +2316,7 @@ start_release6(struct client_state *clie cancel_timeout(do_select6, client); cancel_timeout(do_refresh6, client); cancel_timeout(do_release6, client); @@ -18,7 +18,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c client->state = S_STOPPED; /* -@@ -2650,6 +2653,7 @@ dhc6_check_reply(struct client_state *cl +@@ -2968,6 +2971,7 @@ dhc6_check_reply(struct client_state *cl break; case S_STOPPED: @@ -26,7 +26,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c action = dhc6_stop_action; break; -@@ -2751,6 +2755,7 @@ dhc6_check_reply(struct client_state *cl +@@ -3084,6 +3088,7 @@ dhc6_check_reply(struct client_state *cl break; case S_STOPPED: @@ -34,7 +34,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c /* Nothing critical to do at this stage. */ break; -@@ -3741,17 +3746,23 @@ reply_handler(struct packet *packet, str +@@ -4214,17 +4219,23 @@ reply_handler(struct packet *packet, str cancel_timeout(do_select6, client); cancel_timeout(do_refresh6, client); cancel_timeout(do_release6, client); @@ -66,7 +66,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c return; } -@@ -4279,7 +4290,11 @@ start_bound(struct client_state *client) +@@ -4798,7 +4809,11 @@ start_bound(struct client_state *client) dhc6_marshall_values("new_", client, lease, ia, addr); script_write_requested6(client); @@ -79,7 +79,7 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c } /* XXX: maybe we should loop on the old values instead? */ -@@ -4327,6 +4342,149 @@ start_bound(struct client_state *client) +@@ -4851,6 +4866,149 @@ start_bound(struct client_state *client) dhc6_check_times(client); } @@ -121,8 +121,8 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c +{ + struct client_state *client; + struct data_string ds; -+ int send_ret; + struct timeval elapsed, tv; ++ int send_ret, added; + + client = input; + @@ -183,13 +183,13 @@ diff -up dhcp-4.3.0a1/client/dhc6.c.sendDecline dhcp-4.3.0a1/client/dhc6.c + /* Append IA's (but don't release temporary addresses). */ + if (wanted_ia_na && + dhc6_add_ia_na(client, &ds, client->active_lease, -+ DHCPV6_DECLINE) != ISC_R_SUCCESS) { ++ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) { + data_string_forget(&ds, MDL); + goto decline_done; + } + if (wanted_ia_pd && + dhc6_add_ia_pd(client, &ds, client->active_lease, -+ DHCPV6_DECLINE) != ISC_R_SUCCESS) { ++ DHCPV6_DECLINE, 0, &added) != ISC_R_SUCCESS) { + data_string_forget(&ds, MDL); + goto decline_done; + } diff --git a/dhcp-sharedlib.patch b/dhcp-sharedlib.patch index 2ec31bd..3427f78 100644 --- a/dhcp-sharedlib.patch +++ b/dhcp-sharedlib.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.3b1/client/Makefile.am.sharedlib dhcp-4.3.3b1/client/Makefile.am ---- dhcp-4.3.3b1/client/Makefile.am.sharedlib 2015-08-10 10:41:25.315770022 +0200 -+++ dhcp-4.3.3b1/client/Makefile.am 2015-08-10 10:41:25.317770015 +0200 -@@ -10,7 +10,7 @@ dhclient_SOURCES = clparse.c dhclient.c +diff -up dhcp-4.3.4/client/Makefile.am.sharedlib dhcp-4.3.4/client/Makefile.am +--- dhcp-4.3.4/client/Makefile.am.sharedlib 2016-04-29 11:48:30.389923087 +0200 ++++ dhcp-4.3.4/client/Makefile.am 2016-04-29 11:48:30.393923084 +0200 +@@ -13,7 +13,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,9 +10,9 @@ diff -up dhcp-4.3.3b1/client/Makefile.am.sharedlib dhcp-4.3.3b1/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.3b1/common/tests/Makefile.am.sharedlib dhcp-4.3.3b1/common/tests/Makefile.am ---- dhcp-4.3.3b1/common/tests/Makefile.am.sharedlib 2015-08-10 10:41:25.315770022 +0200 -+++ dhcp-4.3.3b1/common/tests/Makefile.am 2015-08-10 10:41:25.318770011 +0200 +diff -up dhcp-4.3.4/common/tests/Makefile.am.sharedlib dhcp-4.3.4/common/tests/Makefile.am +--- dhcp-4.3.4/common/tests/Makefile.am.sharedlib 2016-04-29 11:48:30.394923084 +0200 ++++ dhcp-4.3.4/common/tests/Makefile.am 2016-04-29 11:54:16.890716651 +0200 @@ -13,25 +13,25 @@ ATF_TESTS += alloc_unittest dns_unittest alloc_unittest_SOURCES = test_alloc.c $(top_srcdir)/tests/t_api_dhcp.c alloc_unittest_LDADD = $(ATF_LDFLAGS) @@ -23,18 +23,17 @@ diff -up dhcp-4.3.3b1/common/tests/Makefile.am.sharedlib dhcp-4.3.3b1/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 \ - ../../omapip/libomapi.a \ -+dns_unittest_LDADD += ../libdhcp.la \ + ../../omapip/libomapi.la \ $(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 \ -+ ../../omapip/libomapi.la ../../bind/lib/libirs.a \ - ../../bind/lib/libdns.a ../../bind/lib/libisccfg.a ../../bind/lib/libisc.a +- ../../omapip/libomapi.a \ ++ ../../omapip/libomapi.la \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export ns_name_unittest_SOURCES = ns_name_test.c $(top_srcdir)/tests/t_api_dhcp.c ns_name_unittest_LDADD = $(ATF_LDFLAGS) @@ -44,23 +43,23 @@ diff -up dhcp-4.3.3b1/common/tests/Makefile.am.sharedlib dhcp-4.3.3b1/common/tes $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export check: $(ATF_TESTS) -diff -up dhcp-4.3.3b1/configure.ac.sharedlib dhcp-4.3.3b1/configure.ac ---- dhcp-4.3.3b1/configure.ac.sharedlib 2015-08-10 10:41:25.315770022 +0200 -+++ dhcp-4.3.3b1/configure.ac 2015-08-10 10:41:25.318770011 +0200 -@@ -43,7 +43,8 @@ AC_SUBST(BINDCONFIG) +diff -up dhcp-4.3.4/configure.ac.sharedlib dhcp-4.3.4/configure.ac +--- dhcp-4.3.4/configure.ac.sharedlib 2016-04-29 11:48:30.394923084 +0200 ++++ dhcp-4.3.4/configure.ac 2016-04-29 11:55:22.729691668 +0200 +@@ -47,7 +47,8 @@ AM_CONDITIONAL(CROSS_COMPILING, test "$c # Use this to define _GNU_SOURCE to pull in the IPv6 Advanced Socket API. AC_USE_SYSTEM_EXTENSIONS -AC_PROG_RANLIB +# Use libtool to simplify building of shared libraries +AC_PROG_LIBTOOL - AC_CONFIG_HEADERS([includes/config.h]) - # we sometimes need to know byte order for building packets -diff -up dhcp-4.3.3b1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.3b1/dhcpctl/Makefile.am ---- dhcp-4.3.3b1/dhcpctl/Makefile.am.sharedlib 2015-08-10 10:41:25.315770022 +0200 -+++ dhcp-4.3.3b1/dhcpctl/Makefile.am 2015-08-10 10:41:25.318770011 +0200 -@@ -1,14 +1,14 @@ + AC_PATH_PROG(AR, ar) + AC_SUBST(AR) +diff -up dhcp-4.3.4/dhcpctl/Makefile.am.sharedlib dhcp-4.3.4/dhcpctl/Makefile.am +--- dhcp-4.3.4/dhcpctl/Makefile.am.sharedlib 2016-04-29 11:48:30.394923084 +0200 ++++ dhcp-4.3.4/dhcpctl/Makefile.am 2016-04-29 11:56:18.390670546 +0200 +@@ -1,15 +1,15 @@ bin_PROGRAMS = omshell -lib_LIBRARIES = libdhcpctl.a +lib_LTLIBRARIES = libdhcpctl.la @@ -72,6 +71,7 @@ diff -up dhcp-4.3.3b1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.3b1/dhcpctl/Makefil -omshell_LDADD = libdhcpctl.a ../common/libdhcp.a ../omapip/libomapi.a \ +omshell_LDADD = libdhcpctl.la ../common/libdhcp.a ../omapip/libomapi.la \ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export + -libdhcpctl_a_SOURCES = dhcpctl.c callback.c remote.c +libdhcpctl_la_SOURCES = dhcpctl.c callback.c remote.c @@ -79,9 +79,9 @@ diff -up dhcp-4.3.3b1/dhcpctl/Makefile.am.sharedlib dhcp-4.3.3b1/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.3b1/omapip/Makefile.am.sharedlib dhcp-4.3.3b1/omapip/Makefile.am ---- dhcp-4.3.3b1/omapip/Makefile.am.sharedlib 2015-08-10 10:41:25.315770022 +0200 -+++ dhcp-4.3.3b1/omapip/Makefile.am 2015-08-10 10:41:25.318770011 +0200 +diff -up dhcp-4.3.4/omapip/Makefile.am.sharedlib dhcp-4.3.4/omapip/Makefile.am +--- dhcp-4.3.4/omapip/Makefile.am.sharedlib 2016-04-29 11:48:30.392923085 +0200 ++++ dhcp-4.3.4/omapip/Makefile.am 2016-04-29 11:57:33.709641969 +0200 @@ -1,7 +1,7 @@ -lib_LIBRARIES = libomapi.a +lib_LTLIBRARIES = libomapi.la @@ -92,16 +92,17 @@ diff -up dhcp-4.3.3b1/omapip/Makefile.am.sharedlib dhcp-4.3.3b1/omapip/Makefile. errwarn.c listener.c dispatch.c generic.c support.c \ handle.c message.c convert.c hash.c auth.c inet_addr.c \ array.c trace.c toisc.c iscprint.c isclib.c -@@ -10,5 +10,5 @@ man_MANS = omapi.3 +@@ -10,6 +10,6 @@ man_MANS = omapi.3 EXTRA_DIST = $(man_MANS) svtest_SOURCES = test.c -svtest_LDADD = libomapi.a \ +svtest_LDADD = libomapi.la \ $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export -diff -up dhcp-4.3.3b1/relay/Makefile.am.sharedlib dhcp-4.3.3b1/relay/Makefile.am ---- dhcp-4.3.3b1/relay/Makefile.am.sharedlib 2015-08-10 10:41:25.316770018 +0200 -+++ dhcp-4.3.3b1/relay/Makefile.am 2015-08-10 10:41:25.318770011 +0200 + +diff -up dhcp-4.3.4/relay/Makefile.am.sharedlib dhcp-4.3.4/relay/Makefile.am +--- dhcp-4.3.4/relay/Makefile.am.sharedlib 2016-04-29 11:48:30.392923085 +0200 ++++ dhcp-4.3.4/relay/Makefile.am 2016-04-29 11:48:30.395923083 +0200 @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DLOCALSTATEDIR='"@localst sbin_PROGRAMS = dhcrelay @@ -111,9 +112,9 @@ diff -up dhcp-4.3.3b1/relay/Makefile.am.sharedlib dhcp-4.3.3b1/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.3b1/server/Makefile.am.sharedlib dhcp-4.3.3b1/server/Makefile.am ---- dhcp-4.3.3b1/server/Makefile.am.sharedlib 2015-08-10 10:41:25.318770011 +0200 -+++ dhcp-4.3.3b1/server/Makefile.am 2015-08-10 10:42:27.642555119 +0200 +diff -up dhcp-4.3.4/server/Makefile.am.sharedlib dhcp-4.3.4/server/Makefile.am +--- dhcp-4.3.4/server/Makefile.am.sharedlib 2016-04-29 11:48:30.392923085 +0200 ++++ dhcp-4.3.4/server/Makefile.am 2016-04-29 11:48:30.395923083 +0200 @@ -13,7 +13,7 @@ dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c c dhcpv6.c mdb6.c ldap.c ldap_casa.c leasechain.c ldap_krb_helper.c @@ -123,17 +124,17 @@ diff -up dhcp-4.3.3b1/server/Makefile.am.sharedlib dhcp-4.3.3b1/server/Makefile. $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export \ $(LDAP_LIBS) -diff -up dhcp-4.3.3b1/server/tests/Makefile.am.sharedlib dhcp-4.3.3b1/server/tests/Makefile.am ---- dhcp-4.3.3b1/server/tests/Makefile.am.sharedlib 2015-08-10 10:41:25.318770011 +0200 -+++ dhcp-4.3.3b1/server/tests/Makefile.am 2015-08-10 10:42:59.290445998 +0200 +diff -up dhcp-4.3.4/server/tests/Makefile.am.sharedlib dhcp-4.3.4/server/tests/Makefile.am +--- dhcp-4.3.4/server/tests/Makefile.am.sharedlib 2016-04-29 11:48:30.395923083 +0200 ++++ dhcp-4.3.4/server/tests/Makefile.am 2016-04-29 11:59:13.414604130 +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 ../leasechain.c --DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ -- $(top_builddir)/dhcpctl/libdhcpctl.a \ -+DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.la \ -+ $(top_builddir)/dhcpctl/libdhcpctl.la \ - $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export +-DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.a \ +- $(top_builddir)/dhcpctl/libdhcpctl.a \ ++DHCPLIBS = $(top_builddir)/common/libdhcp.a $(top_builddir)/omapip/libomapi.la \ ++ $(top_builddir)/dhcpctl/libdhcpctl.la \ + $(BIND9_LIBDIR) -lirs-export -ldns-export -lisccfg-export -lisc-export ATF_TESTS = diff --git a/dhcp-stateless-DUID-LLT.patch b/dhcp-stateless-DUID-LLT.patch index a7f22b5..72b7b0f 100644 --- a/dhcp-stateless-DUID-LLT.patch +++ b/dhcp-stateless-DUID-LLT.patch @@ -1,48 +1,13 @@ -From 61fa3dd9e789997f66e848c7e3fb2f554ee374e2 Mon Sep 17 00:00:00 2001 -From: Jiri Popelka -Date: Thu, 18 Dec 2014 11:53:26 +0100 -Subject: [PATCH] Write DUID_LLT even in stateless mode. - -By default, DHCPv6 dhclient creates DUID-LL -if it is running in stateless mode (-6 -S) and -doesn't write it into leases file, most likely -because the DUID-LL is always generated the same. - -It's however possible to specify DUID to be of type LLT instead of LL -with '-D LLT'. Rfc 3315 says that: -'Clients and servers using this type of DUID MUST -store the DUID-LLT in stable storage.' -That's not fulfiled in this case (-6 -S -D LLT), -because it's generated each time again. - -It's not a big deal because the server doesn't store any -info about 'stateless' clients, so it doesn't matter -that the DUID-LLT is different each time. -But there's a TAHI test which tests this, i.e. that -DUID-LLT is still the same even in stateless mode. -It's a test DHCP_CONF.7.1.9, part B. -https://www.ipv6ready.org/docs/Phase2_DHCPv6_Conformance_Latest.pdf - -Signed-off-by: Jiri Popelka ---- - client/dhclient.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/client/dhclient.c b/client/dhclient.c -index 5ef59cd..026e3fe 100644 ---- a/client/dhclient.c -+++ b/client/dhclient.c -@@ -788,7 +788,9 @@ void run_stateless(int exit_mode) - if (default_duid.buffer != NULL) +diff -up dhcp-4.3.4/client/dhclient.c.stateless-DUID-LLT dhcp-4.3.4/client/dhclient.c +--- dhcp-4.3.4/client/dhclient.c.stateless-DUID-LLT 2016-04-29 13:13:50.467360008 +0200 ++++ dhcp-4.3.4/client/dhclient.c 2016-04-29 13:14:53.389375428 +0200 +@@ -1317,6 +1317,9 @@ void run_stateless(int exit_mode, u_int1 data_string_forget(&default_duid, MDL); -- form_duid(&default_duid, MDL); + form_duid(&default_duid, MDL); + if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS && + duid_type == DUID_LLT) + write_duid(&default_duid); } - /* Start a configuration state machine. */ --- -2.1.0 - + #ifdef DHCP4o6 diff --git a/dhcp-unicast-bootp.patch b/dhcp-unicast-bootp.patch index a0db9de..abf89f2 100644 --- a/dhcp-unicast-bootp.patch +++ b/dhcp-unicast-bootp.patch @@ -1,7 +1,7 @@ -diff -up dhcp-4.3.0a1/server/bootp.c.unicast dhcp-4.3.0a1/server/bootp.c ---- dhcp-4.3.0a1/server/bootp.c.unicast 2013-12-11 01:25:12.000000000 +0100 -+++ dhcp-4.3.0a1/server/bootp.c 2013-12-19 15:12:12.974671154 +0100 -@@ -59,6 +59,7 @@ void bootp (packet) +diff -up dhcp-4.3.4/server/bootp.c.unicast dhcp-4.3.4/server/bootp.c +--- dhcp-4.3.4/server/bootp.c.unicast 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/server/bootp.c 2016-05-02 15:09:40.023243008 +0200 +@@ -52,6 +52,7 @@ void bootp (packet) char msgbuf [1024]; int ignorep; int peer_has_leases = 0; @@ -9,7 +9,7 @@ diff -up dhcp-4.3.0a1/server/bootp.c.unicast dhcp-4.3.0a1/server/bootp.c if (packet -> raw -> op != BOOTREQUEST) return; -@@ -74,7 +75,7 @@ void bootp (packet) +@@ -67,7 +68,7 @@ void bootp (packet) ? inet_ntoa (packet -> raw -> giaddr) : packet -> interface -> name); @@ -18,7 +18,7 @@ diff -up dhcp-4.3.0a1/server/bootp.c.unicast dhcp-4.3.0a1/server/bootp.c log_info ("%s: network unknown", msgbuf); return; } -@@ -396,6 +397,15 @@ void bootp (packet) +@@ -428,6 +429,15 @@ void bootp (packet) goto out; } @@ -34,18 +34,18 @@ diff -up dhcp-4.3.0a1/server/bootp.c.unicast dhcp-4.3.0a1/server/bootp.c /* If it comes from a client that already knows its address and is not requesting a broadcast response, and we can -diff -up dhcp-4.3.0a1/server/dhcp.c.unicast dhcp-4.3.0a1/server/dhcp.c ---- dhcp-4.3.0a1/server/dhcp.c.unicast 2013-12-13 21:50:38.000000000 +0100 -+++ dhcp-4.3.0a1/server/dhcp.c 2013-12-19 15:12:12.975671140 +0100 -@@ -4627,6 +4627,7 @@ int locate_network (packet) +diff -up dhcp-4.3.4/server/dhcp.c.unicast dhcp-4.3.4/server/dhcp.c +--- dhcp-4.3.4/server/dhcp.c.unicast 2016-03-22 14:16:51.000000000 +0100 ++++ dhcp-4.3.4/server/dhcp.c 2016-05-02 15:10:13.255267511 +0200 +@@ -5132,6 +5132,7 @@ int locate_network (packet) struct data_string data; struct subnet *subnet = (struct subnet *)0; struct option_cache *oc; + int norelay = 0; - /* See if there's a Relay Agent Link Selection Option, or a - * Subnet Selection Option. The Link-Select and Subnet-Select -@@ -4642,12 +4643,24 @@ int locate_network (packet) + #if defined(DHCPv6) && defined(DHCP4o6) + if (dhcpv4_over_dhcpv6 && (packet->dhcp4o6_response != NULL)) { +@@ -5153,12 +5154,24 @@ int locate_network (packet) from the interface, if there is one. If not, fail. */ if (!oc && !packet -> raw -> giaddr.s_addr) { if (packet -> interface -> shared_network) { @@ -75,7 +75,7 @@ diff -up dhcp-4.3.0a1/server/dhcp.c.unicast dhcp-4.3.0a1/server/dhcp.c } /* If there's an option indicating link connection, and it's valid, -@@ -4670,7 +4683,10 @@ int locate_network (packet) +@@ -5185,7 +5198,10 @@ int locate_network (packet) data_string_forget (&data, MDL); } else { ia.len = 4; @@ -87,7 +87,7 @@ diff -up dhcp-4.3.0a1/server/dhcp.c.unicast dhcp-4.3.0a1/server/dhcp.c } /* If we know the subnet on which the IP address lives, use it. */ -@@ -4678,7 +4694,10 @@ int locate_network (packet) +@@ -5193,7 +5209,10 @@ int locate_network (packet) shared_network_reference (&packet -> shared_network, subnet -> shared_network, MDL); subnet_dereference (&subnet, MDL); diff --git a/dhcp.spec b/dhcp.spec index 1a1651b..09ae2e5 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -1,5 +1,5 @@ -# SystemTap support is enabled by default -%{!?sdt:%global sdt 1} +# SystemTap support is disabled by default +%{!?sdt:%global sdt 0} #http://lists.fedoraproject.org/pipermail/devel/2011-August/155358.html %global _hardened_build 1 @@ -12,13 +12,13 @@ %global patchver P1 #%%global VERSION %%{version}%%{prever} -#%%global VERSION %{version} -%global VERSION %%{version}-%%{patchver} +#%%global VERSION %%{version}-%%{patchver} +%global VERSION %{version} Summary: Dynamic host configuration protocol software Name: dhcp -Version: 4.3.3 -Release: 13.%{patchver}%{?dist} +Version: 4.3.4 +Release: 1%{?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. @@ -65,14 +65,14 @@ Patch25: dhcp-improved-xid.patch #Patch26: dhcp-gpxe-cid.patch Patch26: dhcp-duidv4.patch Patch27: dhcp-duid_uuid.patch -Patch28: dhcp-systemtap.patch +#Patch28: dhcp-systemtap.patch Patch29: dhcp-getifaddrs.patch -Patch30: dhcp-omapi-leak.patch + Patch31: dhcp-client-request-release-bind-iface.patch Patch32: dhcp-interval.patch Patch33: dhcp-no-subnet-error2info.patch Patch34: dhcp-sd_notify.patch -Patch35: dhcp-VLAN-ID.patch + Patch36: dhcp-option97-pxe-client-id.patch Patch37: dhcp-stateless-DUID-LLT.patch Patch38: dhcp-dhclient-preinit6s.patch @@ -306,15 +306,12 @@ rm bind/bind.tar.gz %patch27 -p1 -b .duid_uuid # http://sourceware.org/systemtap/wiki/SystemTap -%patch28 -p1 -b .systemtap +#%%patch28 -p1 -b .systemtap # Use getifaddrs() to scan for interfaces on Linux (#449946) # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #28761]) %patch29 -p1 -b .getifaddrs -# Fix several memory leaks in omapi (#978420) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #33990]) -%patch30 -p1 -b .leak # send unicast request/release via correct interface (#800561, #1177351) # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #30544]) @@ -330,10 +327,6 @@ rm bind/bind.tar.gz # support for sending startup notification to systemd (#1077666) %patch34 -p1 -b .sd_notify -# VLAN ID is only bottom 12-bits of TCI (#1259552) -# (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #40591]) -%patch35 -p1 -b .vlanid - # option 97 - pxe-client-id (#1058674) # (Submitted to dhcp-bugs@isc.org - [ISC-Bugs #38110]) %patch36 -p1 -b .option97 @@ -668,6 +661,10 @@ done %doc doc/html/ %changelog +* Fri Apr 29 2016 Jiri Popelka - 12:4.3.4-1 +- 4.3.4 +- disable systemtap (I don't think anybody ever used it) + * Wed Mar 23 2016 Zdenek Dohnal zdohnal@redhat.com - 12:4.3.3-13.P1 - Mentioning the bash script is needed in README.dhclient.d diff --git a/sources b/sources index 4cb6328..aa0c9dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -60f330a69566c52d841ddaab9d7a2662 dhcp-4.3.3-P1.tar.gz +0138319fe2b788cf4bdf34fbeaf9ff54 dhcp-4.3.4.tar.gz