While experimenting with IPv6 SLAAC, I wrote a daemon that configures a host's DNS resolver using the scheme described in RFC 6106. FreeBSD's rtsold(1) and "radns" (in the ports collection) are two programs that already do this. However, this one might be nice to have in the base system. Features:
- Small, simple design: around 750 LoC in a single source file. - Developed on DragonFly, so no portability overhead. Tested on FreeBSD too, so probably works on other BSDs. - No configuration, other than command line flags for foreground mode and debug output. - Data validation: Performs basic sanity checks on router advertisement options; Checks validity of server addresses and search domains; enforces system-defined size limits for lists of these items. - Ran under Valgrind' memcheck (on FreeBSD) with no leaks found. - Not entangled with rtsold(1) which need not be running and might not exist if the kernel took over soliciting router advertisements (as is now done in OpenBSD). SLAAC is a somewhat dusty corner of IPv6 configuration, so maybe the existing programs are good enough. This limited use-case is both an argument for and against including a new implementation. Depending on your tolerance/enthusiasm level, it's either "why not?" or "why bother?" Is this something the project would want? Chuck
