]> git.ipfire.org Git - thirdparty/dhcpcd.git/log
thirdparty/dhcpcd.git
6 years agoIPv6ND: Use generic initialisers rather than inet_pton
Roy Marples [Wed, 24 Apr 2019 11:18:25 +0000 (12:18 +0100)] 
IPv6ND: Use generic initialisers rather than inet_pton

6 years agosun: Fix adding IPv4LL default route
Roy Marples [Wed, 24 Apr 2019 11:00:57 +0000 (11:00 +0000)] 
sun: Fix adding IPv4LL default route

6 years agosun: Bind IPv6ND socket to interface.
Roy Marples [Tue, 23 Apr 2019 18:54:39 +0000 (18:54 +0000)] 
sun: Bind IPv6ND socket to interface.

Just to be on the safe side as it is per interface ....

6 years agoFix compile
Roy Marples [Tue, 23 Apr 2019 18:53:59 +0000 (19:53 +0100)] 
Fix compile

6 years agoFix compile for non-sun
Roy Marples [Tue, 23 Apr 2019 17:34:27 +0000 (18:34 +0100)] 
Fix compile for non-sun

6 years agosun: Open an IPv6ND socket per interface
Roy Marples [Tue, 23 Apr 2019 17:27:52 +0000 (17:27 +0000)] 
sun: Open an IPv6ND socket per interface

This is needed because we need to join the all-nodes multi-cast
group and that only works per interface.

6 years agosun: Making routing work with both 64-bit and 32-bit userlands
Roy Marples [Mon, 22 Apr 2019 12:37:15 +0000 (12:37 +0000)] 
sun: Making routing work with both 64-bit and 32-bit userlands

Basically Dilos is 64-bit userland and SmartOS is 32-bit.
We need code to fit both, this seems to work.

6 years agosun: Fix numerous issues handling route messages
Roy Marples [Sun, 21 Apr 2019 23:56:48 +0000 (23:56 +0000)] 
sun: Fix numerous issues handling route messages

Fix extracting the sockaddr's.
Fix finding the correct alias for new addresses.
Fix finding the correct alias for deleted addresses.
Fix finding the correct flags for the alias.

6 years agosun: Read RTA_IFA for IPv6 routes.
Roy Marples [Sun, 21 Apr 2019 20:17:49 +0000 (20:17 +0000)] 
sun: Read RTA_IFA for IPv6 routes.

As a side note, I find it very odd that the kernel can return
RTA_IFA but ignores it when adding or changing routes!

6 years agosun: Set RTA_IFP and RTA_IFA again for default routes
Roy Marples [Sun, 21 Apr 2019 20:14:42 +0000 (20:14 +0000)] 
sun: Set RTA_IFP and RTA_IFA again for default routes

Note that RTA_IFA doesn't actually work with the kernel
and RTA_SRC doesn't work with RTF_GATEWAY which is more
important.

6 years agosun: Continue walking dlpi links when dlpi_open returns no link
Roy Marples [Sat, 20 Apr 2019 21:11:05 +0000 (00:11 +0300)] 
sun: Continue walking dlpi links when dlpi_open returns no link

The link could have just vanished, or it's in a zone.
As such, continue.

6 years agoauth: Improve comment about DHCPv4 option splitting not working
Roy Marples [Sat, 20 Apr 2019 20:07:16 +0000 (21:07 +0100)] 
auth: Improve comment about DHCPv4 option splitting not working

Patches to fix this welcome :)

6 years agoDHCPv6: fix warning message wording
Roy Marples [Sat, 20 Apr 2019 20:03:21 +0000 (21:03 +0100)] 
DHCPv6: fix warning message wording

6 years agoMerge branch 'dhcpcd-7'
Roy Marples [Fri, 19 Apr 2019 20:54:19 +0000 (21:54 +0100)] 
Merge branch 'dhcpcd-7'

6 years agoReally add consttime_memequal
Roy Marples [Fri, 19 Apr 2019 20:47:37 +0000 (21:47 +0100)] 
Really add consttime_memequal

