]>
git.ipfire.org Git - thirdparty/dhcpcd.git/log
Roy Marples [Wed, 17 Apr 2019 08:17:07 +0000 (08:17 +0000)]
Forgot these from merge
Roy Marples [Wed, 17 Apr 2019 08:15:30 +0000 (08:15 +0000)]
Merge branch 'master' into rbtree
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
Roy Marples [Tue, 16 Apr 2019 21:45:13 +0000 (22:45 +0100)]
Fix compile
Roy Marples [Tue, 16 Apr 2019 21:41:47 +0000 (21:41 +0000)]
sun: Add rbtree support
Roy Marples [Tue, 16 Apr 2019 19:02:36 +0000 (20:02 +0100)]
Merge branch 'master' into rbtree
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 .
Roy Marples [Tue, 16 Apr 2019 18:13:25 +0000 (18:13 +0000)]
sun: Don't read beyond the sockaddr length when making RTM
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.
Roy Marples [Tue, 16 Apr 2019 18:09:50 +0000 (18:09 +0000)]
duid: If no UUID support, don't warn about unused variable.
Roy Marples [Mon, 15 Apr 2019 11:39:07 +0000 (12:39 +0100)]
BSD: Simplify rtm usage
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.
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 ....
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.
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.
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.
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.
Joerg Sonnenberger [Fri, 12 Apr 2019 14:25:06 +0000 (15:25 +0100)]
sun: Compile once more
Roy Marples [Thu, 11 Apr 2019 16:18:29 +0000 (17:18 +0100)]
options: improve string parsing some more
Roy Marples [Wed, 10 Apr 2019 21:58:36 +0000 (22:58 +0100)]
options: terminate strings that are not quoted
Roy Marples [Wed, 10 Apr 2019 21:33:01 +0000 (22:33 +0100)]
DHCP: abort BPF in test mode on receipt of message.
Roy Marples [Wed, 10 Apr 2019 21:19:05 +0000 (22:19 +0100)]
options: add static routers and routes to environment
Roy Marples [Wed, 10 Apr 2019 20:46:07 +0000 (21:46 +0100)]
DHCP: Dont really add static address in test mode
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.
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.
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.
Roy Marples [Tue, 2 Apr 2019 11:52:31 +0000 (12:52 +0100)]
route: log which pid deletes routes
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.....
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.
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.
Roy Marples [Mon, 25 Mar 2019 12:20:45 +0000 (12:20 +0000)]
script: Fix prior when we have listeners but no script
Roy Marples [Mon, 25 Mar 2019 12:17:07 +0000 (12:17 +0000)]
script: Fix not running when empty string or /dev/null
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.
Roy Marples [Fri, 8 Mar 2019 13:08:16 +0000 (13:08 +0000)]
route: prefer interfaces with a carrier
Masanobu SAITOH [Fri, 8 Mar 2019 12:04:48 +0000 (12:04 +0000)]
dhcpcd(8): Remove duplicate the
Masanobu SAITOH [Fri, 8 Mar 2019 12:04:48 +0000 (12:04 +0000)]
dhcpcd(8): Remove duplicate the
Roy Marples [Fri, 8 Mar 2019 09:13:57 +0000 (09:13 +0000)]
rbtree: sync with upstream to remove diffs
Roy Marples [Thu, 7 Mar 2019 17:05:53 +0000 (17:05 +0000)]
Guard __RCSID
Roy Marples [Thu, 7 Mar 2019 15:12:27 +0000 (15:12 +0000)]
Resync with upstream
Roy Marples [Thu, 7 Mar 2019 12:21:20 +0000 (12:21 +0000)]
rbtree: reduce more with upstream
Roy Marples [Thu, 7 Mar 2019 12:10:05 +0000 (12:10 +0000)]
rbtree reference fixed header
Roy Marples [Thu, 7 Mar 2019 12:00:37 +0000 (12:00 +0000)]
Use __BIT
Roy Marples [Wed, 6 Mar 2019 01:35:43 +0000 (01:35 +0000)]
route: Enable the free route table again by default
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
Roy Marples [Tue, 5 Mar 2019 20:04:25 +0000 (20:04 +0000)]
IPv4LL: Fix routing on failure
Roy Marples [Tue, 5 Mar 2019 09:17:33 +0000 (09:17 +0000)]
route: report usage data when using a free list
Roy Marples [Tue, 5 Mar 2019 00:36:48 +0000 (00:36 +0000)]
Linux: Fix compile
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.
Roy Marples [Mon, 4 Mar 2019 16:31:08 +0000 (16:31 +0000)]
rbtree: Fix crash with prior
Roy Marples [Mon, 4 Mar 2019 16:09:33 +0000 (16:09 +0000)]
rbtree: silence more compile warnings.
Roy Marples [Mon, 4 Mar 2019 16:07:05 +0000 (16:07 +0000)]
Re-arrange so to reduce diff to upsteam.
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.
Roy Marples [Mon, 4 Mar 2019 12:37:54 +0000 (12:37 +0000)]
OpenBSD: Fix segfaults when deleting MPATH routes
Roy Marples [Mon, 4 Mar 2019 11:48:04 +0000 (11:48 +0000)]
if: No more need for interface sorting
Roy Marples [Mon, 4 Mar 2019 11:42:06 +0000 (11:42 +0000)]
ipv6nd: Don't sort interfaces when picking best address
Roy Marples [Mon, 4 Mar 2019 10:29:56 +0000 (10:29 +0000)]
route: replace rt_find with rb_tree_find_node
Roy Marples [Mon, 4 Mar 2019 01:17:51 +0000 (01:17 +0000)]
route: sprinkle more assert
Roy Marples [Mon, 4 Mar 2019 01:11:58 +0000 (01:11 +0000)]
OpenBSD: add some asserts
Roy Marples [Mon, 4 Mar 2019 00:22:23 +0000 (00:22 +0000)]
Support NetBSD-6, 7 and 8.
Roy Marples [Mon, 4 Mar 2019 00:17:08 +0000 (00:17 +0000)]
Linux: now fix compile again ....
Roy Marples [Mon, 4 Mar 2019 00:09:27 +0000 (00:09 +0000)]
Fix compile.... doh
Roy Marples [Mon, 4 Mar 2019 00:04:21 +0000 (00:04 +0000)]
OpenBSD: Fix crash with rbtree
Roy Marples [Sun, 3 Mar 2019 23:45:16 +0000 (23:45 +0000)]
FreeBSD: Fix compile of rbtree.h
Roy Marples [Sun, 3 Mar 2019 23:44:51 +0000 (23:44 +0000)]
Fix whitespace
Roy Marples [Sun, 3 Mar 2019 23:39:20 +0000 (23:39 +0000)]
Fix configure reporting of rb_tree_init
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.
Roy Marples [Sun, 3 Mar 2019 22:59:13 +0000 (22:59 +0000)]
Add rbtree(3) from NetBSD if not present in libc.
Roy Marples [Sun, 3 Mar 2019 22:43:00 +0000 (22:43 +0000)]
IPv4LL: Fix compile with rbtree
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.
Roy Marples [Thu, 21 Feb 2019 21:21:06 +0000 (21:21 +0000)]
Linux: Fix compile without IPv4LL
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.
Roy Marples [Tue, 19 Feb 2019 23:02:17 +0000 (23:02 +0000)]
DHCP: free the ARP state of the address once announced
This closes the ARP socket if nothing more todo.
Roy Marples [Tue, 19 Feb 2019 22:07:08 +0000 (22:07 +0000)]
Guard with IP_PKTINFO as well.
Roy Marples [Tue, 19 Feb 2019 21:46:06 +0000 (21:46 +0000)]
Fold all CMSG parsing into a common function.
Makes dhcpcd smaller still.
Roy Marples [Tue, 19 Feb 2019 21:15:14 +0000 (21:15 +0000)]
DHCP: Close the BPF socket once BOUND
Receive all messages via the global BOOTPC socket.
This makes the resource usage of dhcpcd a small bit lighter.
Roy Marples [Tue, 19 Feb 2019 08:07:37 +0000 (08:07 +0000)]
BSD: Don't keep PF LINK socket open needlessly
Saves a tiny bit of resource when dhcpcd is running.
Roy Marples [Sun, 17 Feb 2019 09:36:11 +0000 (09:36 +0000)]
Remove the send/recv structures from dhcpcd context and allocate
on stack as and when required.
Rather than peaking and checking for truncation for receiving,
just allocate a large enough buffer upfront.
Roy Marples [Thu, 14 Feb 2019 21:26:47 +0000 (21:26 +0000)]
Fix whitespace introduced by my last patch
Kenny Napier [Thu, 14 Feb 2019 21:23:16 +0000 (21:23 +0000)]
build: exit the SUBDIR build loop if an error is detected
Roy Marples [Mon, 11 Feb 2019 18:07:25 +0000 (18:07 +0000)]
Remove gmake-4 note, gmake-3 works again.
Might require newer gmake-4, but heh ho.
Roy Marples [Mon, 11 Feb 2019 18:02:15 +0000 (18:02 +0000)]
make: support gmake-3 again.
Roy Marples [Mon, 11 Feb 2019 17:45:04 +0000 (17:45 +0000)]
linux: Fix compile on old RedHat/CentOS systems
Roy Marples [Sat, 9 Feb 2019 17:04:01 +0000 (17:04 +0000)]
DHCP: Don't dictate the outbound interface when unicasting
Correct routing should have been setup already and this avoids
a buggy IP_PKTINFO implementation on NetBSD.
Roy Marples [Fri, 8 Feb 2019 17:14:26 +0000 (17:14 +0000)]
BSD: don't log an error if the interface departs during SIOCGIFALIAS
Chris Clayton [Fri, 8 Feb 2019 16:35:36 +0000 (16:35 +0000)]
fix build with --disable-inet6
Roy Marples [Fri, 8 Feb 2019 16:32:36 +0000 (16:32 +0000)]
dhcp: if the netmask is all ones, it's a host route
Roy Marples [Thu, 7 Feb 2019 21:20:41 +0000 (21:20 +0000)]
Release dhcpcd-7.1.1
Roy Marples [Wed, 6 Feb 2019 20:07:53 +0000 (20:07 +0000)]
Not using c++11, go back to attribute
Roy Marples [Wed, 6 Feb 2019 20:05:52 +0000 (20:05 +0000)]
Fix __fallthrough directive on non GNUC
Roy Marples [Wed, 6 Feb 2019 19:39:00 +0000 (19:39 +0000)]
gcc: appease gcc-7's implicit fallthrough warning
We now need to define __fallthrough for one part because
cpp strips comments from preprocessed code and I don't want to
enforce needing -C in CFLAGS to avoid this.
Roy Marples [Wed, 6 Feb 2019 19:38:01 +0000 (19:38 +0000)]
IP4: No need to set a variable to arp announce the address
Roy Marples [Wed, 6 Feb 2019 19:36:36 +0000 (19:36 +0000)]
ARP: make the announce address a constant
Roy Marples [Wed, 30 Jan 2019 22:40:12 +0000 (22:40 +0000)]
link: introduce LINK_DOWN_IFFUP
Set this state so when we preserve config on carrier loss.
This allows us to remove config if the interface is then brought down.
Roy Marples [Sat, 26 Jan 2019 02:13:29 +0000 (02:13 +0000)]
FreeBSD: avoid kernel panics when adding on-link IPv6 routes
Also warn that OS does not support IPv6 address sharing.
Roy Marples [Sat, 26 Jan 2019 00:16:09 +0000 (00:16 +0000)]
ssid is not NULL terminated anymore.
Roy Marples [Sat, 26 Jan 2019 00:08:43 +0000 (00:08 +0000)]
BSD: treat LINK_STATE_UNKNOWN as DOWN if media is invalid
On BSD, some interfaces might emit RTM_IFINFO before the link state
has initialised. Mainly wireless cards.
If the intial carrier call says media state change is valid,
we need to treat LINK_STATE_UNKNOWN as LINK_DOWN rather than
LINK_UP.
Roy Marples [Wed, 23 Jan 2019 13:50:34 +0000 (13:50 +0000)]
IP6ND: Remove #defines for functions when INET6 is disabled
This allows us to optimise the code better and hopefully
become less error prone.
Roy Marples [Wed, 23 Jan 2019 13:05:12 +0000 (13:05 +0000)]
BSD: Remove silly guards
Roy Marples [Wed, 23 Jan 2019 13:01:19 +0000 (13:01 +0000)]
DHCP6: Remove #defines for functions when DHCP6 is disabled
This allows us to optimise the code better and hopefully
become less error prone.
Roy Marples [Wed, 23 Jan 2019 11:43:11 +0000 (11:43 +0000)]
IP4: Remove #defines for functions when INET is disabled
This allows us to optimise the code better and hopefully
become less error prone.