OpenBSD CVS

CVS log for src/sbin/slaacd/frontend.c


[BACK] Up to [local] / src / sbin / slaacd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.67 / (download) - annotate - [select for diffs], Mon Jun 3 17:58:33 2024 UTC (5 days, 10 hours ago) by deraadt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.66: +2 -2 lines
Diff to previous 1.66 (colored)

more sleepy florian knf issues

Revision 1.66 / (download) - annotate - [select for diffs], Sun Feb 11 21:29:12 2024 UTC (3 months, 3 weeks ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5
Changes since 1.65: +1 -2 lines
Diff to previous 1.65 (colored)

Remove needless includes of netinet6/ip6_var.h header in userland.

OK millert@

Revision 1.65 / (download) - annotate - [select for diffs], Thu Dec 14 09:58:59 2023 UTC (5 months, 3 weeks ago) by claudio
Branch: MAIN
Changes since 1.64: +5 -5 lines
Diff to previous 1.64 (colored)

Use imsg_get_fd() to access the fd passed with the imsg.
Go ahead florian@ OK tb@

Revision 1.64 / (download) - annotate - [select for diffs], Tue Jul 12 16:54:59 2022 UTC (22 months, 4 weeks ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.63: +4 -109 lines
Diff to previous 1.63 (colored)

Rewrite state machine in the style of dhcpleased(8).

It is less cluttered, easier to reason about and fixes some bugs in
passing that would have been difficult in the old state machine.

Stale IPv6 addresses, default routes and nameservers are now correctly
removed when moving from one IPv6 enabled network to another IPv6
enabled network.
Default routes and nameservers correctly expire when they are not
refreshed and nameservers are updated when router advertisements
change the nameserver option.

Testing & input caspar@

Putting it in now to get wider testing and shake out bugs, discussed
with deraadt@ at r2k22.

Revision 1.55.2.1 / (download) - annotate - [select for diffs], Mon Mar 21 16:41:17 2022 UTC (2 years, 2 months ago) by bluhm
Branch: OPENBSD_6_9
Changes since 1.55: +1 -2 lines
Diff to previous 1.55 (colored) next main 1.56 (colored)

Prevent crash of unprivileged engine process (pledged stdio).

The length field of a DNS label in the DNS search list option is an 8
bit unsigned value. parse_dnssl() treats the search list option as an
array of char, which are signed on most archs. When we read this value
into an int variable it gets sign extended, allowing it to bypass
sanity checks and eventually we pass it as the length to memcpy which
treats it as a huge unsigned value leading to a heap overflow.

An easy fix would be change the signature of parse_dnssl to
parse_dnssl(uint8_t* data, int datalen).

However, the DNS search list option is unused and the function fails
to check if the parsed value is a valid domain name. The function is
also getting in the way of future work so it's best to just delete it.

The problem was found and reported by qualys, thanks!

from florian@; OK bluhm@

this is errata/6.9/033_slaacd.patch.sig

Revision 1.58.2.1 / (download) - annotate - [select for diffs], Mon Mar 21 16:39:56 2022 UTC (2 years, 2 months ago) by bluhm
Branch: OPENBSD_7_0
Changes since 1.58: +1 -2 lines
Diff to previous 1.58 (colored) next main 1.59 (colored)

Prevent crash of unprivileged engine process (pledged stdio).

The length field of a DNS label in the DNS search list option is an 8
bit unsigned value. parse_dnssl() treats the search list option as an
array of char, which are signed on most archs. When we read this value
into an int variable it gets sign extended, allowing it to bypass
sanity checks and eventually we pass it as the length to memcpy which
treats it as a huge unsigned value leading to a heap overflow.

An easy fix would be change the signature of parse_dnssl to
parse_dnssl(uint8_t* data, int datalen).

However, the DNS search list option is unused and the function fails
to check if the parsed value is a valid domain name. The function is
also getting in the way of future work so it's best to just delete it.

The problem was found and reported by qualys, thanks!

from florian@; OK bluhm@

this is errata/7.0/017_slaacd.patch.sig

Revision 1.63 / (download) - annotate - [select for diffs], Mon Mar 21 16:25:47 2022 UTC (2 years, 2 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.62: +1 -2 lines
Diff to previous 1.62 (colored)

Prevent crash of unprivileged engine process (pledged stdio).

The length field of a DNS label in the DNS search list option is an 8
bit unsigned value. parse_dnssl() treats the search list option as an
array of char, which are signed on most archs. When we read this value
into an int variable it gets sign extended, allowing it to bypass
sanity checks and eventually we pass it as the length to memcpy which
treats it as a huge unsigned value leading to a heap overflow.

An easy fix would be change the signature of parse_dnssl to
parse_dnssl(uint8_t* data, int datalen).

However, the DNS search list option is unused and the function fails
to check if the parsed value is a valid domain name. The function is
also getting in the way of future work so it's best to just delete it.

The problem was found and reported by qualys, thanks!

OK bluhm

Revision 1.62 / (download) - annotate - [select for diffs], Tue Jan 4 06:17:46 2022 UTC (2 years, 5 months ago) by florian
Branch: MAIN
Changes since 1.61: +38 -6 lines
Diff to previous 1.61 (colored)

Wait for the link-local address to become non-tentative.
Otherwise we just end up with an ugly "Can't assign requested address"
error from sendmsg(2).
OK phessler

Revision 1.61 / (download) - annotate - [select for diffs], Mon Dec 27 15:18:51 2021 UTC (2 years, 5 months ago) by florian
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored)

knf

Revision 1.60 / (download) - annotate - [select for diffs], Sun Nov 28 12:51:52 2021 UTC (2 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.59: +30 -1 lines
Diff to previous 1.59 (colored)

Make sure the interface still exists before updating it.

When we get a route message, for example an address being added
(RTM_NEWADDR, but the problem exists with most of the route messages)
and the interface gets unplugged at just the right moment
if_nametoindex(3) will return NULL. We will pass NULL through
update_iface() to get_xflags() which will then crash because we
dereference the NULL pointer there.

OK kn

Revision 1.59 / (download) - annotate - [select for diffs], Sun Nov 28 12:49:55 2021 UTC (2 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.58: +31 -31 lines
Diff to previous 1.58 (colored)

Make sure if_index is set in all case statements and use it
consistently. This makes the next diff easier, also consistency is
good.
OK kn

Revision 1.58 / (download) - annotate - [select for diffs], Tue Aug 24 14:56:06 2021 UTC (2 years, 9 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE
Branch point for: OPENBSD_7_0
Changes since 1.57: +12 -1 lines
Diff to previous 1.57 (colored)

When an interface disappears, e.g. when a usb dongle gets unplugged,
we get a RTM_IFANNOUNCE message not a RTM_IFINFO message.
Handle this message to not accumulate "unknown" interfaces.
While here fix a bug where we would remove an interface only in the
engine process but not in the frontend when an interfaces gets
unplugged while we process a RTM_IFINFO message for it.
OK benno

Revision 1.57 / (download) - annotate - [select for diffs], Mon Jul 12 15:09:19 2021 UTC (2 years, 10 months ago) by beck
Branch: MAIN
Changes since 1.56: +3 -3 lines
Diff to previous 1.56 (colored)

Change the error reporting pattern throughout the tree when unveil
fails to report the path that the failure occured on. Suggested by
deraadt@ after some tech discussion.

Work done and verified by Ashton Fagg <ashton@fagg.id.au>

ok deraadt@ semarie@ claudio@

Revision 1.56 / (download) - annotate - [select for diffs], Sat May 1 11:53:06 2021 UTC (3 years, 1 month ago) by florian
Branch: MAIN
Changes since 1.55: +6 -3 lines
Diff to previous 1.55 (colored)

Allow running in single user mode where /var/empty doesn't exist by
switching from chroot("/var/empty") to unveil("/", "").
This is just an extra pair of suspenders since these processes
pledge(2) to not access the filesystem.
OK deraadt

Revision 1.55 / (download) - annotate - [select for diffs], Sun Mar 21 18:25:24 2021 UTC (3 years, 2 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE
Branch point for: OPENBSD_6_9
Changes since 1.54: +5 -5 lines
Diff to previous 1.54 (colored)

Use new terminology of RFC 8981 and (mechanically) replace "privacy"
with "temporary".

Revision 1.54 / (download) - annotate - [select for diffs], Sat Mar 20 17:07:49 2021 UTC (3 years, 2 months ago) by florian
Branch: MAIN
Changes since 1.53: +6 -4 lines
Diff to previous 1.53 (colored)

RFC 8981 allows the configuration of only temporary IPv6 addresses.
Track autoconf and temporary flag individually to be able to support
this.
OK kn

Revision 1.53 / (download) - annotate - [select for diffs], Sat Mar 20 16:46:03 2021 UTC (3 years, 2 months ago) by kn
Branch: MAIN
Changes since 1.52: +5 -2 lines
Diff to previous 1.52 (colored)

Fix SMALL build when done from sbin/slaacd

distrib/special/slaccd is the actual SMALL user but having it build from here
is useful, too;  in fact, it showed some more unused variables under SMALL.

OK florian

Revision 1.52 / (download) - annotate - [select for diffs], Thu Mar 11 19:53:40 2021 UTC (3 years, 2 months ago) by florian
Branch: MAIN
Changes since 1.51: +2 -2 lines
Diff to previous 1.51 (colored)

When RFC 8981 obsoleted RFC 4941 the terminology changed from
"privacy extensions" to "temporary address extensions"

Change ifconfig(8) to output temporary after temporary addresses and
add "temporary" option which is an alias for autoconfprivacy for now.

Also make AUTOCONF6TEMP a positiv flag that is set by default.
Previously the negative flag "INET6_NOPRIVACY" was set when privacy
addresses were disabled. This makes the flags output less ugly and
will allow us to disable autoconf addresses while having temporary
addresses enabled in the future.

More work is needed in slaacd.

input benno, jmc, deraadt
previous verison OK benno
OK jmc, kn

Revision 1.51 / (download) - annotate - [select for diffs], Sun Mar 7 10:31:20 2021 UTC (3 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.50: +46 -66 lines
Diff to previous 1.50 (colored)

Fold get_lladdr into update_iface, now the only caller.
This allows us to pass the link state over to engine here instead of
in update_addr which is not available in small.
This gets us more in line dhcpleased.

Revision 1.50 / (download) - annotate - [select for diffs], Sun Mar 7 10:30:13 2021 UTC (3 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.49: +1 -3 lines
Diff to previous 1.49 (colored)

No need to pass the link local and hw address around, we have it
already in the interface on the engine side.

Revision 1.49 / (download) - annotate - [select for diffs], Tue Jan 19 16:49:56 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.48: +3 -3 lines
Diff to previous 1.48 (colored)

Make imsg event structs static to fix -fno-common.
Follows claudio's lead in ospfd et al.
Problem reported by mortimer.

Revision 1.48 / (download) - annotate - [select for diffs], Tue Jan 19 16:49:10 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.47: +2 -11 lines
Diff to previous 1.47 (colored)

Move control_state and ctl_conns to control.c, it's not needed
elsewhere and unbreaks -fno-common.
Inspired by claudio
Problem reported by mortimer

Revision 1.47 / (download) - annotate - [select for diffs], Tue Jan 19 16:48:20 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.46: +3 -4 lines
Diff to previous 1.46 (colored)

No need for a global slaacd_process; unbreaks -fno-common.
Problem reported by mortimer

Revision 1.46 / (download) - annotate - [select for diffs], Sun Jan 17 15:39:17 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.45: +5 -1 lines
Diff to previous 1.45 (colored)

Mark up locations of KAME hack with #ifdef __KAME__ so that we can
find it again if and when we no longer need it. No object change.

Revision 1.45 / (download) - annotate - [select for diffs], Sat Jan 16 18:02:34 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.44: +3 -2 lines
Diff to previous 1.44 (colored)

Oops, fix previous.
We only want to recover the scope id if it hasn't already been
recovered.
But we want to always copy the link-local address.

Revision 1.44 / (download) - annotate - [select for diffs], Sat Jan 16 17:45:45 2021 UTC (3 years, 4 months ago) by florian
Branch: MAIN
Changes since 1.43: +6 -4 lines
Diff to previous 1.43 (colored)

Only recover the KAME embedded scope if the sin6_scope_id is not
initialized. If it is set assume the scope was already recovered.
OK bluhm, claudio

Revision 1.43 / (download) - annotate - [select for diffs], Tue Dec 29 19:51:15 2020 UTC (3 years, 5 months ago) by benno
Branch: MAIN
Changes since 1.42: +5 -1 lines
Diff to previous 1.42 (colored)

getifaddrs() can return entries where ifa_addr is NULL. Check for this
before accessing anything in ifa_addr. florian@ mentioned this might
be a problem in slaacd(8) and rad(8) after claudio@ fixed it in bgpd,
so i went looking...

Revision 1.42 / (download) - annotate - [select for diffs], Tue Dec 1 18:08:53 2020 UTC (3 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.41: +15 -16 lines
Diff to previous 1.41 (colored)

Sync get_ifrdomain() to rad(8) version by removing a useles (void)
cast in front of a strlcpy(3).
tb@ had pointed out that the use in rad(8) was not consistent.
I consider the void cast a useless annotation, either the strl*
functions must have the canonical trucation check or it must be
obvious that truncation cannot happen or is not a problem.
While at it remove a bunch more casts that snuck in over time.

Revision 1.41 / (download) - annotate - [select for diffs], Sun Nov 29 09:39:33 2020 UTC (3 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored)

Fix previous; we need to set the icmp6ev in the interface to NULL
otherwise we are referencing the wrong one when the rdomain changes.
Sorry for not spotting it earlier.

Revision 1.40 / (download) - annotate - [select for diffs], Sat Nov 28 22:06:25 2020 UTC (3 years, 6 months ago) by naddy
Branch: MAIN
Changes since 1.39: +10 -8 lines
Diff to previous 1.39 (colored)

improve legibility of the newly introduced unref_icmp6ev() before this
code gets copied around; ok florian@

Revision 1.39 / (download) - annotate - [select for diffs], Sat Nov 28 07:59:26 2020 UTC (3 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.38: +9 -4 lines
Diff to previous 1.38 (colored)

An interface might have disappeared or switched rdomains while we
waited for a FD. It's not a fatal condition if it arrives late.
OK tb

Revision 1.38 / (download) - annotate - [select for diffs], Sat Nov 28 07:58:50 2020 UTC (3 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.37: +18 -18 lines
Diff to previous 1.37 (colored)

Reduce code duplication by introducing unref_icmp6ev().
OK tb

Revision 1.37 / (download) - annotate - [select for diffs], Sat Nov 28 07:58:19 2020 UTC (3 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.36: +44 -26 lines
Diff to previous 1.36 (colored)

Handle the case of an autoconf interface changing its rdomain.
To avoide code duplication have get_icmp6ev_by_rdomain() either
return an existing icmp6ev in the correct rdomain or allocate one.
OK tb

Revision 1.36 / (download) - annotate - [select for diffs], Thu Sep 17 18:18:07 2020 UTC (3 years, 8 months ago) by semarie
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.35: +8 -8 lines
Diff to previous 1.35 (colored)

With the multi rdomain support, slaacd now sees all icmpv6 packets and
filters in userland.  But the packet type check was placed at the
wrong place so the hoplimit check was done against every icmpv6 packet
but no all of them have a hoplimit constraint.

tested and ok by me, committed on behalf of florian@

Revision 1.35 / (download) - annotate - [select for diffs], Mon Sep 14 09:07:05 2020 UTC (3 years, 8 months ago) by florian
Branch: MAIN
Changes since 1.34: +186 -72 lines
Diff to previous 1.34 (colored)

Let slaacd handle all rdomains in a single daemon.
Suggested by claudio and matthieu
Testing matthieu
Putting it in now to get enough testing before release so that there
is enough time to back it out, suggested by deraadt

Revision 1.34 / (download) - annotate - [select for diffs], Wed Aug 19 05:55:08 2020 UTC (3 years, 9 months ago) by florian
Branch: MAIN
Changes since 1.33: +12 -4 lines
Diff to previous 1.33 (colored)

When sending a router solicitation use the link-layer (mac) address of
the outgoing interface in the source link-layer address ICMPv6 option
instead of the address of the last configured autoconf interface.

It is not the most efficient way to first transform an if_index into
and interface name and then iterate over all addresses but this is
also not in the hot path. Under normal operations slaacd will send
one solicitation when an interface is set to autoconf and then
never again because it will see unsolicitated router advertisements
before addresses expire.

OK kn

Revision 1.33 / (download) - annotate - [select for diffs], Fri Jul 3 17:42:50 2020 UTC (3 years, 11 months ago) by florian
Branch: MAIN
Changes since 1.32: +4 -4 lines
Diff to previous 1.32 (colored)

Rename IN6_IFF_PRIVACY to IN6_IFF_TEMPORARY.
This is the name the other BSDs use for this, there is no reason to
be different, the IPv6 RFCs call these addresses temporary, and some
software in ports wants to use this as well.
Most recently pointed out for firefox by landry.
OK claudio, sthen

Revision 1.32 / (download) - annotate - [select for diffs], Fri Apr 17 06:27:32 2020 UTC (4 years, 1 month ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.31: +26 -5 lines
Diff to previous 1.31 (colored)

Only pay attention to interfaces in our routing domain
OK tohe

Revision 1.31 / (download) - annotate - [select for diffs], Mon Nov 11 05:48:46 2019 UTC (4 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.30: +12 -1 lines
Diff to previous 1.30 (colored)

    Send DNS proposals on route socket when new nameservers are learned
    from router advertisements.
    unwind(8) can solicit DNS proposals by sending an empty RTM_PROPOSAL
    message with priority RTP_PROPOSAL_SOLICIT.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Nov 7 08:45:31 2019 UTC (4 years, 7 months ago) by florian
Branch: MAIN
Changes since 1.29: +1 -64 lines
Diff to previous 1.29 (colored)

    Remove half way implemented address and default route proposals.
    This never worked out and is getting in the way of DNS proposals which
    are coming next.
    No (intended) functional change.
    Input & OK tohe

Revision 1.29 / (download) - annotate - [select for diffs], Tue Nov 5 15:43:18 2019 UTC (4 years, 7 months ago) by florian
Branch: MAIN
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

trailing whitespace

Revision 1.28 / (download) - annotate - [select for diffs], Tue Sep 3 07:55:07 2019 UTC (4 years, 9 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.27: +15 -9 lines
Diff to previous 1.27 (colored)

It's perfectly normal for the SIOCGIFFLAGS and SIOCGIFXFLAGS to fail
when an interface is gone. Bubble the error up and let the callers
deal with it instead of exiting.
OK deraadt, benno

Revision 1.27 / (download) - annotate - [select for diffs], Fri Jun 28 13:32:46 2019 UTC (4 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.26: +9 -10 lines
Diff to previous 1.26 (colored)

When system calls indicate an error they return -1, not some arbitrary
value < 0.  errno is only updated in this case.  Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.

Revision 1.26 / (download) - annotate - [select for diffs], Fri Mar 15 16:45:33 2019 UTC (5 years, 2 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.25: +4 -1 lines
Diff to previous 1.25 (colored)

Do not accept a control socket if we already have one.
OK pamela

Revision 1.25 / (download) - annotate - [select for diffs], Mon Mar 11 22:53:29 2019 UTC (5 years, 2 months ago) by pamela
Branch: MAIN
Changes since 1.24: +9 -1 lines
Diff to previous 1.24 (colored)

Make slaacd(8) imsg processing more paranoid. Unexpected size mismatches
mean we should no longer trust processes, so we call fatal(x). The
control socket is the exception, where we ignore rather than allow
crashes due to data from the outside.
suggestion/input and OK florian@

Revision 1.24 / (download) - annotate - [select for diffs], Mon Mar 11 14:51:20 2019 UTC (5 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored)

While strtonum(3) does set errno, we already use errstr to show what's
going on so use log_warnx to not print a useless 2nd error message.

OK pamela

Revision 1.23 / (download) - annotate - [select for diffs], Fri Mar 1 16:34:58 2019 UTC (5 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.22: +3 -3 lines
Diff to previous 1.22 (colored)

trailing whitespace

Revision 1.22 / (download) - annotate - [select for diffs], Mon Jul 23 17:25:52 2018 UTC (5 years, 10 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.21: +16 -1 lines
Diff to previous 1.21 (colored)

When moving between networks slaacd configures new addresses but
leaves old ones behind. The IPv6 RFCs don't seem to offer guidance on
what to do in this case. (RFC 5220 discusses related issues, but not
exactly this.)

It seems a bit harsh to just delete old addresses - a naive
implementation can easily lead to flip-flopping between two prefixes.

Instead set the preferred lifetime to 0 for all addresses on an
interface when the link goes down, thus marking addresses as
deprecated but still usable. When the link comes back send a router
solicitation. If we are still on the old network and receive a router
advertisement the preferred lifetime will increase and the addresses
will no longer be deprecated.

If we moved to a new network we will get new router advertisements and
form new addresses. The old ones will stay deprecated and the address
selection algorithm will prefer new addresses.

Problem reported by many.

testing & OK phessler

Revision 1.21 / (download) - annotate - [select for diffs], Mon Jul 23 06:14:14 2018 UTC (5 years, 10 months ago) by florian
Branch: MAIN
Changes since 1.20: +66 -1 lines
Diff to previous 1.20 (colored)

Handle duplicate address detection failures.

We get notified when duplication is detected on the route socket. For
privacy addresses simply generate a new random address. If we have
soii enabled increase the dad counter on the prefix and generate a new
address. For eui64 addresses nothing can be done.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jun 6 14:08:28 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored)

After pledge the frontend process is only accepting from
an AF_UNIX socket (the control socket) so replace inet with
unix pledge.

Revision 1.19 / (download) - annotate - [select for diffs], Fri May 18 13:21:46 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.18: +6 -8 lines
Diff to previous 1.18 (colored)

merge two ifndef small blocks; no functional change

Revision 1.18 / (download) - annotate - [select for diffs], Fri May 18 11:19:03 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.17: +2 -6 lines
Diff to previous 1.17 (colored)

dead stores; from llvm scan-build

Revision 1.17 / (download) - annotate - [select for diffs], Thu May 17 13:39:00 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.16: +43 -1 lines
Diff to previous 1.16 (colored)

Handle RTM_DELETE of slaacd managed default route by re-inserting it.
Problem pointed out & OK phessler

Revision 1.16 / (download) - annotate - [select for diffs], Thu May 17 11:51:27 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.15: +5 -4 lines
Diff to previous 1.15 (colored)

Introduce SLAACD_RTA_LABEL define to not use a string constant all
over the place.

Revision 1.15 / (download) - annotate - [select for diffs], Wed May 16 11:39:30 2018 UTC (6 years ago) by florian
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

Create all sockets with SOCK_CLOEXEC, we never want to hold on to them
over execve(2).

Revision 1.14 / (download) - annotate - [select for diffs], Thu Apr 26 17:07:31 2018 UTC (6 years, 1 month ago) by florian
Branch: MAIN
Changes since 1.13: +3 -1 lines
Diff to previous 1.13 (colored)

The frontend tells the main process when the startup is finished so
that we can drop the sendfd pledge.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Feb 20 16:22:19 2018 UTC (6 years, 3 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored)

make sure we've read the lenght bytes before checking the length
ok benno@

Revision 1.12 / (download) - annotate - [select for diffs], Mon Feb 19 09:52:16 2018 UTC (6 years, 3 months ago) by otto
Branch: MAIN
Changes since 1.11: +11 -5 lines
Diff to previous 1.11 (colored)

(static) byte buffers are not aligned in any way, malloc the buffer to
solve that. Prevents bus error on armv7. ok naddy@ florian@

Revision 1.11 / (download) - annotate - [select for diffs], Sat Feb 10 05:57:59 2018 UTC (6 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.10: +2 -1 lines
Diff to previous 1.10 (colored)

RFC 7217 support for slaacd

OK naddy, sthen

Revision 1.10 / (download) - annotate - [select for diffs], Sun Dec 10 10:07:54 2017 UTC (6 years, 6 months ago) by florian
Branch: MAIN
Changes since 1.9: +44 -51 lines
Diff to previous 1.9 (colored)

Move privileged initialization from frontend to main process.
Needed for future work where we will spin up children via
fork - privdrop - exec. Child processes will no longer come
up with root privileges.

Revision 1.9 / (download) - annotate - [select for diffs], Sat Nov 4 17:23:05 2017 UTC (6 years, 7 months ago) by florian
Branch: MAIN
Changes since 1.8: +6 -9 lines
Diff to previous 1.8 (colored)

Don't keep blindly chugging along when receiving an unexpected imsg,
something is seriously wrong.

Revision 1.8 / (download) - annotate - [select for diffs], Wed Aug 23 10:48:01 2017 UTC (6 years, 9 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.7: +113 -3 lines
Diff to previous 1.7 (colored)

When starting up or when the autoconf6 flag is set on an interface
collect already configured autoconf addresses and track them in the
engine.
That way we are not adding a new privacy address on every restart.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Aug 21 14:47:21 2017 UTC (6 years, 9 months ago) by florian
Branch: MAIN
Changes since 1.6: +5 -5 lines
Diff to previous 1.6 (colored)

s/xflagssock/ioctlsock/ since the socket is (going to be) used for
more.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Aug 12 07:39:55 2017 UTC (6 years, 9 months ago) by florian
Branch: MAIN
Changes since 1.5: +12 -19 lines
Diff to previous 1.5 (colored)

When read(2)'ing from the routing socket only one message is returned.
Clue provided by jca and claudio.
OK jca

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jul 24 11:00:01 2017 UTC (6 years, 10 months ago) by friehm
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored)

Unify ROUNDUP macros for parsing route messages.
Use the macro from route(8) / ospf6d(8) since it works also with argument 0.

OK claudio@

Revision 1.4 / (download) - annotate - [select for diffs], Fri Jul 14 09:29:40 2017 UTC (6 years, 10 months ago) by florian
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored)

run IMSG_UPDATE_IF through the main process, reduces upcomming diff
for RFC 7217 support

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jul 6 15:02:53 2017 UTC (6 years, 11 months ago) by florian
Branch: MAIN
Changes since 1.2: +9 -1 lines
Diff to previous 1.2 (colored)

Sprinkel in some #ifndef SMALL to make slaacd smaller for the
installer.

This removes the control socket handling which is useless because we
won't have slaacctl in the installer.

Also deraadt@ pointed out that this would be the first use of log.c in
the installer where we don't have syslogd running so it's rather
pointless. So this completely neuters logging.

The log.h change doesn't interfere with benno@'s efforts of unifying
log.c

The installer version of slaacd won't even compile control.c and log.c

Revision 1.2 / (download) - annotate - [select for diffs], Mon Jul 3 19:02:04 2017 UTC (6 years, 11 months ago) by florian
Branch: MAIN
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)

s/log_warn/log_warnx/ where errno is not set

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jun 3 10:00:29 2017 UTC (7 years ago) by florian
Branch: MAIN

Move slaacd to /sbin
jca points out that all the other interface configuration tools live
there (like ifconfig or dhclient). Furthermore it starts so early in
the boot process that /usr might not be mounted yet if it's a nfs
filesystem.
sthen and deraadt agree

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.