6 years agocompat: Provide consttime_memequal if not in libc
Roy Marples [Fri, 19 Apr 2019 20:42:07 +0000 (21:42 +0100)] 
compat: Provide consttime_memequal if not in libc

Public domain version by Matthias Drochner <drochner@netbsd.org>

6 years agoauth: Use consttime_memequal(3) to compare hashes
Roy Marples [Fri, 19 Apr 2019 20:40:14 +0000 (21:40 +0100)] 
auth: Use consttime_memequal(3) to compare hashes

This stops any attacker from trying to infer secrets from latency.

Thanks to Maxime Villard <max@m00nbsd.net>

6 years agoDHCP: Fix a potential 1 byte read overflow with DHO_OPTSOVERLOADED
Roy Marples [Fri, 19 Apr 2019 20:00:19 +0000 (21:00 +0100)] 
DHCP: Fix a potential 1 byte read overflow with DHO_OPTSOVERLOADED

This fix basically moves the option length check up and also
corrects an off by one error with it.

Thanks to Maxime Villard <max@m00nbsd.net>

6 years agoDHCPv6: Fix a potential buffer overflow reading NA/TA addresses
Roy Marples [Fri, 19 Apr 2019 08:45:02 +0000 (09:45 +0100)] 
DHCPv6: Fix a potential buffer overflow reading NA/TA addresses

Only copy upto the size of the address option rather than the
option length.

Found by Maxime Villard <max@m00nbsd.net>

6 years agoLinux: Fix compile
Roy Marples [Fri, 19 Apr 2019 08:07:13 +0000 (09:07 +0100)] 
Linux: Fix compile

6 years agoBPF: Set BPF_MCAST flag as on BSD
Roy Marples [Thu, 18 Apr 2019 17:05:56 +0000 (18:05 +0100)] 
BPF: Set BPF_MCAST flag as on BSD

6 years agoARP: Ignore Unicast Poll messages, RFC1122.
Roy Marples [Thu, 18 Apr 2019 16:01:10 +0000 (17:01 +0100)] 
ARP: Ignore Unicast Poll messages, RFC1122.

6 years agoBPF: Set flag indicate whether the packet was broadcast or not
Roy Marples [Thu, 18 Apr 2019 15:56:34 +0000 (16:56 +0100)] 
BPF: Set flag indicate whether the packet was broadcast or not

6 years agoARP: Refactor so that ACD is available for all inet addresses
Roy Marples [Thu, 18 Apr 2019 13:54:47 +0000 (14:54 +0100)] 
ARP: Refactor so that ACD is available for all inet addresses

Callbacks have also been improved so they are more descriptive.

6 years agoChanged mind, use .0
Roy Marples [Thu, 18 Apr 2019 13:54:29 +0000 (14:54 +0100)] 
Changed mind, use .0

6 years agodhcpcd is now 7.99.1
Roy Marples [Thu, 18 Apr 2019 12:01:06 +0000 (13:01 +0100)] 
dhcpcd is now 7.99.1

6 years agoRelease dhcpcd-7.2.0 v7.2.0
Roy Marples [Wed, 17 Apr 2019 22:42:45 +0000 (23:42 +0100)] 
Release dhcpcd-7.2.0

6 years agoLinux: Fix compile
Roy Marples [Wed, 17 Apr 2019 22:18:39 +0000 (22:18 +0000)] 
Linux: Fix compile

6 years agoFreeBSD: fix compile
Roy Marples [Wed, 17 Apr 2019 21:59:47 +0000 (22:59 +0100)] 
FreeBSD: fix compile

6 years agoForgot these from merge
Roy Marples [Wed, 17 Apr 2019 08:17:07 +0000 (08:17 +0000)] 
Forgot these from merge

6 years agoMerge branch 'master' into rbtree
Roy Marples [Wed, 17 Apr 2019 08:15:30 +0000 (08:15 +0000)] 
Merge branch 'master' into rbtree

6 years agoroute: Don't install an IPv4LL default route if static one exists
Roy Marples [Wed, 17 Apr 2019 01:14:00 +0000 (01:14 +0000)] 
route: Don't install an IPv4LL default route if static one exists

