Created attachment 160171 [details] Patch to net/dhcpcd to update to 6.9.2 dhcpcd-6.9.2 has been released with the following changes: * Only run the IPv4LL script and rebuild routes on drop when an address is actually dropped. * Add noup directive to stop master mode bringing an interface up. * Fix compile for old Linux systems. * If only IPv4LL addresses exist, assign a default route to the interface so that IPv4LL can talk to non IPv4LL on the same link. * Set DHCPv4 MTU on routes instead of the interface. This matches IPv6 behaviour and works around dodgy interfaces where a MTU change can reset the PHY causing an infinite loop. * MTU is now requsted by default in dhcpcd.conf again. * noauthrequired also allows unauthenticated FORCERENEW and RECONFIGURE messages. * Simplify the socket code by adding a custom function instead of having the same #ifdef mess for systems without SOCK_CLOEXEC. Thanks to Christos Zoulas. * Don't do platform init or setting interface MTU if too small when testing or dumping leases. * Build new_domain_name from other sources if blank before checking it's blank to remove any prior config. Thanks to Paul Walrath. * Describe adding an IPv6 temporary address. * Don't delete dhcpcd assigned IPv6 link-local addresses when releasing leases. * Reference old DHCPv6 FQDN when processing the hostname. Changes from 6.9.0 to 6.9.1 * Change packaging from bz2 to xz * Fixed waitip * For Prefix Delegation, servers must now support RFC7550 * Fixed detecting host routes in DHCP messages * Fixed ARP checking that failed in some situations * Fixed static address assignment in dhcpcd.conf * Split IPv4LL state from DHCP and into it's own state * Reject any NA/RA with a hop limit != 255 * Replace if_oneup with if_afwaited and af_waited for hook scripts * Fix a potential buffer overrun if an embedded DHCP option is a zero length or fails to parse - thanks to Paul Stewart * Check fclose for errors - thanks to Bob * wpad_url has been added to dhcpcd-definitions.conf * Fix a double free when failing to send a DHCPv6 RELEASE Thanks to Todd Blanchard. * Correct IPv6 public address test, thanks to Michał Kępień * Fix DHCPv6 starting if no public addresses found in the RA but the M or O bit was set * Replaced custom uptime() with clock_gettime(2) * Fix DHCPv6 elapsed time Changes from 6.8.2 to 6.9.0 * Fix IPv6 prefix underflow when confirming deprecated but valid leases * eloop.c and .h are now 100% portable outside of dhcpcd (provided the system supports recent POSIX and either you or the system provide working TAILQ macros) * Allow waitip to work per interface. * Handle ND options in the same way we handle DHCP and DHCPv6 options. * Add new variable of type bitflags:flags where the flags ABCDEFGH, A is 10000000, B is 01000000, etc. Variables with the name reserved are no longer processed. * Improve IN_IFF_TENTATIVE with ip sharing.
Created attachment 160172 [details] Patch to net/dhcpcd to update to 6.9.2
Take for testing.
Created attachment 160249 [details] Poudriere testport failure from 9.3-RELEASE amd64 Hello Roy, Thanks for your work on this. This compiles just fine on 10 and 11 but is having an issue on FreeBSD 9.3. Can you look into what is going on with this? ===> Building for dhcpcd-6.9.2 [ ...<snip>... ] cc -O2 -pipe -fstack-protector -fno-strict-aliasing -std=c99 -DHAVE_CONFIG_H -DNDEBUG -D_GNU_SOURCE -DINET -DINET6 -I./crypt -c if.c -o if.o if.c: In function 'xsocket': if.c:679: error: 'xlags' undeclared (first use in this function) if.c:679: error: (Each undeclared identifier is reported only once if.c:679: error: for each function it appears in.) *** [if.o] Error code 1
Created attachment 160254 [details] Fix compile on systems lacking SOCK_CLOEXEC This should fix it.
(In reply to roy from comment #4) This resolves the 9.3-RELEASE build failures. How do you want to handle this? Do you want a patched 6.9.2 in ports or do you want to roll this into a 6.9.3?
(In reply to Jason Unovitch from comment #5) There could be 6.9.3 shortly as there are other fixes I have since made to address various gcc versions wit different -W* variations. As you're supporting FreeBSD-9.x and that afaik is gcc based I'll probably roll out a new version in the coming days - just need to address one new bug report first.
(In reply to roy from comment #6) Ok. I updated the title to reflect this and I'll consider this on hold until the next patch. I'll test everything out once you have the next update.
dhcpcd-6.9.3 has been released with the following changes: * Fixed compile on various platform/compiler variations * Statically assigned IPv4 addresses now undergo ARP checks * Statically assigned interface_mtu= works again * Statically assigned DHCP variables persist across lease renews Do you need a new patch for the port or is it ok as is?
Created attachment 160714 [details] net/dhcpcd: update 6.8.2 -> 6.9.3 Note this is just a version bump and `make makesum` on the original patch for the PR. This obsolete the 6.9.2 patch that didn't compile on 9.X.
Created attachment 160715 [details] Poudriere testport log from 9.3-RELEASE jail Poudriere builds were done on the following jails successfully with this 6.9.3 patch. 9.3-RELEASE-p24 amd64 9.3-RELEASE-p24 i386 10.1-RELEASE-p19 amd64 10.1-RELEASE-p19 i386 10.2-RELEASE-p2 amd64 10.2-RELEASE-p2 i386 11.0-CURRENT r286886 amd64 11.0-CURRENT r286888 i386 portlint -ac returns no errors. Obsolete the original build failure log for 6.9.2.
Comment on attachment 160254 [details] Fix compile on systems lacking SOCK_CLOEXEC Obsolete patch for 6.9.2 to compile on 9.X as that's been resolved in 6.9.3
A commit references this bug: Author: junovitch Date: Fri Sep 4 16:10:23 UTC 2015 New revision: 396104 URL: https://svnweb.freebsd.org/changeset/ports/396104 Log: net/dhcpcd: update 6.8.2 -> 6.9.3 PR: 202546 Submitted by: Roy Marples <roy@marples.name> (maintainer) Approved by: feld (mentor) Changes: head/net/dhcpcd/Makefile head/net/dhcpcd/distinfo head/net/dhcpcd/pkg-plist
Committed. Thanks for your work Roy!