Commit Graph

75 Commits

Author SHA1 Message Date
Roy Marples
d8194bcd39 Check address flags for tentative and duplicates bits for sanity.
Handle the actual trigger to callout dhcpcd-run-hooks in the DAD callback
instead of on receipt of RTM_NEWADDR directly. This is more code, but it allows
us to use our own DAD engine if we need to.
2013-05-16 10:31:21 +00:00
Roy Marples
a8df1b28fb Use the kernel DAD for IPv6 addresses and finish the action once each
address DAD completes. BSD kernels will require a patch as noted within
the README. The linux netlink part still needs to be written.
2013-05-15 10:27:36 +00:00
Roy Marples
66fd5d67f0 Add IPv6 DAD detection.
Sadly, it seems that userland cannot send from the unspecified address.
This means that for RFC conformancy, we have to rely on the kernel
performing DAD.
2013-05-03 12:11:49 +00:00
Roy Marples
8cc47ba26d White space police 2013-04-04 20:31:04 +00:00
Roy Marples
8de3d52d88 Fix linux default subnet route metric on linux again. 2013-04-02 07:30:13 +00:00
Roy Marples
673e81e5b7 White space brigade 2013-04-02 07:01:11 +00:00
Roy Marples
00ababe4a0 Add DHCPv6 Prefix Delegation support, RFC3633.
Add DHCPv6 Temporary Address support, RFC3315.
2013-04-01 12:15:47 +00:00
Roy Marples
4c9c4b3ea0 Use TAILQ macros for IPv4 routes. 2013-02-19 15:23:53 +00:00
Roy Marples
4b0cbc8974 Use a TAILQ macro for our interface list. 2013-02-19 13:37:42 +00:00
Roy Marples
28382337e1 Remove the xmalloc function.
Now we have removed all our xmalloc like functions dhcpcd can still
try to operate as best it can in low memory conditions.
2013-02-16 13:21:35 +00:00
Roy Marples
10e17e3f63 Remove xzalloc function 2013-02-15 21:45:08 +00:00
Roy Marples
fbbb0875dd Instead of opening link, ipv6, ipv6rs and ipv6ns sockets globally,
only open when the first link wanting this features needs it.
Hopefully fixes #263 and #264.
2013-02-15 20:33:13 +00:00
Roy Marples
875979f614 Move options away from ipv4 state to the interface. 2013-02-03 10:35:59 +00:00
Roy Marples
294eff4df4 Remove IPv4 and DHCP4 specific setup from dhcpcd.c and move into ipv4.c
and dhcp.c
Split configure.c into script.c and move the rest into dhcp.c

This starts the goal of making the base of dhcpcd protocol agnostic and
working towards building IPv4 and/or IPv6 code only to reduce size and
allow growing any future new protocol easier.
2013-02-02 14:05:55 +00:00
Roy Marples
cd3612e5ca Respect the ONLINK flag the prefix option of the RA 2012-12-11 09:00:49 +00:00
Roy Marples
c2e168a8c1 Set %interface for exported IPv6 link local addresses. 2012-11-24 20:11:49 +00:00
Roy Marples
e54dee19ba Implement the core DHCPv6 client for SOLICIT, REQUEST, RENEW, CONFIRM. 2012-11-06 23:40:15 +00:00
Roy Marples
4272b8b79a Save a few bytes 2012-10-31 23:07:06 +00:00
Roy Marples
6855bff4c4 Provide TAILQ_FOREACH_REVERSE_SAFE if not defined.
When removing routes, do it in reverse order.
2012-10-31 20:14:08 +00:00
Roy Marples
3530801140 When we receive a RA with a lifetime of 0, we should just remove
the default router and let any options expire as set in accordance
with RFC4861 section 4.2
2012-10-31 17:10:22 +00:00
Roy Marples
bd236c286d If there is not IPv6 subnet route to delete, don't moan. 2012-10-12 12:13:16 +00:00
Roy Marples
fc6c8ec865 For some reason, Linux likes to re-add the IPv6 network route even if
it exists on a different metric than the default.
2012-08-07 07:03:13 +00:00
Roy Marples
c5fa597676 Seems we need braces here. 2012-08-06 20:31:33 +00:00
Roy Marples
ba0a5b3e17 Don't restore kernel RA defaults or drop RA's when forking.
Add some more memory cleanups when testing forking.
2012-07-12 09:19:14 +00:00
Roy Marples
eebe9a1887 Improve IPv6 RA support by allowing dhcpcd to manage the address and routes
instead of the kernel. dhcpcd will only do this if RA is disabled in the kernel
or dhcpcd has been instructed to do this via dhcpcd.conf(5) ipv6ra_own and
ipv6ra_own_default directives.

Send and process IPv6 Neighbor Solicitions and Adverts to prove router
reachability. If a router cannot be reached in this way then it is expired.

When debugging, all ND messages are displayed which will create a lot of log
spam.

To ease packaging, ./configure now accepts LDFLAGS and --enable-static.
2012-07-05 16:37:41 +00:00