6 years agoFix compile
Roy Marples [Tue, 16 Apr 2019 21:45:13 +0000 (22:45 +0100)] 
Fix compile

6 years agosun: Add rbtree support
Roy Marples [Tue, 16 Apr 2019 21:41:47 +0000 (21:41 +0000)] 
sun: Add rbtree support

6 years agoMerge branch 'master' into rbtree
Roy Marples [Tue, 16 Apr 2019 19:02:36 +0000 (20:02 +0100)] 
Merge branch 'master' into rbtree

6 years agoRevert "route: Disable RT_FREE_ROUTE_TABLE by default."
Roy Marples [Tue, 16 Apr 2019 18:48:46 +0000 (19:48 +0100)] 
Revert "route: Disable RT_FREE_ROUTE_TABLE by default."

This reverts commit 46059a78ef33341de80c0085570f71bf0ec15e8b.

6 years agosun: Don't read beyond the sockaddr length when making RTM
Roy Marples [Tue, 16 Apr 2019 18:13:25 +0000 (18:13 +0000)] 
sun: Don't read beyond the sockaddr length when making RTM

6 years agoif: Add a generic function to create an aliased address name
Roy Marples [Tue, 16 Apr 2019 18:12:16 +0000 (18:12 +0000)] 
if: Add a generic function to create an aliased address name

Reduces complexity between IPv4 and IPv6 and silences a warning
about potential string trunctaion if the LUN makes too big an
interface name.

6 years agoduid: If no UUID support, don't warn about unused variable.
Roy Marples [Tue, 16 Apr 2019 18:09:50 +0000 (18:09 +0000)] 
duid: If no UUID support, don't warn about unused variable.

6 years agoBSD: Simplify rtm usage
Roy Marples [Mon, 15 Apr 2019 11:39:07 +0000 (12:39 +0100)] 
BSD: Simplify rtm usage

6 years agosun: Find the interface in if_finishrt
Roy Marples [Mon, 15 Apr 2019 11:30:14 +0000 (14:30 +0300)] 
sun: Find the interface in if_finishrt

Makes the code a bit smaller.

7 years agosun: Update the interface index after plumbing
Roy Marples [Sun, 14 Apr 2019 11:01:21 +0000 (14:01 +0300)] 
sun: Update the interface index after plumbing

Otherwise it's likely zero ....

7 years agosun: Use lo0 if we can't find an interface for our route
Roy Marples [Sun, 14 Apr 2019 10:48:29 +0000 (13:48 +0300)] 
sun: Use lo0 if we can't find an interface for our route

We need to operate on the route, and dhcpcd needs an interface for
each route. This seems to work for now.

7 years agosun: Fix carrier detection, MTU detection and plumbing
Roy Marples [Sun, 14 Apr 2019 09:54:16 +0000 (12:54 +0300)] 
sun: Fix carrier detection, MTU detection and plumbing

dhcpcd no longer needs ifconfig to do the initial plumbing.

7 years agosun: Don't report error if interface does not exist during preinit
Roy Marples [Sun, 14 Apr 2019 09:53:25 +0000 (12:53 +0300)] 
sun: Don't report error if interface does not exist during preinit

For sun this is normal as we only create the initial interface
when adding an address.

7 years agosun: Fix routing issues
Roy Marples [Sat, 13 Apr 2019 15:40:39 +0000 (18:40 +0300)] 
sun: Fix routing issues

Solaris doesn't seem to have interface sets for some routes.
Call RTM_GET for these to discover the outbound interface.

Fix adding default routes.

7 years agosun: Compile once more
Joerg Sonnenberger [Fri, 12 Apr 2019 14:25:06 +0000 (15:25 +0100)] 
sun: Compile once more

7 years agooptions: improve string parsing some more
Roy Marples [Thu, 11 Apr 2019 16:18:29 +0000 (17:18 +0100)] 
options: improve string parsing some more

7 years agooptions: terminate strings that are not quoted
Roy Marples [Wed, 10 Apr 2019 21:58:36 +0000 (22:58 +0100)] 
options: terminate strings that are not quoted

