In the implementation I've created separate udp6() and tcp6() source and destination drivers, because this was somewhat easier to implement. I'm expecting some portability trouble, but otherwise the implementation is nice and simple.
Some smaller fixes went in recently as well, like:
- avoid chown/chmod files that do not exist as it clobbered error reporting,
- added close-on-exec flag to file descriptors to avoid child processes to inherit tcp/udp connection fds,
- fixed an off-by-one in flush_lines calculation,
- a possible memory leak, and
- a fix for non-existing filter references in the internal() message path