7 years agoDHCP: abort BPF in test mode on receipt of message.
Roy Marples [Wed, 10 Apr 2019 21:33:01 +0000 (22:33 +0100)] 
DHCP: abort BPF in test mode on receipt of message.

7 years agooptions: add static routers and routes to environment
Roy Marples [Wed, 10 Apr 2019 21:19:05 +0000 (22:19 +0100)] 
options: add static routers and routes to environment

7 years agoDHCP: Dont really add static address in test mode
Roy Marples [Wed, 10 Apr 2019 20:46:07 +0000 (21:46 +0100)] 
DHCP: Dont really add static address in test mode

7 years agoscript: Assign a default script
Roy Marples [Wed, 10 Apr 2019 20:36:51 +0000 (21:36 +0100)] 
script: Assign a default script

Fixes a dumb mistake I made earlier.

7 years agoDHCP6: Don't spam syslog if we get the same error over and over
Roy Marples [Wed, 10 Apr 2019 13:10:42 +0000 (14:10 +0100)] 
DHCP6: Don't spam syslog if we get the same error over and over

It will still be spammy if we ask for more than one IA
and one of them has an error, but that's for another day.

7 years agoBSD: Fix detecting the interface for scoped routes
Roy Marples [Tue, 2 Apr 2019 12:35:51 +0000 (13:35 +0100)] 
BSD: Fix detecting the interface for scoped routes

dhcpcd will now detect the IPv6 default route being deleted
by a third party, for example.

7 years agoroute: log which pid deletes routes
Roy Marples [Tue, 2 Apr 2019 11:52:31 +0000 (12:52 +0100)] 
route: log which pid deletes routes

7 years agoroute: Disable RT_FREE_ROUTE_TABLE by default.
Roy Marples [Thu, 28 Mar 2019 13:05:50 +0000 (13:05 +0000)] 
route: Disable RT_FREE_ROUTE_TABLE by default.

The libc malloc implementation should be good enough for most.
The environment variables for dhcpcd-run-hooks probably do
more damage anyway.....

7 years agoscript: Parse argument as a string
Roy Marples [Wed, 27 Mar 2019 17:33:03 +0000 (17:33 +0000)] 
script: Parse argument as a string

This allows "" to equal /dev/null.

7 years agoDHCPv6: Allow nooptions dhcp6_unicast to work.
Roy Marples [Tue, 26 Mar 2019 00:40:57 +0000 (00:40 +0000)] 
DHCPv6: Allow nooptions dhcp6_unicast to work.

This allows dhcpcd to ignore any server set unicast option which
doesn't work.

7 years agoscript: Fix prior when we have listeners but no script
Roy Marples [Mon, 25 Mar 2019 12:20:45 +0000 (12:20 +0000)] 
script: Fix prior when we have listeners but no script

7 years agoscript: Fix not running when empty string or /dev/null
Roy Marples [Mon, 25 Mar 2019 12:17:07 +0000 (12:17 +0000)] 
script: Fix not running when empty string or /dev/null

7 years agooptions: add link_rcvbuf variable
Roy Marples [Thu, 14 Mar 2019 00:17:26 +0000 (00:17 +0000)] 
options: add link_rcvbuf variable

Sets SO_RCVBUF on the link socket to the designated size.
On a busy system this can be inflated to avoid buffer overflow.

However, dhcpcd *will* cope fine with overflow on NetBSD, OpenBSD
and Linux with a call to getifaddrs(3), but that might be too
heavy weight depending on the libc implementation as most
don't report address flags via this method.

7 years agoroute: prefer interfaces with a carrier
Roy Marples [Fri, 8 Mar 2019 13:08:16 +0000 (13:08 +0000)] 
route: prefer interfaces with a carrier

7 years agodhcpcd(8): Remove duplicate the
Masanobu SAITOH [Fri, 8 Mar 2019 12:04:48 +0000 (12:04 +0000)] 
dhcpcd(8): Remove duplicate the

7 years agodhcpcd(8): Remove duplicate the
Masanobu SAITOH [Fri, 8 Mar 2019 12:04:48 +0000 (12:04 +0000)] 
dhcpcd(8): Remove duplicate the

7 years agorbtree: sync with upstream to remove diffs
Roy Marples [Fri, 8 Mar 2019 09:13:57 +0000 (09:13 +0000)] 
rbtree: sync with upstream to remove diffs

7 years agoGuard __RCSID
Roy Marples [Thu, 7 Mar 2019 17:05:53 +0000 (17:05 +0000)] 
Guard __RCSID

7 years agoResync with upstream
Roy Marples [Thu, 7 Mar 2019 15:12:27 +0000 (15:12 +0000)] 
Resync with upstream

7 years agorbtree: reduce more with upstream
Roy Marples [Thu, 7 Mar 2019 12:21:20 +0000 (12:21 +0000)] 
rbtree: reduce more with upstream

7 years agorbtree reference fixed header
Roy Marples [Thu, 7 Mar 2019 12:10:05 +0000 (12:10 +0000)] 
rbtree reference fixed header

7 years agoUse __BIT
Roy Marples [Thu, 7 Mar 2019 12:00:37 +0000 (12:00 +0000)] 
Use __BIT

7 years agoroute: Enable the free route table again by default
Roy Marples [Wed, 6 Mar 2019 01:35:43 +0000 (01:35 +0000)] 
route: Enable the free route table again by default

7 years agoroute: Guard free route list stats
Roy Marples [Tue, 5 Mar 2019 20:59:42 +0000 (20:59 +0000)] 
route: Guard free route list stats

And add a maximum free list size stat

7 years agoIPv4LL: Fix routing on failure
Roy Marples [Tue, 5 Mar 2019 20:04:25 +0000 (20:04 +0000)] 
IPv4LL: Fix routing on failure

7 years agoroute: report usage data when using a free list
Roy Marples [Tue, 5 Mar 2019 09:17:33 +0000 (09:17 +0000)] 
route: report usage data when using a free list

7 years agoLinux: Fix compile
Roy Marples [Tue, 5 Mar 2019 00:36:48 +0000 (00:36 +0000)] 
Linux: Fix compile

7 years agoroute: Remove kroutes and make froutes optional
Roy Marples [Tue, 5 Mar 2019 00:28:36 +0000 (00:28 +0000)] 
route: Remove kroutes and make froutes optional

This is an attempt to reduce the memory dhcpcd uses.
By removing kroutes and froutes from global context.

kroutes are generated at the start of rt_build and freed at
the end.

7 years agorbtree: Fix crash with prior
Roy Marples [Mon, 4 Mar 2019 16:31:08 +0000 (16:31 +0000)] 
rbtree: Fix crash with prior

7 years agorbtree: silence more compile warnings.
Roy Marples [Mon, 4 Mar 2019 16:09:33 +0000 (16:09 +0000)] 
rbtree: silence more compile warnings.

7 years agoRe-arrange so to reduce diff to upsteam.
Roy Marples [Mon, 4 Mar 2019 16:07:05 +0000 (16:07 +0000)] 
Re-arrange so to reduce diff to upsteam.

7 years agoroute: Free route when failing to insert.
Roy Marples [Mon, 4 Mar 2019 14:34:59 +0000 (14:34 +0000)] 
route: Free route when failing to insert.

This means the collection already has the route, so we avoid
leaking memory.

7 years agoOpenBSD: Fix segfaults when deleting MPATH routes
Roy Marples [Mon, 4 Mar 2019 12:37:54 +0000 (12:37 +0000)] 
OpenBSD: Fix segfaults when deleting MPATH routes

7 years agoif: No more need for interface sorting
Roy Marples [Mon, 4 Mar 2019 11:48:04 +0000 (11:48 +0000)] 
if: No more need for interface sorting

7 years agoipv6nd: Don't sort interfaces when picking best address
Roy Marples [Mon, 4 Mar 2019 11:42:06 +0000 (11:42 +0000)] 
ipv6nd: Don't sort interfaces when picking best address

7 years agoroute: replace rt_find with rb_tree_find_node
Roy Marples [Mon, 4 Mar 2019 10:29:56 +0000 (10:29 +0000)] 
route: replace rt_find with rb_tree_find_node

7 years agoroute: sprinkle more assert
Roy Marples [Mon, 4 Mar 2019 01:17:51 +0000 (01:17 +0000)] 
route: sprinkle more assert

7 years agoOpenBSD: add some asserts
Roy Marples [Mon, 4 Mar 2019 01:11:58 +0000 (01:11 +0000)] 
OpenBSD: add some asserts

7 years agoSupport NetBSD-6, 7 and 8.
Roy Marples [Mon, 4 Mar 2019 00:22:23 +0000 (00:22 +0000)] 
Support NetBSD-6, 7 and 8.

7 years agoLinux: now fix compile again ....
Roy Marples [Mon, 4 Mar 2019 00:17:08 +0000 (00:17 +0000)] 
Linux: now fix compile again ....

7 years agoFix compile.... doh
Roy Marples [Mon, 4 Mar 2019 00:09:27 +0000 (00:09 +0000)] 
Fix compile.... doh

7 years agoOpenBSD: Fix crash with rbtree
Roy Marples [Mon, 4 Mar 2019 00:04:21 +0000 (00:04 +0000)] 
OpenBSD: Fix crash with rbtree

7 years agoFreeBSD: Fix compile of rbtree.h
Roy Marples [Sun, 3 Mar 2019 23:45:16 +0000 (23:45 +0000)] 
FreeBSD: Fix compile of rbtree.h

7 years agoFix whitespace
Roy Marples [Sun, 3 Mar 2019 23:44:51 +0000 (23:44 +0000)] 
Fix whitespace

7 years agoFix configure reporting of rb_tree_init
Roy Marples [Sun, 3 Mar 2019 23:39:20 +0000 (23:39 +0000)] 
Fix configure reporting of rb_tree_init

7 years agoroute: Fix memory leak on option or freed route
Roy Marples [Sun, 3 Mar 2019 23:21:33 +0000 (23:21 +0000)] 
route: Fix memory leak on option or freed route

In this case there is no interface to compare the metric for.
As such, compare on pointer so we can maintain a free list.

7 years agoAdd rbtree(3) from NetBSD if not present in libc.
Roy Marples [Sun, 3 Mar 2019 22:59:13 +0000 (22:59 +0000)] 
Add rbtree(3) from NetBSD if not present in libc.

7 years agoIPv4LL: Fix compile with rbtree
Roy Marples [Sun, 3 Mar 2019 22:43:00 +0000 (22:43 +0000)] 
IPv4LL: Fix compile with rbtree

7 years agoReplace route TAILQ macros with rbtree(3) from NetBSD.
Roy Marples [Sun, 3 Mar 2019 19:52:57 +0000 (19:52 +0000)] 
Replace route TAILQ macros with rbtree(3) from NetBSD.

This not only reduces the binary size of dhcpcd by ~5k
on NetBSD/amd64, but also increases the performance of
dhcpcd on systems with large routing tables.
There should be more room for improvement as we can now
call find functions on the tree instead of walking it
ourself if we can generate a suitable key.

This has been greatly inspired from a similar patch from
Donald Sharp <sharpd@cumulusnetworks.com> which used the more
generic RB_ macros found in the BSD tree(3).

Not ready for production use because routes are now sorted
upon insertion so we need to ensure rt_compare is 100% correct
as it's no longer in the order supplied by DHCP.

Lastly, portability gunk needs to be added.

7 years agoLinux: Fix compile without IPv4LL
Roy Marples [Thu, 21 Feb 2019 21:21:06 +0000 (21:21 +0000)] 
Linux: Fix compile without IPv4LL

7 years agoDHCP: Dont close ARP gratuitously
Roy Marples [Tue, 19 Feb 2019 23:15:43 +0000 (23:15 +0000)] 
DHCP: Dont close ARP gratuitously

Note we may wish to handle ACD for DHCP in the future.