aboutsummaryrefslogtreecommitdiffstats
path: root/examples/source
diff options
context:
space:
mode:
Diffstat (limited to 'examples/source')
-rw-r--r--examples/source/00/down (renamed from examples/source/mount-cgroups/down)0
-rw-r--r--examples/source/00/up4
-rw-r--r--examples/source/adslclient-log/consumer-for1
-rw-r--r--examples/source/adslclient-log/dependencies (renamed from examples/source/dns-server-tcp-4-log/dependencies)1
-rw-r--r--examples/source/adslclient-log/pipeline-name1
-rwxr-xr-xexamples/source/adslclient-log/run4
-rw-r--r--examples/source/adslclient-log/type (renamed from examples/source/dns-server-tcp-4-log/type)0
-rw-r--r--examples/source/adslclient/dependencies2
-rw-r--r--examples/source/adslclient/notification-fd (renamed from examples/source/dns-cache-log/notification-fd)0
-rw-r--r--examples/source/adslclient/producer-for1
-rwxr-xr-xexamples/source/adslclient/run (renamed from examples/source/qmail/run)2
-rw-r--r--examples/source/adslclient/type (renamed from examples/source/dns-server-udp/type)0
-rw-r--r--examples/source/dns-cache-log/dependencies1
-rwxr-xr-xexamples/source/dns-cache-log/run2
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.20
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.30
-rw-r--r--examples/source/dns-cache/data/root/ip/192.168.40
l---------examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa1
-rw-r--r--examples/source/dns-cache/data/root/servers/@13
-rw-r--r--examples/source/dns-cache/data/root/servers/example.com1
-rw-r--r--examples/source/dns-cache/dependencies1
-rw-r--r--examples/source/dns-cache/down-signal (renamed from examples/source/fdholder/down-signal)0
-rw-r--r--examples/source/dns-cache/env/ROOT2
-rwxr-xr-xexamples/source/dns-cache/run5
-rw-r--r--examples/source/dns-server-tcp-4-log/consumer-for1
-rw-r--r--examples/source/dns-server-tcp-4-log/pipeline-name1
-rwxr-xr-xexamples/source/dns-server-tcp-4-log/run4
-rw-r--r--examples/source/dns-server-tcp-4/producer-for2
-rwxr-xr-xexamples/source/dns-server-tcp-4/run12
-rw-r--r--examples/source/dns-server-tcp-6-bis/dependencies (renamed from examples/source/udhcpc-eth3/dependencies)2
-rw-r--r--examples/source/dns-server-tcp-6-bis/notification-fd (renamed from examples/source/dns-server-tcp-4-log/notification-fd)0
-rw-r--r--examples/source/dns-server-tcp-6-bis/producer-for1
-rwxr-xr-xexamples/source/dns-server-tcp-6-bis/run13
-rw-r--r--examples/source/dns-server-tcp-6-bis/type (renamed from examples/source/fdholder-log/type)0
-rw-r--r--examples/source/dns-server-tcp-6/dependencies2
-rw-r--r--examples/source/dns-server-tcp-6/notification-fd (renamed from examples/source/dns-server-udp-log/notification-fd)0
-rw-r--r--examples/source/dns-server-tcp-6/producer-for1
-rwxr-xr-xexamples/source/dns-server-tcp-6/run13
-rw-r--r--examples/source/dns-server-tcp-6/type (renamed from examples/source/fdholder/type)0
-rw-r--r--examples/source/dns-server-tcp-log/consumer-for3
-rw-r--r--examples/source/dns-server-tcp-log/dependencies (renamed from examples/source/fdholder-log/dependencies)1
-rw-r--r--examples/source/dns-server-tcp-log/pipeline-name1
-rwxr-xr-xexamples/source/dns-server-tcp-log/run4
-rw-r--r--examples/source/dns-server-tcp-log/type (renamed from examples/source/hostapd-log/type)0
-rw-r--r--examples/source/dns-server-udp-4/dependencies (renamed from examples/source/dns-server-udp/dependencies)0
-rw-r--r--examples/source/dns-server-udp-4/notification-fd (renamed from examples/source/fdholder-log/notification-fd)0
-rw-r--r--examples/source/dns-server-udp-4/producer-for (renamed from examples/source/dns-server-udp/producer-for)0
-rwxr-xr-xexamples/source/dns-server-udp-4/run9
-rw-r--r--examples/source/dns-server-udp-4/type (renamed from examples/source/hostapd/type)0
-rw-r--r--examples/source/dns-server-udp-6-bis/dependencies2
-rw-r--r--examples/source/dns-server-udp-6-bis/notification-fd (renamed from examples/source/fdholder/notification-fd)0
-rw-r--r--examples/source/dns-server-udp-6-bis/producer-for1
-rwxr-xr-xexamples/source/dns-server-udp-6-bis/run9
-rw-r--r--examples/source/dns-server-udp-6-bis/type (renamed from examples/source/httpd-4-log/type)0
-rw-r--r--examples/source/dns-server-udp-6/dependencies2
-rw-r--r--examples/source/dns-server-udp-6/notification-fd (renamed from examples/source/hostapd-log/notification-fd)0
-rw-r--r--examples/source/dns-server-udp-6/producer-for1
-rwxr-xr-xexamples/source/dns-server-udp-6/run9
-rw-r--r--examples/source/dns-server-udp-6/type (renamed from examples/source/identd-4-log/type)0
-rw-r--r--examples/source/dns-server-udp-log/consumer-for4
-rw-r--r--examples/source/dns-server-udp-log/dependencies1
-rwxr-xr-xexamples/source/dns-server-udp-log/run2
-rwxr-xr-xexamples/source/dns-server-udp/run8
-rw-r--r--examples/source/dnsproxy6-bis-tcp/dependencies1
-rw-r--r--examples/source/dnsproxy6-bis-tcp/notification-fd (renamed from examples/source/httpd-4-log/notification-fd)0
-rw-r--r--examples/source/dnsproxy6-bis-tcp/producer-for1
-rwxr-xr-xexamples/source/dnsproxy6-bis-tcp/run11
-rw-r--r--examples/source/dnsproxy6-bis-tcp/type (renamed from examples/source/identd-4/type)0
-rw-r--r--examples/source/dnsproxy6-bis-udp/dependencies1
-rw-r--r--examples/source/dnsproxy6-bis-udp/notification-fd (renamed from examples/source/identd-4-log/notification-fd)0
-rw-r--r--examples/source/dnsproxy6-bis-udp/producer-for1
-rwxr-xr-xexamples/source/dnsproxy6-bis-udp/run13
-rw-r--r--examples/source/dnsproxy6-bis-udp/timeout-kill1
-rw-r--r--examples/source/dnsproxy6-bis-udp/type (renamed from examples/source/klogd-srv/type)0
-rw-r--r--examples/source/dnsproxy6-tcp-log/consumer-for2
-rw-r--r--examples/source/dnsproxy6-tcp-log/dependencies (renamed from examples/source/hostapd-log/dependencies)1
-rw-r--r--examples/source/dnsproxy6-tcp-log/pipeline-name1
-rwxr-xr-xexamples/source/dnsproxy6-tcp-log/run4
-rw-r--r--examples/source/dnsproxy6-tcp-log/type (renamed from examples/source/qmail-log/type)0
-rw-r--r--examples/source/dnsproxy6-tcp/dependencies1
-rw-r--r--examples/source/dnsproxy6-tcp/notification-fd (renamed from examples/source/identd-4/notification-fd)0
-rw-r--r--examples/source/dnsproxy6-tcp/producer-for1
-rwxr-xr-xexamples/source/dnsproxy6-tcp/run11
-rw-r--r--examples/source/dnsproxy6-tcp/type (renamed from examples/source/qmail/type)0
-rw-r--r--examples/source/dnsproxy6-udp-log/consumer-for3
-rw-r--r--examples/source/dnsproxy6-udp-log/dependencies (renamed from examples/source/httpd-4-log/dependencies)1
-rw-r--r--examples/source/dnsproxy6-udp-log/pipeline-name1
-rwxr-xr-xexamples/source/dnsproxy6-udp-log/run4
-rw-r--r--examples/source/dnsproxy6-udp-log/type (renamed from examples/source/qmtpd-4-log/type)0
-rw-r--r--examples/source/dnsproxy6-udp/dependencies1
-rw-r--r--examples/source/dnsproxy6-udp/notification-fd (renamed from examples/source/klogd-log/notification-fd)0
-rw-r--r--examples/source/dnsproxy6-udp/producer-for1
-rwxr-xr-xexamples/source/dnsproxy6-udp/run13
-rw-r--r--examples/source/dnsproxy6-udp/timeout-kill1
-rw-r--r--examples/source/dnsproxy6-udp/type (renamed from examples/source/qmtpd-4/type)0
-rw-r--r--examples/source/fck-livebox/dependencies3
-rw-r--r--examples/source/fck-livebox/down2
-rw-r--r--examples/source/fck-livebox/type (renamed from examples/source/init-eth3/type)0
-rw-r--r--examples/source/fck-livebox/up2
-rw-r--r--examples/source/fdholder-log/consumer-for1
-rw-r--r--examples/source/fdholder-log/pipeline-name1
-rwxr-xr-xexamples/source/fdholder-log/run4
-rw-r--r--examples/source/fdholder/data/rules/uid/0/allow0
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP1
-rw-r--r--examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX1
-rw-r--r--examples/source/fdholder/max-death-tally1
-rw-r--r--examples/source/fdholder/producer-for1
-rwxr-xr-xexamples/source/fdholder/run5
-rw-r--r--examples/source/fdholder/timeout-finish1
-rw-r--r--examples/source/fdholder/timeout-kill1
-rwxr-xr-xexamples/source/fifodir-cleanup/run8
-rw-r--r--examples/source/hostapd-log/consumer-for1
-rw-r--r--examples/source/hostapd-log/pipeline-name1
-rw-r--r--examples/source/hostapd-wlan0-log/consumer-for1
-rw-r--r--examples/source/hostapd-wlan0-log/dependencies2
-rw-r--r--examples/source/hostapd-wlan0-log/pipeline-name1
-rwxr-xr-xexamples/source/hostapd-wlan0-log/run (renamed from examples/source/hostapd-log/run)2
-rw-r--r--examples/source/hostapd-wlan0-log/type (renamed from examples/source/smtpd-4-log/type)0
-rw-r--r--examples/source/hostapd-wlan0/dependencies (renamed from examples/source/hostapd/dependencies)0
-rw-r--r--examples/source/hostapd-wlan0/notification-fd (renamed from examples/source/ntpclient-log/notification-fd)0
-rw-r--r--examples/source/hostapd-wlan0/producer-for1
-rwxr-xr-xexamples/source/hostapd-wlan0/run3
-rw-r--r--examples/source/hostapd-wlan0/type (renamed from examples/source/smtpd-4/type)0
-rw-r--r--examples/source/hostapd-wlan1-log/consumer-for1
-rw-r--r--examples/source/hostapd-wlan1-log/dependencies2
-rw-r--r--examples/source/hostapd-wlan1-log/pipeline-name1
-rwxr-xr-xexamples/source/hostapd-wlan1-log/run4
-rw-r--r--examples/source/hostapd-wlan1-log/type (renamed from examples/source/sshd-4-log/type)0
-rw-r--r--examples/source/hostapd-wlan1/dependencies1
-rw-r--r--examples/source/hostapd-wlan1/notification-fd (renamed from examples/source/qmail-log/notification-fd)0
-rw-r--r--examples/source/hostapd-wlan1/producer-for1
-rwxr-xr-xexamples/source/hostapd-wlan1/run3
-rw-r--r--examples/source/hostapd-wlan1/type (renamed from examples/source/syslogd-srv/type)0
-rw-r--r--examples/source/hostapd/producer-for1
-rwxr-xr-xexamples/source/hostapd/run3
-rw-r--r--examples/source/httpd-4-log/consumer-for1
-rw-r--r--examples/source/httpd-4-log/pipeline-name1
-rw-r--r--examples/source/httpd-4/producer-for2
-rwxr-xr-xexamples/source/httpd-4/run12
-rw-r--r--examples/source/httpd-6-bis/dependencies2
-rw-r--r--examples/source/httpd-6-bis/notification-fd (renamed from examples/source/qmtpd-4-log/notification-fd)0
-rw-r--r--examples/source/httpd-6-bis/producer-for1
-rwxr-xr-xexamples/source/httpd-6-bis/run10
-rw-r--r--examples/source/httpd-6-bis/type (renamed from examples/source/taiclockd-4-log/type)0
-rw-r--r--examples/source/httpd-6/dependencies2
-rw-r--r--examples/source/httpd-6/notification-fd (renamed from examples/source/qmtpd-4/notification-fd)0
-rw-r--r--examples/source/httpd-6/producer-for1
-rwxr-xr-xexamples/source/httpd-6/run10
-rw-r--r--examples/source/httpd-6/type (renamed from examples/source/udhcpc-eth3-log/type)0
-rw-r--r--examples/source/httpd-log/consumer-for3
-rw-r--r--examples/source/httpd-log/dependencies2
-rw-r--r--examples/source/httpd-log/pipeline-name1
-rwxr-xr-xexamples/source/httpd-log/run (renamed from examples/source/httpd-4-log/run)2
-rw-r--r--examples/source/httpd-log/type (renamed from examples/source/udhcpc-eth3/type)0
-rw-r--r--examples/source/identd-4-log/consumer-for1
-rw-r--r--examples/source/identd-4-log/dependencies1
-rw-r--r--examples/source/identd-4-log/pipeline-name1
-rwxr-xr-xexamples/source/identd-4-log/run4
-rw-r--r--examples/source/identd-4/producer-for1
-rwxr-xr-xexamples/source/identd-4/run8
-rw-r--r--examples/source/init-clock/dependencies3
-rw-r--r--examples/source/init-clock/down (renamed from examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT)0
-rw-r--r--examples/source/init-clock/type1
-rw-r--r--examples/source/init-clock/up42
-rw-r--r--examples/source/init-coldplug/dependencies1
-rw-r--r--examples/source/init-coldplug/up2
-rw-r--r--examples/source/init-devtmpfs/up4
-rw-r--r--examples/source/init-diskconfig/up7
-rw-r--r--examples/source/init-eth3/down1
-rw-r--r--examples/source/init-eth3/up1
-rw-r--r--examples/source/init-fw/dependencies3
-rw-r--r--examples/source/init-fw/type1
-rw-r--r--examples/source/init-fw/up1
-rw-r--r--examples/source/init-ipv6/dependencies5
-rwxr-xr-xexamples/source/init-ipv6/down3
-rw-r--r--examples/source/init-ipv6/type1
-rw-r--r--examples/source/init-ipv6/up35
-rw-r--r--examples/source/init-iw/dependencies1
-rw-r--r--examples/source/init-iw/down1
-rw-r--r--examples/source/init-iw/type1
-rw-r--r--examples/source/init-iw/up1
-rw-r--r--examples/source/init-lan/dependencies1
-rw-r--r--examples/source/init-lan/up24
-rw-r--r--examples/source/init-sysctl/up2
-rw-r--r--examples/source/init-tmp/dependencies (renamed from examples/source/fdholder/dependencies)0
-rw-r--r--examples/source/init-tmp/down1
-rw-r--r--examples/source/init-tmp/type1
-rw-r--r--examples/source/init-tmp/up2
-rw-r--r--examples/source/init-urandom/dependencies1
-rw-r--r--examples/source/init-urandom/down1
-rw-r--r--examples/source/init-urandom/type1
-rw-r--r--examples/source/init-urandom/up1
-rw-r--r--examples/source/init-wlan0/dependencies2
-rw-r--r--examples/source/init-wlan0/down1
-rw-r--r--examples/source/init-wlan0/up6
-rw-r--r--examples/source/init-wlan1/dependencies2
-rw-r--r--examples/source/init-wlan1/down (renamed from examples/source/dns-cache/data/root/ip/127.0.0.1)0
-rw-r--r--examples/source/init-wlan1/type1
-rw-r--r--examples/source/init-wlan1/up1
-rw-r--r--examples/source/ip-wlan0/dependencies1
-rw-r--r--examples/source/ip-wlan0/down (renamed from examples/source/dns-cache/data/root/ip/192.168.0)0
-rw-r--r--examples/source/ip-wlan0/type1
-rw-r--r--examples/source/ip-wlan0/up4
-rw-r--r--examples/source/ip-wlan1/dependencies1
-rw-r--r--examples/source/ip-wlan1/down (renamed from examples/source/dns-cache/data/root/ip/192.168.1)0
-rw-r--r--examples/source/ip-wlan1/type1
-rw-r--r--examples/source/ip-wlan1/up4
-rw-r--r--examples/source/ircproxy-interlinked-4/dependencies (renamed from examples/source/identd-4/dependencies)0
-rw-r--r--examples/source/ircproxy-interlinked-4/notification-fd (renamed from examples/source/smtpd-4-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-interlinked-4/producer-for1
-rwxr-xr-xexamples/source/ircproxy-interlinked-4/run12
-rw-r--r--examples/source/ircproxy-interlinked-4/type1
-rw-r--r--examples/source/ircproxy-interlinked-6-bis/dependencies1
-rw-r--r--examples/source/ircproxy-interlinked-6-bis/notification-fd (renamed from examples/source/smtpd-4/notification-fd)0
-rw-r--r--examples/source/ircproxy-interlinked-6-bis/producer-for1
-rwxr-xr-xexamples/source/ircproxy-interlinked-6-bis/run12
-rw-r--r--examples/source/ircproxy-interlinked-6-bis/type1
-rw-r--r--examples/source/ircproxy-interlinked-6/dependencies1
-rw-r--r--examples/source/ircproxy-interlinked-6/notification-fd (renamed from examples/source/sshd-4-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-interlinked-6/producer-for1
-rwxr-xr-xexamples/source/ircproxy-interlinked-6/run12
-rw-r--r--examples/source/ircproxy-interlinked-6/type1
-rw-r--r--examples/source/ircproxy-interlinked-log/consumer-for4
-rw-r--r--examples/source/ircproxy-interlinked-log/dependencies2
-rw-r--r--examples/source/ircproxy-interlinked-log/pipeline-name1
-rwxr-xr-xexamples/source/ircproxy-interlinked-log/run4
-rw-r--r--examples/source/ircproxy-interlinked-log/type1
-rw-r--r--examples/source/ircproxy-libera-4/dependencies (renamed from examples/source/init-eth3/dependencies)0
-rw-r--r--examples/source/ircproxy-libera-4/notification-fd (renamed from examples/source/syslogd-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-libera-4/producer-for1
-rwxr-xr-xexamples/source/ircproxy-libera-4/run12
-rw-r--r--examples/source/ircproxy-libera-4/type1
-rw-r--r--examples/source/ircproxy-libera-6-bis/dependencies1
-rw-r--r--examples/source/ircproxy-libera-6-bis/notification-fd (renamed from examples/source/syslogd-srv/notification-fd)0
-rw-r--r--examples/source/ircproxy-libera-6-bis/producer-for1
-rwxr-xr-xexamples/source/ircproxy-libera-6-bis/run12
-rw-r--r--examples/source/ircproxy-libera-6-bis/type1
-rw-r--r--examples/source/ircproxy-libera-6/dependencies1
-rw-r--r--examples/source/ircproxy-libera-6/notification-fd (renamed from examples/source/taiclockd-4-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-libera-6/producer-for1
-rwxr-xr-xexamples/source/ircproxy-libera-6/run12
-rw-r--r--examples/source/ircproxy-libera-6/type1
-rw-r--r--examples/source/ircproxy-libera-log/consumer-for3
-rw-r--r--examples/source/ircproxy-libera-log/dependencies2
-rw-r--r--examples/source/ircproxy-libera-log/pipeline-name1
-rwxr-xr-xexamples/source/ircproxy-libera-log/run4
-rw-r--r--examples/source/ircproxy-libera-log/type1
-rw-r--r--examples/source/ircproxy-oftc-4/dependencies (renamed from examples/source/qmtpd-4/dependencies)0
-rw-r--r--examples/source/ircproxy-oftc-4/notification-fd (renamed from examples/source/udhcpc-eth3-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-oftc-4/producer-for1
-rwxr-xr-xexamples/source/ircproxy-oftc-4/run12
-rw-r--r--examples/source/ircproxy-oftc-4/type1
-rw-r--r--examples/source/ircproxy-oftc-6-bis/dependencies1
-rw-r--r--examples/source/ircproxy-oftc-6-bis/notification-fd (renamed from examples/source/udhcpc-eth3/notification-fd)0
-rw-r--r--examples/source/ircproxy-oftc-6-bis/producer-for1
-rwxr-xr-xexamples/source/ircproxy-oftc-6-bis/run12
-rw-r--r--examples/source/ircproxy-oftc-6-bis/type1
-rw-r--r--examples/source/ircproxy-oftc-6/dependencies1
-rw-r--r--examples/source/ircproxy-oftc-6/notification-fd (renamed from examples/source/udhcpd-wlan0-log/notification-fd)0
-rw-r--r--examples/source/ircproxy-oftc-6/producer-for1
-rwxr-xr-xexamples/source/ircproxy-oftc-6/run12
-rw-r--r--examples/source/ircproxy-oftc-6/type1
-rw-r--r--examples/source/ircproxy-oftc-log/consumer-for3
-rw-r--r--examples/source/ircproxy-oftc-log/dependencies2
-rw-r--r--examples/source/ircproxy-oftc-log/pipeline-name1
-rwxr-xr-xexamples/source/ircproxy-oftc-log/run4
-rw-r--r--examples/source/ircproxy-oftc-log/type1
-rw-r--r--examples/source/klogd-log/consumer-for2
-rw-r--r--examples/source/klogd-log/dependencies1
-rw-r--r--examples/source/klogd-log/pipeline-name2
-rwxr-xr-xexamples/source/klogd-log/run2
-rw-r--r--examples/source/klogd/dependencies (renamed from examples/source/klogd-srv/dependencies)0
-rw-r--r--examples/source/klogd/producer-for (renamed from examples/source/klogd-srv/producer-for)0
-rwxr-xr-xexamples/source/klogd/run (renamed from examples/source/klogd-srv/run)0
-rw-r--r--examples/source/klogd/type1
-rw-r--r--examples/source/mdevd/dependencies1
-rw-r--r--[-rwxr-xr-x]examples/source/mdevd/run3
-rw-r--r--examples/source/mount-cgroups-base/dependencies1
-rw-r--r--examples/source/mount-cgroups-base/down1
-rw-r--r--examples/source/mount-cgroups-base/type1
-rw-r--r--examples/source/mount-cgroups-base/up2
-rw-r--r--examples/source/mount-cgroups-sub/dependencies1
-rw-r--r--examples/source/mount-cgroups-sub/down4
-rw-r--r--examples/source/mount-cgroups-sub/type1
-rw-r--r--examples/source/mount-cgroups-sub/up10
-rw-r--r--examples/source/mount-cgroups/contents2
-rw-r--r--examples/source/mount-cgroups/dependencies2
-rw-r--r--examples/source/mount-cgroups/type2
-rw-r--r--examples/source/mount-cgroups/up10
-rw-r--r--examples/source/mount-proc/down5
-rw-r--r--examples/source/mount-rwfs/dependencies1
-rw-r--r--examples/source/mount-rwfs/up4
-rw-r--r--examples/source/mount-swap/dependencies1
-rw-r--r--examples/source/mount-sync/dependencies1
-rw-r--r--examples/source/mount-sync/down2
-rw-r--r--examples/source/mount-sync/up4
-rw-r--r--examples/source/ntpclient-log/dependencies1
-rwxr-xr-xexamples/source/ntpclient-log/run2
-rw-r--r--examples/source/ntpclient/dependencies2
-rw-r--r--examples/source/ntpclient/notification-fd1
-rwxr-xr-xexamples/source/ntpclient/run60
-rw-r--r--examples/source/ok-all/contents1
-rw-r--r--examples/source/ok-ipv6/contents4
-rw-r--r--examples/source/ok-ipv6/type (renamed from examples/source/wan/type)0
-rw-r--r--examples/source/ok-lan/contents26
-rw-r--r--examples/source/ok-local/contents3
-rw-r--r--examples/source/ok-wan/contents5
-rw-r--r--examples/source/qmail-log/consumer-for1
-rw-r--r--examples/source/qmail-log/dependencies1
-rw-r--r--examples/source/qmail-log/pipeline-name1
-rw-r--r--examples/source/qmail/dependencies3
-rw-r--r--examples/source/qmail/producer-for1
-rw-r--r--examples/source/qmtpd-4-log/consumer-for1
-rw-r--r--examples/source/qmtpd-4-log/dependencies1
-rw-r--r--examples/source/qmtpd-4-log/pipeline-name1
-rwxr-xr-xexamples/source/qmtpd-4-log/run4
-rw-r--r--examples/source/qmtpd-4/producer-for1
-rwxr-xr-xexamples/source/qmtpd-4/run7
-rw-r--r--examples/source/radvd-log/consumer-for1
-rw-r--r--examples/source/radvd-log/dependencies2
-rw-r--r--examples/source/radvd-log/pipeline-name1
-rwxr-xr-xexamples/source/radvd-log/run4
-rw-r--r--examples/source/radvd-log/type1
-rw-r--r--examples/source/radvd/dependencies3
-rw-r--r--examples/source/radvd/producer-for1
-rwxr-xr-xexamples/source/radvd/run3
-rw-r--r--examples/source/radvd/type1
-rw-r--r--examples/source/smtpd-4-log/consumer-for1
-rw-r--r--examples/source/smtpd-4-log/dependencies1
-rw-r--r--examples/source/smtpd-4-log/pipeline-name1
-rwxr-xr-xexamples/source/smtpd-4-log/run4
-rw-r--r--examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow0
-rw-r--r--examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow0
-rw-r--r--examples/source/smtpd-4/dependencies2
-rw-r--r--examples/source/smtpd-4/producer-for1
-rwxr-xr-xexamples/source/smtpd-4/run8
-rw-r--r--examples/source/smtpproxy-4/dependencies1
-rw-r--r--examples/source/smtpproxy-4/notification-fd1
-rw-r--r--examples/source/smtpproxy-4/producer-for1
-rwxr-xr-xexamples/source/smtpproxy-4/run12
-rw-r--r--examples/source/smtpproxy-4/type1
-rw-r--r--examples/source/smtpproxy-6-bis/dependencies1
-rw-r--r--examples/source/smtpproxy-6-bis/notification-fd1
-rw-r--r--examples/source/smtpproxy-6-bis/producer-for1
-rwxr-xr-xexamples/source/smtpproxy-6-bis/run11
-rw-r--r--examples/source/smtpproxy-6-bis/type1
-rw-r--r--examples/source/smtpproxy-6/dependencies1
-rw-r--r--examples/source/smtpproxy-6/notification-fd1
-rw-r--r--examples/source/smtpproxy-6/producer-for1
-rwxr-xr-xexamples/source/smtpproxy-6/run11
-rw-r--r--examples/source/smtpproxy-6/type1
-rw-r--r--examples/source/smtpproxy-log/consumer-for3
-rw-r--r--examples/source/smtpproxy-log/dependencies2
-rw-r--r--examples/source/smtpproxy-log/pipeline-name1
-rwxr-xr-xexamples/source/smtpproxy-log/run (renamed from examples/source/qmail-log/run)2
-rw-r--r--examples/source/smtpproxy-log/type1
-rw-r--r--examples/source/sshd-4-log/consumer-for1
-rw-r--r--examples/source/sshd-4-log/dependencies1
-rw-r--r--examples/source/sshd-4-log/pipeline-name1
-rw-r--r--examples/source/sshd-4/dependencies1
-rw-r--r--examples/source/sshd-4/producer-for2
-rwxr-xr-xexamples/source/sshd-4/run10
-rw-r--r--examples/source/sshd-6-bis/dependencies2
-rw-r--r--examples/source/sshd-6-bis/notification-fd1
-rw-r--r--examples/source/sshd-6-bis/producer-for1
-rwxr-xr-xexamples/source/sshd-6-bis/run9
-rw-r--r--examples/source/sshd-6-bis/type1
-rw-r--r--examples/source/sshd-6/dependencies2
-rw-r--r--examples/source/sshd-6/notification-fd1
-rw-r--r--examples/source/sshd-6/producer-for1
-rwxr-xr-xexamples/source/sshd-6/run9
-rw-r--r--examples/source/sshd-6/type1
-rw-r--r--examples/source/sshd-log/consumer-for3
-rw-r--r--examples/source/sshd-log/dependencies2
-rw-r--r--examples/source/sshd-log/pipeline-name1
-rwxr-xr-xexamples/source/sshd-log/run (renamed from examples/source/sshd-4-log/run)2
-rw-r--r--examples/source/sshd-log/type1
-rw-r--r--examples/source/syslogd-log/consumer-for2
-rw-r--r--examples/source/syslogd-log/dependencies1
-rw-r--r--examples/source/syslogd-log/pipeline-name2
-rwxr-xr-xexamples/source/syslogd-log/run2
-rw-r--r--examples/source/syslogd/dependencies (renamed from examples/source/syslogd-srv/dependencies)0
-rw-r--r--examples/source/syslogd/notification-fd1
-rw-r--r--examples/source/syslogd/producer-for (renamed from examples/source/syslogd-srv/producer-for)0
-rwxr-xr-xexamples/source/syslogd/run (renamed from examples/source/syslogd-srv/run)1
-rw-r--r--examples/source/syslogd/type1
-rw-r--r--examples/source/taiclockd-4-log/consumer-for1
-rw-r--r--examples/source/taiclockd-4-log/dependencies1
-rw-r--r--examples/source/taiclockd-4-log/pipeline-name1
-rw-r--r--examples/source/taiclockd-4/producer-for2
-rwxr-xr-xexamples/source/taiclockd-4/run4
-rw-r--r--examples/source/taiclockd-6-bis/dependencies1
-rw-r--r--examples/source/taiclockd-6-bis/producer-for1
-rwxr-xr-xexamples/source/taiclockd-6-bis/run6
-rw-r--r--examples/source/taiclockd-6-bis/type1
-rw-r--r--examples/source/taiclockd-6/dependencies1
-rw-r--r--examples/source/taiclockd-6/producer-for1
-rwxr-xr-xexamples/source/taiclockd-6/run6
-rw-r--r--examples/source/taiclockd-6/type1
-rw-r--r--examples/source/taiclockd-log/consumer-for3
-rw-r--r--examples/source/taiclockd-log/dependencies2
-rw-r--r--examples/source/taiclockd-log/pipeline-name1
-rwxr-xr-xexamples/source/taiclockd-log/run (renamed from examples/source/taiclockd-4-log/run)2
-rw-r--r--examples/source/taiclockd-log/type1
-rw-r--r--examples/source/udhcpc-eth3-log/consumer-for1
-rw-r--r--examples/source/udhcpc-eth3-log/dependencies1
-rw-r--r--examples/source/udhcpc-eth3-log/pipeline-name1
-rwxr-xr-xexamples/source/udhcpc-eth3-log/run4
-rw-r--r--examples/source/udhcpc-eth3/producer-for1
-rwxr-xr-xexamples/source/udhcpc-eth3/run5
-rw-r--r--examples/source/udhcpc6-eth2-log/consumer-for1
-rw-r--r--examples/source/udhcpc6-eth2-log/dependencies2
-rw-r--r--examples/source/udhcpc6-eth2-log/notification-fd1
-rw-r--r--examples/source/udhcpc6-eth2-log/pipeline-name1
-rw-r--r--examples/source/udhcpc6-eth2-log/run4
-rw-r--r--examples/source/udhcpc6-eth2-log/type1
-rw-r--r--examples/source/udhcpc6-eth2/dependencies1
-rw-r--r--examples/source/udhcpc6-eth2/notification-fd1
-rw-r--r--examples/source/udhcpc6-eth2/producer-for1
-rw-r--r--examples/source/udhcpc6-eth2/run5
-rwxr-xr-xexamples/source/udhcpc6-eth2/template/finish3
-rw-r--r--examples/source/udhcpc6-eth2/template/notification-fd1
-rwxr-xr-xexamples/source/udhcpc6-eth2/template/run4
-rw-r--r--examples/source/udhcpc6-eth2/type1
-rw-r--r--examples/source/udhcpd-eth0-log/consumer-for1
-rw-r--r--examples/source/udhcpd-eth0-log/dependencies2
-rw-r--r--examples/source/udhcpd-eth0-log/pipeline-name1
-rwxr-xr-xexamples/source/udhcpd-eth0-log/run4
-rw-r--r--examples/source/udhcpd-eth0-log/type1
-rw-r--r--examples/source/udhcpd-eth0/dependencies1
-rw-r--r--examples/source/udhcpd-eth0/producer-for1
-rwxr-xr-xexamples/source/udhcpd-eth0/run5
-rw-r--r--examples/source/udhcpd-eth0/timeout-kill1
-rw-r--r--examples/source/udhcpd-eth0/type1
-rw-r--r--examples/source/udhcpd-wlan0-log/dependencies1
-rwxr-xr-xexamples/source/udhcpd-wlan0-log/run2
-rw-r--r--examples/source/udhcpd-wlan0/dependencies3
-rwxr-xr-xexamples/source/udhcpd-wlan0/run1
-rw-r--r--examples/source/udhcpd-wlan0/timeout-kill1
-rw-r--r--examples/source/udhcpd-wlan1-log/consumer-for1
-rw-r--r--examples/source/udhcpd-wlan1-log/dependencies2
-rw-r--r--examples/source/udhcpd-wlan1-log/pipeline-name1
-rwxr-xr-xexamples/source/udhcpd-wlan1-log/run4
-rw-r--r--examples/source/udhcpd-wlan1-log/type1
-rw-r--r--examples/source/udhcpd-wlan1/dependencies1
-rw-r--r--examples/source/udhcpd-wlan1/producer-for1
-rwxr-xr-xexamples/source/udhcpd-wlan1/run5
-rw-r--r--examples/source/udhcpd-wlan1/timeout-kill1
-rw-r--r--examples/source/udhcpd-wlan1/type1
-rw-r--r--examples/source/wan/contents2
-rw-r--r--examples/source/wlan0-server/contents3
-rw-r--r--examples/source/wlan0-server/type1
-rw-r--r--examples/source/wlan1-server/contents3
-rw-r--r--examples/source/wlan1-server/type1
456 files changed, 916 insertions, 257 deletions
diff --git a/examples/source/mount-cgroups/down b/examples/source/00/down
index 8b13789..8b13789 100644
--- a/examples/source/mount-cgroups/down
+++ b/examples/source/00/down
diff --git a/examples/source/00/up b/examples/source/00/up
index b0b010a..b86cc75 100644
--- a/examples/source/00/up
+++ b/examples/source/00/up
@@ -1,2 +1,4 @@
if { s6-echo "init-stage2 starting." }
-s6-hostname foo.example.com
+if { s6-clock @40000000681859f30cfd4561 }
+backtick -E hostname { redirfd -r 0 /etc/hostname s6-cat }
+s6-hostname $hostname
diff --git a/examples/source/adslclient-log/consumer-for b/examples/source/adslclient-log/consumer-for
new file mode 100644
index 0000000..2611cbe
--- /dev/null
+++ b/examples/source/adslclient-log/consumer-for
@@ -0,0 +1 @@
+adslclient
diff --git a/examples/source/dns-server-tcp-4-log/dependencies b/examples/source/adslclient-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/dns-server-tcp-4-log/dependencies
+++ b/examples/source/adslclient-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/adslclient-log/pipeline-name b/examples/source/adslclient-log/pipeline-name
new file mode 100644
index 0000000..2cce8ed
--- /dev/null
+++ b/examples/source/adslclient-log/pipeline-name
@@ -0,0 +1 @@
+adslclient-pipeline
diff --git a/examples/source/adslclient-log/run b/examples/source/adslclient-log/run
new file mode 100755
index 0000000..2a89e2c
--- /dev/null
+++ b/examples/source/adslclient-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid adsllog
+exec -c
+s6-log t s1000000 n20 /var/log/adslclient
diff --git a/examples/source/dns-server-tcp-4-log/type b/examples/source/adslclient-log/type
index 5883cff..5883cff 100644
--- a/examples/source/dns-server-tcp-4-log/type
+++ b/examples/source/adslclient-log/type
diff --git a/examples/source/adslclient/dependencies b/examples/source/adslclient/dependencies
new file mode 100644
index 0000000..d8ea74a
--- /dev/null
+++ b/examples/source/adslclient/dependencies
@@ -0,0 +1,2 @@
+init-devtmpfs
+init-lan
diff --git a/examples/source/dns-cache-log/notification-fd b/examples/source/adslclient/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/dns-cache-log/notification-fd
+++ b/examples/source/adslclient/notification-fd
diff --git a/examples/source/adslclient/producer-for b/examples/source/adslclient/producer-for
new file mode 100644
index 0000000..439ba48
--- /dev/null
+++ b/examples/source/adslclient/producer-for
@@ -0,0 +1 @@
+adslclient-log
diff --git a/examples/source/qmail/run b/examples/source/adslclient/run
index 0a49456..f11b14f 100755
--- a/examples/source/qmail/run
+++ b/examples/source/adslclient/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
fdmove -c 2 1
-qmail-start ./Maildir/
+pppd call adsl
diff --git a/examples/source/dns-server-udp/type b/examples/source/adslclient/type
index 5883cff..5883cff 100644
--- a/examples/source/dns-server-udp/type
+++ b/examples/source/adslclient/type
diff --git a/examples/source/dns-cache-log/dependencies b/examples/source/dns-cache-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/dns-cache-log/dependencies
+++ b/examples/source/dns-cache-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/dns-cache-log/run b/examples/source/dns-cache-log/run
index 6bd00d2..4177eaa 100755
--- a/examples/source/dns-cache-log/run
+++ b/examples/source/dns-cache-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid dnslog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/dns-cache
+s6-log t s1000000 n20 /var/log/dns-cache
diff --git a/examples/source/dns-cache/data/root/ip/192.168.2 b/examples/source/dns-cache/data/root/ip/192.168.2
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/dns-cache/data/root/ip/192.168.2
+++ /dev/null
diff --git a/examples/source/dns-cache/data/root/ip/192.168.3 b/examples/source/dns-cache/data/root/ip/192.168.3
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/dns-cache/data/root/ip/192.168.3
+++ /dev/null
diff --git a/examples/source/dns-cache/data/root/ip/192.168.4 b/examples/source/dns-cache/data/root/ip/192.168.4
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/dns-cache/data/root/ip/192.168.4
+++ /dev/null
diff --git a/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa b/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa
deleted file mode 120000
index caa12a8..0000000
--- a/examples/source/dns-cache/data/root/servers/168.192.in-addr.arpa
+++ /dev/null
@@ -1 +0,0 @@
-example.com \ No newline at end of file
diff --git a/examples/source/dns-cache/data/root/servers/@ b/examples/source/dns-cache/data/root/servers/@
deleted file mode 100644
index ca40b38..0000000
--- a/examples/source/dns-cache/data/root/servers/@
+++ /dev/null
@@ -1,13 +0,0 @@
-198.41.0.4
-192.228.79.201
-192.33.4.12
-128.8.10.90
-192.203.230.10
-192.5.5.241
-192.112.36.4
-128.63.2.53
-192.36.148.17
-192.58.128.30
-193.0.14.129
-199.7.83.42
-202.12.27.33
diff --git a/examples/source/dns-cache/data/root/servers/example.com b/examples/source/dns-cache/data/root/servers/example.com
deleted file mode 100644
index 0c4b6f6..0000000
--- a/examples/source/dns-cache/data/root/servers/example.com
+++ /dev/null
@@ -1 +0,0 @@
-192.168.1.1
diff --git a/examples/source/dns-cache/dependencies b/examples/source/dns-cache/dependencies
index 6daf05b..112b3f2 100644
--- a/examples/source/dns-cache/dependencies
+++ b/examples/source/dns-cache/dependencies
@@ -1 +1,2 @@
+init-urandom
init-lan
diff --git a/examples/source/fdholder/down-signal b/examples/source/dns-cache/down-signal
index dc1b980..dc1b980 100644
--- a/examples/source/fdholder/down-signal
+++ b/examples/source/dns-cache/down-signal
diff --git a/examples/source/dns-cache/env/ROOT b/examples/source/dns-cache/env/ROOT
index d4dba8d..fbf51ea 100644
--- a/examples/source/dns-cache/env/ROOT
+++ b/examples/source/dns-cache/env/ROOT
@@ -1 +1 @@
-/run/service/dns-cache/data/root
+/home/dns/cache-root
diff --git a/examples/source/dns-cache/run b/examples/source/dns-cache/run
index 8aa7e3b..086002f 100755
--- a/examples/source/dns-cache/run
+++ b/examples/source/dns-cache/run
@@ -1,8 +1,9 @@
#!/command/execlineb -P
fdmove -c 2 1
s6-envuidgid dnscache
+s6-envdir /etc/env-network
s6-envdir env
-importas ETH0_IP4 ETH0_IP4
+importas -u ETH0_IP4 ETH0_IP4
export IP ${ETH0_IP4}
s6-softlimit -m 4000000
pipeline -d
@@ -10,5 +11,5 @@ pipeline -d
redirfd -r 0 /dev/urandom
s6-head -c 128
}
-unexport LASTPID
+unexport !
dnscache
diff --git a/examples/source/dns-server-tcp-4-log/consumer-for b/examples/source/dns-server-tcp-4-log/consumer-for
deleted file mode 100644
index eed0fe9..0000000
--- a/examples/source/dns-server-tcp-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-dns-server-tcp-4
diff --git a/examples/source/dns-server-tcp-4-log/pipeline-name b/examples/source/dns-server-tcp-4-log/pipeline-name
deleted file mode 100644
index b07d2e6..0000000
--- a/examples/source/dns-server-tcp-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-dns-server-tcp-4-pipeline
diff --git a/examples/source/dns-server-tcp-4-log/run b/examples/source/dns-server-tcp-4-log/run
deleted file mode 100755
index 290bc39..0000000
--- a/examples/source/dns-server-tcp-4-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid dnslog
-exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/dns-server-tcp-4
diff --git a/examples/source/dns-server-tcp-4/producer-for b/examples/source/dns-server-tcp-4/producer-for
index d437be5..809f840 100644
--- a/examples/source/dns-server-tcp-4/producer-for
+++ b/examples/source/dns-server-tcp-4/producer-for
@@ -1 +1 @@
-dns-server-tcp-4-log
+dns-server-tcp-log
diff --git a/examples/source/dns-server-tcp-4/run b/examples/source/dns-server-tcp-4/run
index 50bba29..b8c76d4 100755
--- a/examples/source/dns-server-tcp-4/run
+++ b/examples/source/dns-server-tcp-4/run
@@ -1,9 +1,13 @@
#!/command/execlineb -P
+
fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP4
+emptyenv -p
s6-envuidgid dnsserve
-export ROOT /home/dns
+cd /home/dns
export AXFR ""
-importas -ui ETH1_IP4 ETH1_IP4
fdmove 1 3
-s6-tcpserver4 -v 2 -1 -- ${ETH1_IP4} 53
-axfrdns
+s6-tcpserver -v -1 -U -- ${ETH1_IP4} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source/udhcpc-eth3/dependencies b/examples/source/dns-server-tcp-6-bis/dependencies
index d98fec0..6143111 100644
--- a/examples/source/udhcpc-eth3/dependencies
+++ b/examples/source/dns-server-tcp-6-bis/dependencies
@@ -1,2 +1,2 @@
-init-eth3
+init-ipv6
mount-rwfs
diff --git a/examples/source/dns-server-tcp-4-log/notification-fd b/examples/source/dns-server-tcp-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/dns-server-tcp-4-log/notification-fd
+++ b/examples/source/dns-server-tcp-6-bis/notification-fd
diff --git a/examples/source/dns-server-tcp-6-bis/producer-for b/examples/source/dns-server-tcp-6-bis/producer-for
new file mode 100644
index 0000000..809f840
--- /dev/null
+++ b/examples/source/dns-server-tcp-6-bis/producer-for
@@ -0,0 +1 @@
+dns-server-tcp-log
diff --git a/examples/source/dns-server-tcp-6-bis/run b/examples/source/dns-server-tcp-6-bis/run
new file mode 100755
index 0000000..652334a
--- /dev/null
+++ b/examples/source/dns-server-tcp-6-bis/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6_BIS
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+export AXFR ""
+fdmove 1 3
+s6-tcpserver -v -1 -U -- ${ETH1_IP6_BIS} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source/fdholder-log/type b/examples/source/dns-server-tcp-6-bis/type
index 5883cff..5883cff 100644
--- a/examples/source/fdholder-log/type
+++ b/examples/source/dns-server-tcp-6-bis/type
diff --git a/examples/source/dns-server-tcp-6/dependencies b/examples/source/dns-server-tcp-6/dependencies
new file mode 100644
index 0000000..6143111
--- /dev/null
+++ b/examples/source/dns-server-tcp-6/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+mount-rwfs
diff --git a/examples/source/dns-server-udp-log/notification-fd b/examples/source/dns-server-tcp-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/dns-server-udp-log/notification-fd
+++ b/examples/source/dns-server-tcp-6/notification-fd
diff --git a/examples/source/dns-server-tcp-6/producer-for b/examples/source/dns-server-tcp-6/producer-for
new file mode 100644
index 0000000..809f840
--- /dev/null
+++ b/examples/source/dns-server-tcp-6/producer-for
@@ -0,0 +1 @@
+dns-server-tcp-log
diff --git a/examples/source/dns-server-tcp-6/run b/examples/source/dns-server-tcp-6/run
new file mode 100755
index 0000000..c4fd207
--- /dev/null
+++ b/examples/source/dns-server-tcp-6/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+export AXFR ""
+fdmove 1 3
+s6-tcpserver -v -1 -U -- ${ETH1_IP6} 53
+s6-tcpserver-access -H -l0 -x rules.cdb --
+shibari-server-tcp -v2 -r5000 -w5000
diff --git a/examples/source/fdholder/type b/examples/source/dns-server-tcp-6/type
index 5883cff..5883cff 100644
--- a/examples/source/fdholder/type
+++ b/examples/source/dns-server-tcp-6/type
diff --git a/examples/source/dns-server-tcp-log/consumer-for b/examples/source/dns-server-tcp-log/consumer-for
new file mode 100644
index 0000000..953d32e
--- /dev/null
+++ b/examples/source/dns-server-tcp-log/consumer-for
@@ -0,0 +1,3 @@
+dns-server-tcp-4
+dns-server-tcp-6
+dns-server-tcp-6-bis
diff --git a/examples/source/fdholder-log/dependencies b/examples/source/dns-server-tcp-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/fdholder-log/dependencies
+++ b/examples/source/dns-server-tcp-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/dns-server-tcp-log/pipeline-name b/examples/source/dns-server-tcp-log/pipeline-name
new file mode 100644
index 0000000..8193ac8
--- /dev/null
+++ b/examples/source/dns-server-tcp-log/pipeline-name
@@ -0,0 +1 @@
+dns-server-tcp-pipeline
diff --git a/examples/source/dns-server-tcp-log/run b/examples/source/dns-server-tcp-log/run
new file mode 100755
index 0000000..17c490e
--- /dev/null
+++ b/examples/source/dns-server-tcp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dns-server-tcp
diff --git a/examples/source/hostapd-log/type b/examples/source/dns-server-tcp-log/type
index 5883cff..5883cff 100644
--- a/examples/source/hostapd-log/type
+++ b/examples/source/dns-server-tcp-log/type
diff --git a/examples/source/dns-server-udp/dependencies b/examples/source/dns-server-udp-4/dependencies
index cd7cc57..cd7cc57 100644
--- a/examples/source/dns-server-udp/dependencies
+++ b/examples/source/dns-server-udp-4/dependencies
diff --git a/examples/source/fdholder-log/notification-fd b/examples/source/dns-server-udp-4/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/fdholder-log/notification-fd
+++ b/examples/source/dns-server-udp-4/notification-fd
diff --git a/examples/source/dns-server-udp/producer-for b/examples/source/dns-server-udp-4/producer-for
index 81fc8f4..81fc8f4 100644
--- a/examples/source/dns-server-udp/producer-for
+++ b/examples/source/dns-server-udp-4/producer-for
diff --git a/examples/source/dns-server-udp-4/run b/examples/source/dns-server-udp-4/run
new file mode 100755
index 0000000..81c55b8
--- /dev/null
+++ b/examples/source/dns-server-udp-4/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP4
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP4}
diff --git a/examples/source/hostapd/type b/examples/source/dns-server-udp-4/type
index 5883cff..5883cff 100644
--- a/examples/source/hostapd/type
+++ b/examples/source/dns-server-udp-4/type
diff --git a/examples/source/dns-server-udp-6-bis/dependencies b/examples/source/dns-server-udp-6-bis/dependencies
new file mode 100644
index 0000000..6143111
--- /dev/null
+++ b/examples/source/dns-server-udp-6-bis/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+mount-rwfs
diff --git a/examples/source/fdholder/notification-fd b/examples/source/dns-server-udp-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/fdholder/notification-fd
+++ b/examples/source/dns-server-udp-6-bis/notification-fd
diff --git a/examples/source/dns-server-udp-6-bis/producer-for b/examples/source/dns-server-udp-6-bis/producer-for
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source/dns-server-udp-6-bis/producer-for
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source/dns-server-udp-6-bis/run b/examples/source/dns-server-udp-6-bis/run
new file mode 100755
index 0000000..295ed45
--- /dev/null
+++ b/examples/source/dns-server-udp-6-bis/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6_BIS
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP6_BIS}
diff --git a/examples/source/httpd-4-log/type b/examples/source/dns-server-udp-6-bis/type
index 5883cff..5883cff 100644
--- a/examples/source/httpd-4-log/type
+++ b/examples/source/dns-server-udp-6-bis/type
diff --git a/examples/source/dns-server-udp-6/dependencies b/examples/source/dns-server-udp-6/dependencies
new file mode 100644
index 0000000..6143111
--- /dev/null
+++ b/examples/source/dns-server-udp-6/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+mount-rwfs
diff --git a/examples/source/hostapd-log/notification-fd b/examples/source/dns-server-udp-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/hostapd-log/notification-fd
+++ b/examples/source/dns-server-udp-6/notification-fd
diff --git a/examples/source/dns-server-udp-6/producer-for b/examples/source/dns-server-udp-6/producer-for
new file mode 100644
index 0000000..81fc8f4
--- /dev/null
+++ b/examples/source/dns-server-udp-6/producer-for
@@ -0,0 +1 @@
+dns-server-udp-log
diff --git a/examples/source/dns-server-udp-6/run b/examples/source/dns-server-udp-6/run
new file mode 100755
index 0000000..ddc2eff
--- /dev/null
+++ b/examples/source/dns-server-udp-6/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH1_IP6
+emptyenv -p
+s6-envuidgid dnsserve
+cd /home/dns
+shibari-server-udp -U -v2 -d3 -x rules.cdb ${ETH1_IP6}
diff --git a/examples/source/identd-4-log/type b/examples/source/dns-server-udp-6/type
index 5883cff..5883cff 100644
--- a/examples/source/identd-4-log/type
+++ b/examples/source/dns-server-udp-6/type
diff --git a/examples/source/dns-server-udp-log/consumer-for b/examples/source/dns-server-udp-log/consumer-for
index 6517ecf..6123cf1 100644
--- a/examples/source/dns-server-udp-log/consumer-for
+++ b/examples/source/dns-server-udp-log/consumer-for
@@ -1 +1,3 @@
-dns-server-udp
+dns-server-udp-4
+dns-server-udp-6
+dns-server-udp-6-bis
diff --git a/examples/source/dns-server-udp-log/dependencies b/examples/source/dns-server-udp-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/dns-server-udp-log/dependencies
+++ b/examples/source/dns-server-udp-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/dns-server-udp-log/run b/examples/source/dns-server-udp-log/run
index e472953..0782e5a 100755
--- a/examples/source/dns-server-udp-log/run
+++ b/examples/source/dns-server-udp-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid dnslog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/dns-server-udp
+s6-log t s1000000 n20 /var/log/dns-server-udp
diff --git a/examples/source/dns-server-udp/run b/examples/source/dns-server-udp/run
deleted file mode 100755
index 2086030..0000000
--- a/examples/source/dns-server-udp/run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-softlimit -d 300000
-s6-envuidgid dnsserve
-importas -i ETH1_IP4 ETH1_IP4
-export IP ${ETH1_IP4}
-export ROOT /home/dns
-tinydns
diff --git a/examples/source/dnsproxy6-bis-tcp/dependencies b/examples/source/dnsproxy6-bis-tcp/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-tcp/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/httpd-4-log/notification-fd b/examples/source/dnsproxy6-bis-tcp/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/httpd-4-log/notification-fd
+++ b/examples/source/dnsproxy6-bis-tcp/notification-fd
diff --git a/examples/source/dnsproxy6-bis-tcp/producer-for b/examples/source/dnsproxy6-bis-tcp/producer-for
new file mode 100644
index 0000000..f2f9f56
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-tcp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-tcp-log
diff --git a/examples/source/dnsproxy6-bis-tcp/run b/examples/source/dnsproxy6-bis-tcp/run
new file mode 100755
index 0000000..75436f7
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-tcp/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid dnscache
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 53
+s6-tcpserver-access -v2 -DHl0 -x /etc/tcprules/dnsproxy6.cdb --
+s6-tcpclient -DH4l0 -- 192.168.0.1 53
+s6-ioconnect
diff --git a/examples/source/identd-4/type b/examples/source/dnsproxy6-bis-tcp/type
index 5883cff..5883cff 100644
--- a/examples/source/identd-4/type
+++ b/examples/source/dnsproxy6-bis-tcp/type
diff --git a/examples/source/dnsproxy6-bis-udp/dependencies b/examples/source/dnsproxy6-bis-udp/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-udp/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/identd-4-log/notification-fd b/examples/source/dnsproxy6-bis-udp/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/identd-4-log/notification-fd
+++ b/examples/source/dnsproxy6-bis-udp/notification-fd
diff --git a/examples/source/dnsproxy6-bis-udp/producer-for b/examples/source/dnsproxy6-bis-udp/producer-for
new file mode 100644
index 0000000..ec6d5dc
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-udp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-udp-log
diff --git a/examples/source/dnsproxy6-bis-udp/run b/examples/source/dnsproxy6-bis-udp/run
new file mode 100755
index 0000000..bbe6293
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-udp/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+s6-envdir /etc/env-network
+multisubstitute
+{
+ importas -uSi ETH0_IP6_BIS
+ importas -uSi ETH0_IP4
+}
+emptyenv -p
+if { redirfd -w 1 data/caches s6-echo ${ETH0_IP4} }
+s6-envuidgid dnscache
+fdmove 1 3
+dnsfunneld -1 -U -Rdata -t61000 -i ${ETH0_IP6_BIS}
diff --git a/examples/source/dnsproxy6-bis-udp/timeout-kill b/examples/source/dnsproxy6-bis-udp/timeout-kill
new file mode 100644
index 0000000..b48423d
--- /dev/null
+++ b/examples/source/dnsproxy6-bis-udp/timeout-kill
@@ -0,0 +1 @@
+62000
diff --git a/examples/source/klogd-srv/type b/examples/source/dnsproxy6-bis-udp/type
index 5883cff..5883cff 100644
--- a/examples/source/klogd-srv/type
+++ b/examples/source/dnsproxy6-bis-udp/type
diff --git a/examples/source/dnsproxy6-tcp-log/consumer-for b/examples/source/dnsproxy6-tcp-log/consumer-for
new file mode 100644
index 0000000..76d0421
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp-log/consumer-for
@@ -0,0 +1,2 @@
+dnsproxy6-tcp
+dnsproxy6-bis-tcp
diff --git a/examples/source/hostapd-log/dependencies b/examples/source/dnsproxy6-tcp-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/hostapd-log/dependencies
+++ b/examples/source/dnsproxy6-tcp-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/dnsproxy6-tcp-log/pipeline-name b/examples/source/dnsproxy6-tcp-log/pipeline-name
new file mode 100644
index 0000000..02b3b9e
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp-log/pipeline-name
@@ -0,0 +1 @@
+dnsproxy6-tcp-pipeline
diff --git a/examples/source/dnsproxy6-tcp-log/run b/examples/source/dnsproxy6-tcp-log/run
new file mode 100755
index 0000000..46d6069
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dnsproxy6-tcp
diff --git a/examples/source/qmail-log/type b/examples/source/dnsproxy6-tcp-log/type
index 5883cff..5883cff 100644
--- a/examples/source/qmail-log/type
+++ b/examples/source/dnsproxy6-tcp-log/type
diff --git a/examples/source/dnsproxy6-tcp/dependencies b/examples/source/dnsproxy6-tcp/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/identd-4/notification-fd b/examples/source/dnsproxy6-tcp/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/identd-4/notification-fd
+++ b/examples/source/dnsproxy6-tcp/notification-fd
diff --git a/examples/source/dnsproxy6-tcp/producer-for b/examples/source/dnsproxy6-tcp/producer-for
new file mode 100644
index 0000000..f2f9f56
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-tcp-log
diff --git a/examples/source/dnsproxy6-tcp/run b/examples/source/dnsproxy6-tcp/run
new file mode 100755
index 0000000..ff68c75
--- /dev/null
+++ b/examples/source/dnsproxy6-tcp/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid dnscache
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 53
+s6-tcpserver-access -v2 -DHl0 -x /etc/tcprules/dnsproxy6.cdb --
+s6-tcpclient -DH4l0 -- 192.168.0.1 53
+s6-ioconnect
diff --git a/examples/source/qmail/type b/examples/source/dnsproxy6-tcp/type
index 5883cff..5883cff 100644
--- a/examples/source/qmail/type
+++ b/examples/source/dnsproxy6-tcp/type
diff --git a/examples/source/dnsproxy6-udp-log/consumer-for b/examples/source/dnsproxy6-udp-log/consumer-for
new file mode 100644
index 0000000..23f7800
--- /dev/null
+++ b/examples/source/dnsproxy6-udp-log/consumer-for
@@ -0,0 +1,3 @@
+dnsproxy6-udp
+dnsproxy6-bis-udp
+
diff --git a/examples/source/httpd-4-log/dependencies b/examples/source/dnsproxy6-udp-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/httpd-4-log/dependencies
+++ b/examples/source/dnsproxy6-udp-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/dnsproxy6-udp-log/pipeline-name b/examples/source/dnsproxy6-udp-log/pipeline-name
new file mode 100644
index 0000000..cb478c7
--- /dev/null
+++ b/examples/source/dnsproxy6-udp-log/pipeline-name
@@ -0,0 +1 @@
+dnsproxy6-udp-pipeline
diff --git a/examples/source/dnsproxy6-udp-log/run b/examples/source/dnsproxy6-udp-log/run
new file mode 100755
index 0000000..c4788fb
--- /dev/null
+++ b/examples/source/dnsproxy6-udp-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid dnslog
+exec -c
+s6-log t s1000000 n20 /var/log/dnsproxy6-udp
diff --git a/examples/source/qmtpd-4-log/type b/examples/source/dnsproxy6-udp-log/type
index 5883cff..5883cff 100644
--- a/examples/source/qmtpd-4-log/type
+++ b/examples/source/dnsproxy6-udp-log/type
diff --git a/examples/source/dnsproxy6-udp/dependencies b/examples/source/dnsproxy6-udp/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/dnsproxy6-udp/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/klogd-log/notification-fd b/examples/source/dnsproxy6-udp/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/klogd-log/notification-fd
+++ b/examples/source/dnsproxy6-udp/notification-fd
diff --git a/examples/source/dnsproxy6-udp/producer-for b/examples/source/dnsproxy6-udp/producer-for
new file mode 100644
index 0000000..ec6d5dc
--- /dev/null
+++ b/examples/source/dnsproxy6-udp/producer-for
@@ -0,0 +1 @@
+dnsproxy6-udp-log
diff --git a/examples/source/dnsproxy6-udp/run b/examples/source/dnsproxy6-udp/run
new file mode 100755
index 0000000..00b1fa8
--- /dev/null
+++ b/examples/source/dnsproxy6-udp/run
@@ -0,0 +1,13 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+s6-envdir /etc/env-network
+multisubstitute
+{
+ importas -uSi ETH0_IP6
+ importas -uSi ETH0_IP4
+}
+emptyenv -p
+if { redirfd -w 1 data/caches s6-echo ${ETH0_IP4} }
+s6-envuidgid dnscache
+fdmove 1 3
+dnsfunneld -1 -U -Rdata -t61000 -i ${ETH0_IP6}
diff --git a/examples/source/dnsproxy6-udp/timeout-kill b/examples/source/dnsproxy6-udp/timeout-kill
new file mode 100644
index 0000000..b48423d
--- /dev/null
+++ b/examples/source/dnsproxy6-udp/timeout-kill
@@ -0,0 +1 @@
+62000
diff --git a/examples/source/qmtpd-4/type b/examples/source/dnsproxy6-udp/type
index 5883cff..5883cff 100644
--- a/examples/source/qmtpd-4/type
+++ b/examples/source/dnsproxy6-udp/type
diff --git a/examples/source/fck-livebox/dependencies b/examples/source/fck-livebox/dependencies
new file mode 100644
index 0000000..e17591e
--- /dev/null
+++ b/examples/source/fck-livebox/dependencies
@@ -0,0 +1,3 @@
+mount-rwfs
+init-ipv6
+udhcpc6-eth2
diff --git a/examples/source/fck-livebox/down b/examples/source/fck-livebox/down
new file mode 100644
index 0000000..d8dd7e2
--- /dev/null
+++ b/examples/source/fck-livebox/down
@@ -0,0 +1,2 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+s6-instance-control -dwD /run/service/udhcpc6-eth2 $i
diff --git a/examples/source/init-eth3/type b/examples/source/fck-livebox/type
index bdd22a1..bdd22a1 100644
--- a/examples/source/init-eth3/type
+++ b/examples/source/fck-livebox/type
diff --git a/examples/source/fck-livebox/up b/examples/source/fck-livebox/up
new file mode 100644
index 0000000..634ca1d
--- /dev/null
+++ b/examples/source/fck-livebox/up
@@ -0,0 +1,2 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+s6-instance-control -uwu /run/service/udhcpc6-eth2 $i
diff --git a/examples/source/fdholder-log/consumer-for b/examples/source/fdholder-log/consumer-for
deleted file mode 100644
index c9e44ab..0000000
--- a/examples/source/fdholder-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-fdholder
diff --git a/examples/source/fdholder-log/pipeline-name b/examples/source/fdholder-log/pipeline-name
deleted file mode 100644
index 44be5e2..0000000
--- a/examples/source/fdholder-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-fdholder-pipeline
diff --git a/examples/source/fdholder-log/run b/examples/source/fdholder-log/run
deleted file mode 100755
index b31d28c..0000000
--- a/examples/source/fdholder-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid fdhlog
-exec -c
-s6-log -d3 -- s1000000 n20 t /var/log/fdholder
diff --git a/examples/source/fdholder/data/rules/uid/0/allow b/examples/source/fdholder/data/rules/uid/0/allow
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/fdholder/data/rules/uid/0/allow
+++ /dev/null
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP
deleted file mode 100644
index d00491f..0000000
--- a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_GETDUMP
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX
deleted file mode 100644
index 8d98f9d..0000000
--- a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX
+++ /dev/null
@@ -1 +0,0 @@
-.*
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP
deleted file mode 100644
index d00491f..0000000
--- a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_SETDUMP
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX b/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX
deleted file mode 100644
index 8d98f9d..0000000
--- a/examples/source/fdholder/data/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX
+++ /dev/null
@@ -1 +0,0 @@
-.*
diff --git a/examples/source/fdholder/max-death-tally b/examples/source/fdholder/max-death-tally
deleted file mode 100644
index 29d6383..0000000
--- a/examples/source/fdholder/max-death-tally
+++ /dev/null
@@ -1 +0,0 @@
-100
diff --git a/examples/source/fdholder/producer-for b/examples/source/fdholder/producer-for
deleted file mode 100644
index 11f1ac2..0000000
--- a/examples/source/fdholder/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-fdholder-log
diff --git a/examples/source/fdholder/run b/examples/source/fdholder/run
deleted file mode 100755
index c511dea..0000000
--- a/examples/source/fdholder/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envuidgid fdh
-fdmove 1 3
-s6-fdholder-daemon -v 2 -1 -T 20000 -U -i data/rules -- s
diff --git a/examples/source/fdholder/timeout-finish b/examples/source/fdholder/timeout-finish
deleted file mode 100644
index e9c02da..0000000
--- a/examples/source/fdholder/timeout-finish
+++ /dev/null
@@ -1 +0,0 @@
-5000
diff --git a/examples/source/fdholder/timeout-kill b/examples/source/fdholder/timeout-kill
deleted file mode 100644
index 573541a..0000000
--- a/examples/source/fdholder/timeout-kill
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/examples/source/fifodir-cleanup/run b/examples/source/fifodir-cleanup/run
index a5108c5..c2688ad 100755
--- a/examples/source/fifodir-cleanup/run
+++ b/examples/source/fifodir-cleanup/run
@@ -2,14 +2,14 @@
fdmove -c 2 1
if
{
- forbacktickx -ep -0 i { s6-ls -0 /service }
+ forbacktickx -ep -0 i { s6-ls -0 /run/service }
importas -u i i
foreground
{
- if { eltest -d /service/${i}/log }
- s6-cleanfifodir /service/${i}/log/event
+ if { eltest -d /run/service/${i}/log }
+ s6-cleanfifodir /run/service/${i}/log/event
}
- s6-cleanfifodir /service/${i}/event
+ s6-cleanfifodir /run/service/${i}/event
}
s6-setuidgid nobody
s6-sleep 86400
diff --git a/examples/source/hostapd-log/consumer-for b/examples/source/hostapd-log/consumer-for
deleted file mode 100644
index f86cc31..0000000
--- a/examples/source/hostapd-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-hostapd
diff --git a/examples/source/hostapd-log/pipeline-name b/examples/source/hostapd-log/pipeline-name
deleted file mode 100644
index ce1e711..0000000
--- a/examples/source/hostapd-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-hostapd-pipeline
diff --git a/examples/source/hostapd-wlan0-log/consumer-for b/examples/source/hostapd-wlan0-log/consumer-for
new file mode 100644
index 0000000..7a26ac4
--- /dev/null
+++ b/examples/source/hostapd-wlan0-log/consumer-for
@@ -0,0 +1 @@
+hostapd-wlan0
diff --git a/examples/source/hostapd-wlan0-log/dependencies b/examples/source/hostapd-wlan0-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/hostapd-wlan0-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/hostapd-wlan0-log/pipeline-name b/examples/source/hostapd-wlan0-log/pipeline-name
new file mode 100644
index 0000000..bdddcad
--- /dev/null
+++ b/examples/source/hostapd-wlan0-log/pipeline-name
@@ -0,0 +1 @@
+hostapd-wlan0-pipeline
diff --git a/examples/source/hostapd-log/run b/examples/source/hostapd-wlan0-log/run
index 5dc102e..86d7833 100755
--- a/examples/source/hostapd-log/run
+++ b/examples/source/hostapd-wlan0-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid wifilog
exec -c
-s6-log -d3 -- s1000000 n20 t /var/log/hostapd
+s6-log t s1000000 n20 /var/log/hostapd-wlan0
diff --git a/examples/source/smtpd-4-log/type b/examples/source/hostapd-wlan0-log/type
index 5883cff..5883cff 100644
--- a/examples/source/smtpd-4-log/type
+++ b/examples/source/hostapd-wlan0-log/type
diff --git a/examples/source/hostapd/dependencies b/examples/source/hostapd-wlan0/dependencies
index ceb3e6e..ceb3e6e 100644
--- a/examples/source/hostapd/dependencies
+++ b/examples/source/hostapd-wlan0/dependencies
diff --git a/examples/source/ntpclient-log/notification-fd b/examples/source/hostapd-wlan0/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/ntpclient-log/notification-fd
+++ b/examples/source/hostapd-wlan0/notification-fd
diff --git a/examples/source/hostapd-wlan0/producer-for b/examples/source/hostapd-wlan0/producer-for
new file mode 100644
index 0000000..e8de59f
--- /dev/null
+++ b/examples/source/hostapd-wlan0/producer-for
@@ -0,0 +1 @@
+hostapd-wlan0-log
diff --git a/examples/source/hostapd-wlan0/run b/examples/source/hostapd-wlan0/run
new file mode 100755
index 0000000..e4db4e5
--- /dev/null
+++ b/examples/source/hostapd-wlan0/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+hostapd -1 /etc/hostapd/hostapd-wlan0.conf
diff --git a/examples/source/smtpd-4/type b/examples/source/hostapd-wlan0/type
index 5883cff..5883cff 100644
--- a/examples/source/smtpd-4/type
+++ b/examples/source/hostapd-wlan0/type
diff --git a/examples/source/hostapd-wlan1-log/consumer-for b/examples/source/hostapd-wlan1-log/consumer-for
new file mode 100644
index 0000000..198b420
--- /dev/null
+++ b/examples/source/hostapd-wlan1-log/consumer-for
@@ -0,0 +1 @@
+hostapd-wlan1
diff --git a/examples/source/hostapd-wlan1-log/dependencies b/examples/source/hostapd-wlan1-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/hostapd-wlan1-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/hostapd-wlan1-log/pipeline-name b/examples/source/hostapd-wlan1-log/pipeline-name
new file mode 100644
index 0000000..98013e1
--- /dev/null
+++ b/examples/source/hostapd-wlan1-log/pipeline-name
@@ -0,0 +1 @@
+hostapd-wlan1-pipeline
diff --git a/examples/source/hostapd-wlan1-log/run b/examples/source/hostapd-wlan1-log/run
new file mode 100755
index 0000000..ace4d10
--- /dev/null
+++ b/examples/source/hostapd-wlan1-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/hostapd-wlan1
diff --git a/examples/source/sshd-4-log/type b/examples/source/hostapd-wlan1-log/type
index 5883cff..5883cff 100644
--- a/examples/source/sshd-4-log/type
+++ b/examples/source/hostapd-wlan1-log/type
diff --git a/examples/source/hostapd-wlan1/dependencies b/examples/source/hostapd-wlan1/dependencies
new file mode 100644
index 0000000..81a87bc
--- /dev/null
+++ b/examples/source/hostapd-wlan1/dependencies
@@ -0,0 +1 @@
+init-wlan1
diff --git a/examples/source/qmail-log/notification-fd b/examples/source/hostapd-wlan1/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/qmail-log/notification-fd
+++ b/examples/source/hostapd-wlan1/notification-fd
diff --git a/examples/source/hostapd-wlan1/producer-for b/examples/source/hostapd-wlan1/producer-for
new file mode 100644
index 0000000..570b36c
--- /dev/null
+++ b/examples/source/hostapd-wlan1/producer-for
@@ -0,0 +1 @@
+hostapd-wlan1-log
diff --git a/examples/source/hostapd-wlan1/run b/examples/source/hostapd-wlan1/run
new file mode 100755
index 0000000..0637480
--- /dev/null
+++ b/examples/source/hostapd-wlan1/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+hostapd -1 /etc/hostapd/hostapd-wlan1.conf
diff --git a/examples/source/syslogd-srv/type b/examples/source/hostapd-wlan1/type
index 5883cff..5883cff 100644
--- a/examples/source/syslogd-srv/type
+++ b/examples/source/hostapd-wlan1/type
diff --git a/examples/source/hostapd/producer-for b/examples/source/hostapd/producer-for
deleted file mode 100644
index b6e1e02..0000000
--- a/examples/source/hostapd/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-hostapd-log
diff --git a/examples/source/hostapd/run b/examples/source/hostapd/run
deleted file mode 100755
index 88ac3aa..0000000
--- a/examples/source/hostapd/run
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-hostapd /etc/hostapd/hostapd.conf
diff --git a/examples/source/httpd-4-log/consumer-for b/examples/source/httpd-4-log/consumer-for
deleted file mode 100644
index 3dfc041..0000000
--- a/examples/source/httpd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-httpd-4
diff --git a/examples/source/httpd-4-log/pipeline-name b/examples/source/httpd-4-log/pipeline-name
deleted file mode 100644
index 291f119..0000000
--- a/examples/source/httpd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-httpd-4-pipeline
diff --git a/examples/source/httpd-4/producer-for b/examples/source/httpd-4/producer-for
index 9835bc1..7f6f6cd 100644
--- a/examples/source/httpd-4/producer-for
+++ b/examples/source/httpd-4/producer-for
@@ -1 +1 @@
-httpd-4-log
+httpd-log
diff --git a/examples/source/httpd-4/run b/examples/source/httpd-4/run
index 34b2aa6..75e7635 100755
--- a/examples/source/httpd-4/run
+++ b/examples/source/httpd-4/run
@@ -1,8 +1,10 @@
#!/command/execlineb -P
fdmove -c 2 1
-s6-envuidgid www
-cd /home/www
-importas -ui ETH0_IP4 ETH0_IP4
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid public
fdmove 1 3
-s6-tcpserver4 -v 2 -U -c 512 -1 -- ${ETH0_IP4} 80
-httpd -iv
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP4} 80
+tipideed
diff --git a/examples/source/httpd-6-bis/dependencies b/examples/source/httpd-6-bis/dependencies
new file mode 100644
index 0000000..6143111
--- /dev/null
+++ b/examples/source/httpd-6-bis/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+mount-rwfs
diff --git a/examples/source/qmtpd-4-log/notification-fd b/examples/source/httpd-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/qmtpd-4-log/notification-fd
+++ b/examples/source/httpd-6-bis/notification-fd
diff --git a/examples/source/httpd-6-bis/producer-for b/examples/source/httpd-6-bis/producer-for
new file mode 100644
index 0000000..7f6f6cd
--- /dev/null
+++ b/examples/source/httpd-6-bis/producer-for
@@ -0,0 +1 @@
+httpd-log
diff --git a/examples/source/httpd-6-bis/run b/examples/source/httpd-6-bis/run
new file mode 100755
index 0000000..5dc826d
--- /dev/null
+++ b/examples/source/httpd-6-bis/run
@@ -0,0 +1,10 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid public
+fdmove 1 3
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP6_BIS} 80
+tipideed
diff --git a/examples/source/taiclockd-4-log/type b/examples/source/httpd-6-bis/type
index 5883cff..5883cff 100644
--- a/examples/source/taiclockd-4-log/type
+++ b/examples/source/httpd-6-bis/type
diff --git a/examples/source/httpd-6/dependencies b/examples/source/httpd-6/dependencies
new file mode 100644
index 0000000..6143111
--- /dev/null
+++ b/examples/source/httpd-6/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+mount-rwfs
diff --git a/examples/source/qmtpd-4/notification-fd b/examples/source/httpd-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/qmtpd-4/notification-fd
+++ b/examples/source/httpd-6/notification-fd
diff --git a/examples/source/httpd-6/producer-for b/examples/source/httpd-6/producer-for
new file mode 100644
index 0000000..7f6f6cd
--- /dev/null
+++ b/examples/source/httpd-6/producer-for
@@ -0,0 +1 @@
+httpd-log
diff --git a/examples/source/httpd-6/run b/examples/source/httpd-6/run
new file mode 100755
index 0000000..610d242
--- /dev/null
+++ b/examples/source/httpd-6/run
@@ -0,0 +1,10 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+cd /home/public
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid public
+fdmove 1 3
+s6-tcpserver -v -U -c 512 -1 -- ${ETH0_IP6} 80
+tipideed
diff --git a/examples/source/udhcpc-eth3-log/type b/examples/source/httpd-6/type
index 5883cff..5883cff 100644
--- a/examples/source/udhcpc-eth3-log/type
+++ b/examples/source/httpd-6/type
diff --git a/examples/source/httpd-log/consumer-for b/examples/source/httpd-log/consumer-for
new file mode 100644
index 0000000..5920961
--- /dev/null
+++ b/examples/source/httpd-log/consumer-for
@@ -0,0 +1,3 @@
+httpd-4
+httpd-6
+httpd-6-bis
diff --git a/examples/source/httpd-log/dependencies b/examples/source/httpd-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/httpd-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/httpd-log/pipeline-name b/examples/source/httpd-log/pipeline-name
new file mode 100644
index 0000000..2cc6b83
--- /dev/null
+++ b/examples/source/httpd-log/pipeline-name
@@ -0,0 +1 @@
+httpd-pipeline
diff --git a/examples/source/httpd-4-log/run b/examples/source/httpd-log/run
index 5ee680e..d60db8c 100755
--- a/examples/source/httpd-4-log/run
+++ b/examples/source/httpd-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid publilog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/httpd-4
+s6-log t s1000000 n20 /var/log/httpd
diff --git a/examples/source/udhcpc-eth3/type b/examples/source/httpd-log/type
index 5883cff..5883cff 100644
--- a/examples/source/udhcpc-eth3/type
+++ b/examples/source/httpd-log/type
diff --git a/examples/source/identd-4-log/consumer-for b/examples/source/identd-4-log/consumer-for
deleted file mode 100644
index f3a2772..0000000
--- a/examples/source/identd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-identd-4
diff --git a/examples/source/identd-4-log/dependencies b/examples/source/identd-4-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/identd-4-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/identd-4-log/pipeline-name b/examples/source/identd-4-log/pipeline-name
deleted file mode 100644
index 72bb98e..0000000
--- a/examples/source/identd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-identd-4-pipeline
diff --git a/examples/source/identd-4-log/run b/examples/source/identd-4-log/run
deleted file mode 100755
index 176dc99..0000000
--- a/examples/source/identd-4-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid identlog
-exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/identd-4
diff --git a/examples/source/identd-4/producer-for b/examples/source/identd-4/producer-for
deleted file mode 100644
index 7b1014d..0000000
--- a/examples/source/identd-4/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-identd-4-log
diff --git a/examples/source/identd-4/run b/examples/source/identd-4/run
deleted file mode 100755
index eb5ed80..0000000
--- a/examples/source/identd-4/run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envuidgid ident
-importas -ui ETH0_IP4 ETH0_IP4
-fdmove 1 3
-s6-tcpserver4 -v 1 -U -c 512 -1 -- ${ETH0_IP4} 113
-s6-tcpserver-access -Hl0 -t 2000 --
-minidentd -vt 10000
diff --git a/examples/source/init-clock/dependencies b/examples/source/init-clock/dependencies
new file mode 100644
index 0000000..93da1c1
--- /dev/null
+++ b/examples/source/init-clock/dependencies
@@ -0,0 +1,3 @@
+init-sysctl
+init-lan
+dns-cache
diff --git a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT b/examples/source/init-clock/down
index 8b13789..8b13789 100644
--- a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/env/RELAYCLIENT
+++ b/examples/source/init-clock/down
diff --git a/examples/source/init-clock/type b/examples/source/init-clock/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-clock/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-clock/up b/examples/source/init-clock/up
new file mode 100644
index 0000000..a548ab5
--- /dev/null
+++ b/examples/source/init-clock/up
@@ -0,0 +1,42 @@
+#!/command/execlineb -P
+
+# Get the IP addresses for some NTP servers.
+# Limit the DNS queries to 30 seconds: if the DNS is slower than
+# that, chances are the server isn't good for us anyway.
+# All the queries are parallelized, so it's fast.
+
+pipeline
+{
+ s6-setuidgid nobody
+ forx -p I { 0 1 2 }
+ importas -u I I
+ redirfd -w 2 /dev/null
+ s6-dnsip4 -t 30000 -- ${I}.fr.pool.ntp.org
+}
+
+
+# Ask for a NTP exchange with the servers we get. Accept anything.
+# If the exchange can't be completed in 5 seconds, kill it.
+# All the queries are parallelized.
+
+pipeline
+{
+ s6-setuidgid ntp
+ forstdin -p -d"\n" NTPSERVERIP
+ importas -u NTPSERVERIP NTPSERVERIP
+ redirfd -w 2 /dev/null
+ s6-sntpclock -f -T 5000 ${NTPSERVERIP}
+}
+
+
+# Take the first answer we get.
+
+pipeline
+{
+ s6-setuidgid nobody
+ s6-head -Sc 12
+}
+
+# Update the system clock. Accept anything.
+
+s6-clockadd -f
diff --git a/examples/source/init-coldplug/dependencies b/examples/source/init-coldplug/dependencies
index 81fa7ad..870bae2 100644
--- a/examples/source/init-coldplug/dependencies
+++ b/examples/source/init-coldplug/dependencies
@@ -1,3 +1,2 @@
-init-devtmpfs
mount-sys
mdevd
diff --git a/examples/source/init-coldplug/up b/examples/source/init-coldplug/up
index df8e960..edc5c1b 100644
--- a/examples/source/init-coldplug/up
+++ b/examples/source/init-coldplug/up
@@ -1 +1 @@
-mdevd-coldplug -O4
+mdevd-coldplug
diff --git a/examples/source/init-devtmpfs/up b/examples/source/init-devtmpfs/up
index 1310210..7c59980 100644
--- a/examples/source/init-devtmpfs/up
+++ b/examples/source/init-devtmpfs/up
@@ -1,11 +1,11 @@
-if { mkdir -p -m 0755 -- /dev/pts }
+if { s6-mkdir -p -m 0755 -- /dev/pts /dev/shm }
if { s6-mount -wt devpts -o noexec,nosuid,gid=0,mode=0600 devpts /dev/pts }
if { s6-ln -s /proc/self/fd /dev/fd }
if { s6-ln -s /proc/kcore /dev/core }
if { s6-ln -s loop0 /dev/loop }
if { s6-ln -s ram0 /dev/ram }
if { s6-ln -s rtc0 /dev/rtc }
-if { s6-ln -s /run/shm /dev/shm }
+if { s6-mount -t tmpfs -o noexec,nosuid,nodev,mode=0755 tmpfs /dev/shm }
if { s6-ln -s fd/0 /dev/stdin }
if { s6-ln -s fd/1 /dev/stdout }
if { s6-ln -s fd/2 /dev/stderr }
diff --git a/examples/source/init-diskconfig/up b/examples/source/init-diskconfig/up
index 9418910..f9fbfef 100644
--- a/examples/source/init-diskconfig/up
+++ b/examples/source/init-diskconfig/up
@@ -1,4 +1,5 @@
-if { redirfd -w 1 /run/disk-devices/rofs s6-echo sda1 }
-if { redirfd -w 1 /run/disk-devices/rwfs s6-echo sda2 }
-if { redirfd -w 1 /run/disk-devices/syncfs s6-echo sda3 }
+if { s6-mkdir -p /run/disk-devices }
+if { redirfd -w 1 /run/disk-devices/rofs_sinay s6-echo sda1 }
+if { redirfd -w 1 /run/disk-devices/rwfs_sinay s6-echo sda2 }
+if { redirfd -w 1 /run/disk-devices/syncdata_sinay s6-echo sda3 }
if { redirfd -w 1 /run/disk-devices/swap s6-echo sda5 }
diff --git a/examples/source/init-eth3/down b/examples/source/init-eth3/down
deleted file mode 100644
index 8800e3e..0000000
--- a/examples/source/init-eth3/down
+++ /dev/null
@@ -1 +0,0 @@
-ip link set dev eth3 down
diff --git a/examples/source/init-eth3/up b/examples/source/init-eth3/up
deleted file mode 100644
index a771926..0000000
--- a/examples/source/init-eth3/up
+++ /dev/null
@@ -1 +0,0 @@
-ip link set dev eth3 up
diff --git a/examples/source/init-fw/dependencies b/examples/source/init-fw/dependencies
new file mode 100644
index 0000000..76b11ef
--- /dev/null
+++ b/examples/source/init-fw/dependencies
@@ -0,0 +1,3 @@
+init-sysctl
+mount-cgroups
+mount-proc
diff --git a/examples/source/init-fw/type b/examples/source/init-fw/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-fw/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-fw/up b/examples/source/init-fw/up
new file mode 100644
index 0000000..38fb129
--- /dev/null
+++ b/examples/source/init-fw/up
@@ -0,0 +1 @@
+/etc/s6-init/fw-config
diff --git a/examples/source/init-ipv6/dependencies b/examples/source/init-ipv6/dependencies
new file mode 100644
index 0000000..397bdfa
--- /dev/null
+++ b/examples/source/init-ipv6/dependencies
@@ -0,0 +1,5 @@
+init-lan
+mount-rwfs
+udhcpc6-eth2
+hostapd-wlan0
+hostapd-wlan1
diff --git a/examples/source/init-ipv6/down b/examples/source/init-ipv6/down
new file mode 100755
index 0000000..92a27a1
--- /dev/null
+++ b/examples/source/init-ipv6/down
@@ -0,0 +1,3 @@
+forbacktickx -Ep i { s6-ls /run/service/udhcpc6-eth2/instance }
+if { s6-instance-delete -t 5000 /run/service/udhcpc6-eth2 $i }
+ip link del eth2_$i
diff --git a/examples/source/init-ipv6/type b/examples/source/init-ipv6/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-ipv6/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-ipv6/up b/examples/source/init-ipv6/up
new file mode 100644
index 0000000..4e2d602
--- /dev/null
+++ b/examples/source/init-ipv6/up
@@ -0,0 +1,35 @@
+if { modprobe ipv6 }
+if { redirfd -w 1 /proc/sys/net/ipv6/conf/all/forwarding s6-echo 1 }
+if { redirfd -w 1 /proc/sys/net/ipv6/conf/default/accept_ra s6-echo 0 }
+if { s6-mkdir -p /run/udhcpc6-eth2/by_interface }
+if { s6-mkdir -p /run/udhcpc6-eth2/by_prefix }
+
+if
+{
+ s6-envdir /etc/env-network
+ forx -pE i { eth0 eth1 eth2 eth3 wlan0 wlan1 }
+ backtick -E j { pipeline { s6-echo $i } tr [[:lower:]] [[:upper:]] }
+ multisubstitute
+ {
+ importas -uD "" ip6 ${j}_IP6
+ importas -ui ip6bis ${j}_IP6_BIS
+ }
+ if { if -t { eltest -n ${ip6} } ip -6 addr add ${ip6}/64 dev $i }
+ ip -6 addr add ${ip6bis}/64 dev $i preferred_lft 0
+}
+
+if
+{
+ forbacktickx -Ep i
+ {
+ if { s6-echo "00\n01\n02\n03\n04\n05\n06\n07\n08\n09\n0a\n0b\n0c\n0d\n0e\n0f" }
+ pipeline { if { s6-echo "obase=16" } seq 16 62 }
+ pipeline { bc }
+ tr [[:upper:]] [[:lower:]]
+ }
+ if { ip link add eth2_$i link eth2 type macvlan }
+ if { ip link set dev eth2_$i up }
+ s6-instance-create -d /run/service/udhcpc6-eth2 $i
+}
+
+redirfd -w 1 /proc/sys/net/ipv6/conf/eth2/accept_ra s6-echo 2
diff --git a/examples/source/init-iw/dependencies b/examples/source/init-iw/dependencies
new file mode 100644
index 0000000..2dcd031
--- /dev/null
+++ b/examples/source/init-iw/dependencies
@@ -0,0 +1 @@
+ok-local
diff --git a/examples/source/init-iw/down b/examples/source/init-iw/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-iw/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-iw/type b/examples/source/init-iw/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-iw/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-iw/up b/examples/source/init-iw/up
new file mode 100644
index 0000000..c724fad
--- /dev/null
+++ b/examples/source/init-iw/up
@@ -0,0 +1 @@
+modprobe cfg80211 ieee80211_regdom=FR
diff --git a/examples/source/init-lan/dependencies b/examples/source/init-lan/dependencies
index 79607c6..97eab0d 100644
--- a/examples/source/init-lan/dependencies
+++ b/examples/source/init-lan/dependencies
@@ -1,2 +1,3 @@
init-sysctl
mount-cgroups
+init-coldplug
diff --git a/examples/source/init-lan/up b/examples/source/init-lan/up
index b9c63de..c78d016 100644
--- a/examples/source/init-lan/up
+++ b/examples/source/init-lan/up
@@ -1,11 +1,19 @@
+foreground { modprobe ppp_generic }
+foreground { ip addr add 127.0.0.1/8 dev lo }
+if { ip link set dev lo up }
+s6-envdir /etc/env-network
+if
+{
+ forx -Ep i { 0 1 2 3 }
+ importas -i ip4 ETH${i}_IP4
+ if { ip addr add ${ip4}/24 dev eth$i }
+ ip link set dev eth$i up
+}
+foreground { ip rule add fwmark 1 priority 32001 table 252 }
+foreground { ip rule del priority 32767 }
multisubstitute
{
- importas -i ETH0_IP4 ETH0_IP4
- importas -i ETH1_IP4 ETH1_IP4
- importas -i ETH2_IP4 ETH2_IP4
+ importas -ui ETH2_IP4 ETH2_IP4
+ importas -ui ETH2_GW4 ETH2_GW4
}
-
-if { ifconfig lo 127.0.0.1 netmask 255.0.0.0 }
-if { ifconfig eth0 ${ETH0_IP4} netmask 255.255.255.0 }
-if { ifconfig eth1 ${ETH1_IP4} netmask 255.255.255.0 }
-if { ifconfig eth2 ${ETH2_IP4} netmask 255.255.255.0 }
+ip route add default dev eth2 via ${ETH2_GW4} src ${ETH2_IP4}
diff --git a/examples/source/init-sysctl/up b/examples/source/init-sysctl/up
index 3159dcf..9e846f8 100644
--- a/examples/source/init-sysctl/up
+++ b/examples/source/init-sysctl/up
@@ -1,4 +1,4 @@
-redirfd -r 0 /etc/sysctl.txt
+redirfd -r 0 /etc/sysctl.conf
forstdin -nCd"\n" -- LINE
importas -u LINE LINE
multidefine -C $LINE { CTL VALUE }
diff --git a/examples/source/fdholder/dependencies b/examples/source/init-tmp/dependencies
index 4daddb7..4daddb7 100644
--- a/examples/source/fdholder/dependencies
+++ b/examples/source/init-tmp/dependencies
diff --git a/examples/source/init-tmp/down b/examples/source/init-tmp/down
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/examples/source/init-tmp/down
@@ -0,0 +1 @@
+
diff --git a/examples/source/init-tmp/type b/examples/source/init-tmp/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-tmp/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-tmp/up b/examples/source/init-tmp/up
new file mode 100644
index 0000000..8af5749
--- /dev/null
+++ b/examples/source/init-tmp/up
@@ -0,0 +1,2 @@
+foreground { s6-mount -t tmpfs -o noexec,nodev,mode=1777 tmpfs /tmp }
+exit 0
diff --git a/examples/source/init-urandom/dependencies b/examples/source/init-urandom/dependencies
new file mode 100644
index 0000000..7c63988
--- /dev/null
+++ b/examples/source/init-urandom/dependencies
@@ -0,0 +1 @@
+mount-rwfs
diff --git a/examples/source/init-urandom/down b/examples/source/init-urandom/down
new file mode 100644
index 0000000..6ea7e05
--- /dev/null
+++ b/examples/source/init-urandom/down
@@ -0,0 +1 @@
+rngseed -rw
diff --git a/examples/source/init-urandom/type b/examples/source/init-urandom/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-urandom/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-urandom/up b/examples/source/init-urandom/up
new file mode 100644
index 0000000..6ea7e05
--- /dev/null
+++ b/examples/source/init-urandom/up
@@ -0,0 +1 @@
+rngseed -rw
diff --git a/examples/source/init-wlan0/dependencies b/examples/source/init-wlan0/dependencies
index 2dcd031..28ba9d6 100644
--- a/examples/source/init-wlan0/dependencies
+++ b/examples/source/init-wlan0/dependencies
@@ -1 +1 @@
-ok-local
+init-iw
diff --git a/examples/source/init-wlan0/down b/examples/source/init-wlan0/down
index bb15015..e69de29 100644
--- a/examples/source/init-wlan0/down
+++ b/examples/source/init-wlan0/down
@@ -1 +0,0 @@
-modprobe -r ath9k
diff --git a/examples/source/init-wlan0/up b/examples/source/init-wlan0/up
index 1324c97..48205a2 100644
--- a/examples/source/init-wlan0/up
+++ b/examples/source/init-wlan0/up
@@ -1,5 +1 @@
-foreground { modprobe ath9k blink=1 }
-unexport ?
-if { iw reg set FR }
-importas -i WLAN0_IP4 WLAN0_IP4
-ifconfig wlan0 ${WLAN0_IP4} netmask 255.255.255.0
+modprobe ath9k blink=1
diff --git a/examples/source/init-wlan1/dependencies b/examples/source/init-wlan1/dependencies
new file mode 100644
index 0000000..e83855b
--- /dev/null
+++ b/examples/source/init-wlan1/dependencies
@@ -0,0 +1,2 @@
+init-iw
+init-wlan0
diff --git a/examples/source/dns-cache/data/root/ip/127.0.0.1 b/examples/source/init-wlan1/down
index e69de29..e69de29 100644
--- a/examples/source/dns-cache/data/root/ip/127.0.0.1
+++ b/examples/source/init-wlan1/down
diff --git a/examples/source/init-wlan1/type b/examples/source/init-wlan1/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/init-wlan1/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/init-wlan1/up b/examples/source/init-wlan1/up
new file mode 100644
index 0000000..f5bc4ec
--- /dev/null
+++ b/examples/source/init-wlan1/up
@@ -0,0 +1 @@
+modprobe ath9k_htc
diff --git a/examples/source/ip-wlan0/dependencies b/examples/source/ip-wlan0/dependencies
new file mode 100644
index 0000000..7a26ac4
--- /dev/null
+++ b/examples/source/ip-wlan0/dependencies
@@ -0,0 +1 @@
+hostapd-wlan0
diff --git a/examples/source/dns-cache/data/root/ip/192.168.0 b/examples/source/ip-wlan0/down
index e69de29..e69de29 100644
--- a/examples/source/dns-cache/data/root/ip/192.168.0
+++ b/examples/source/ip-wlan0/down
diff --git a/examples/source/ip-wlan0/type b/examples/source/ip-wlan0/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/ip-wlan0/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/ip-wlan0/up b/examples/source/ip-wlan0/up
new file mode 100644
index 0000000..e7627a0
--- /dev/null
+++ b/examples/source/ip-wlan0/up
@@ -0,0 +1,4 @@
+s6-envdir /etc/env-network
+importas -uSi WLAN0_IP4
+if { ip addr add ${WLAN0_IP4}/24 dev wlan0 }
+ip link set dev wlan0 up
diff --git a/examples/source/ip-wlan1/dependencies b/examples/source/ip-wlan1/dependencies
new file mode 100644
index 0000000..198b420
--- /dev/null
+++ b/examples/source/ip-wlan1/dependencies
@@ -0,0 +1 @@
+hostapd-wlan1
diff --git a/examples/source/dns-cache/data/root/ip/192.168.1 b/examples/source/ip-wlan1/down
index e69de29..e69de29 100644
--- a/examples/source/dns-cache/data/root/ip/192.168.1
+++ b/examples/source/ip-wlan1/down
diff --git a/examples/source/ip-wlan1/type b/examples/source/ip-wlan1/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/ip-wlan1/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/ip-wlan1/up b/examples/source/ip-wlan1/up
new file mode 100644
index 0000000..7513b05
--- /dev/null
+++ b/examples/source/ip-wlan1/up
@@ -0,0 +1,4 @@
+s6-envdir /etc/env-network
+importas -uSi WLAN1_IP4
+if { ip addr add ${WLAN1_IP4}/24 dev wlan1 }
+ip link set dev wlan1 up
diff --git a/examples/source/identd-4/dependencies b/examples/source/ircproxy-interlinked-4/dependencies
index 6daf05b..6daf05b 100644
--- a/examples/source/identd-4/dependencies
+++ b/examples/source/ircproxy-interlinked-4/dependencies
diff --git a/examples/source/smtpd-4-log/notification-fd b/examples/source/ircproxy-interlinked-4/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/smtpd-4-log/notification-fd
+++ b/examples/source/ircproxy-interlinked-4/notification-fd
diff --git a/examples/source/ircproxy-interlinked-4/producer-for b/examples/source/ircproxy-interlinked-4/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-4/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source/ircproxy-interlinked-4/run b/examples/source/ircproxy-interlinked-4/run
new file mode 100755
index 0000000..4c26bce
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -4 -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source/ircproxy-interlinked-4/type b/examples/source/ircproxy-interlinked-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-interlinked-6-bis/dependencies b/examples/source/ircproxy-interlinked-6-bis/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6-bis/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/smtpd-4/notification-fd b/examples/source/ircproxy-interlinked-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/smtpd-4/notification-fd
+++ b/examples/source/ircproxy-interlinked-6-bis/notification-fd
diff --git a/examples/source/ircproxy-interlinked-6-bis/producer-for b/examples/source/ircproxy-interlinked-6-bis/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source/ircproxy-interlinked-6-bis/run b/examples/source/ircproxy-interlinked-6-bis/run
new file mode 100755
index 0000000..03b63c3
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source/ircproxy-interlinked-6-bis/type b/examples/source/ircproxy-interlinked-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-interlinked-6/dependencies b/examples/source/ircproxy-interlinked-6/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/sshd-4-log/notification-fd b/examples/source/ircproxy-interlinked-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/sshd-4-log/notification-fd
+++ b/examples/source/ircproxy-interlinked-6/notification-fd
diff --git a/examples/source/ircproxy-interlinked-6/producer-for b/examples/source/ircproxy-interlinked-6/producer-for
new file mode 100644
index 0000000..8944c0d
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6/producer-for
@@ -0,0 +1 @@
+ircproxy-interlinked-log
diff --git a/examples/source/ircproxy-interlinked-6/run b/examples/source/ircproxy-interlinked-6/run
new file mode 100755
index 0000000..c3737bb
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1002
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc.interlinked.me. 6697
+s6-tlsc-io -k irc.interlinked.me -- 6 7
diff --git a/examples/source/ircproxy-interlinked-6/type b/examples/source/ircproxy-interlinked-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-interlinked-log/consumer-for b/examples/source/ircproxy-interlinked-log/consumer-for
new file mode 100644
index 0000000..a108cbf
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-log/consumer-for
@@ -0,0 +1,4 @@
+ircproxy-interlinked-4
+ircproxy-interlinked-6
+ircproxy-interlinked-6-bis
+
diff --git a/examples/source/ircproxy-interlinked-log/dependencies b/examples/source/ircproxy-interlinked-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/ircproxy-interlinked-log/pipeline-name b/examples/source/ircproxy-interlinked-log/pipeline-name
new file mode 100644
index 0000000..6805e1b
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-interlinked-pipeline
diff --git a/examples/source/ircproxy-interlinked-log/run b/examples/source/ircproxy-interlinked-log/run
new file mode 100755
index 0000000..3bb4e20
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-interlinked
diff --git a/examples/source/ircproxy-interlinked-log/type b/examples/source/ircproxy-interlinked-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-interlinked-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/init-eth3/dependencies b/examples/source/ircproxy-libera-4/dependencies
index 6daf05b..6daf05b 100644
--- a/examples/source/init-eth3/dependencies
+++ b/examples/source/ircproxy-libera-4/dependencies
diff --git a/examples/source/syslogd-log/notification-fd b/examples/source/ircproxy-libera-4/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/syslogd-log/notification-fd
+++ b/examples/source/ircproxy-libera-4/notification-fd
diff --git a/examples/source/ircproxy-libera-4/producer-for b/examples/source/ircproxy-libera-4/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source/ircproxy-libera-4/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source/ircproxy-libera-4/run b/examples/source/ircproxy-libera-4/run
new file mode 100755
index 0000000..234cd13
--- /dev/null
+++ b/examples/source/ircproxy-libera-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -4 -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source/ircproxy-libera-4/type b/examples/source/ircproxy-libera-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-libera-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-libera-6-bis/dependencies b/examples/source/ircproxy-libera-6-bis/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-libera-6-bis/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/syslogd-srv/notification-fd b/examples/source/ircproxy-libera-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/syslogd-srv/notification-fd
+++ b/examples/source/ircproxy-libera-6-bis/notification-fd
diff --git a/examples/source/ircproxy-libera-6-bis/producer-for b/examples/source/ircproxy-libera-6-bis/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source/ircproxy-libera-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source/ircproxy-libera-6-bis/run b/examples/source/ircproxy-libera-6-bis/run
new file mode 100755
index 0000000..540bf20
--- /dev/null
+++ b/examples/source/ircproxy-libera-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source/ircproxy-libera-6-bis/type b/examples/source/ircproxy-libera-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-libera-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-libera-6/dependencies b/examples/source/ircproxy-libera-6/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-libera-6/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/taiclockd-4-log/notification-fd b/examples/source/ircproxy-libera-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/taiclockd-4-log/notification-fd
+++ b/examples/source/ircproxy-libera-6/notification-fd
diff --git a/examples/source/ircproxy-libera-6/producer-for b/examples/source/ircproxy-libera-6/producer-for
new file mode 100644
index 0000000..acd38e6
--- /dev/null
+++ b/examples/source/ircproxy-libera-6/producer-for
@@ -0,0 +1 @@
+ircproxy-libera-log
diff --git a/examples/source/ircproxy-libera-6/run b/examples/source/ircproxy-libera-6/run
new file mode 100755
index 0000000..3cbe4f8
--- /dev/null
+++ b/examples/source/ircproxy-libera-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1001
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc.libera.chat. 6697
+s6-tlsc-io -k irc.libera.chat -- 6 7
diff --git a/examples/source/ircproxy-libera-6/type b/examples/source/ircproxy-libera-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-libera-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-libera-log/consumer-for b/examples/source/ircproxy-libera-log/consumer-for
new file mode 100644
index 0000000..3b77538
--- /dev/null
+++ b/examples/source/ircproxy-libera-log/consumer-for
@@ -0,0 +1,3 @@
+ircproxy-libera-4
+ircproxy-libera-6
+ircproxy-libera-6-bis
diff --git a/examples/source/ircproxy-libera-log/dependencies b/examples/source/ircproxy-libera-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/ircproxy-libera-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/ircproxy-libera-log/pipeline-name b/examples/source/ircproxy-libera-log/pipeline-name
new file mode 100644
index 0000000..a19186b
--- /dev/null
+++ b/examples/source/ircproxy-libera-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-libera-pipeline
diff --git a/examples/source/ircproxy-libera-log/run b/examples/source/ircproxy-libera-log/run
new file mode 100755
index 0000000..150091c
--- /dev/null
+++ b/examples/source/ircproxy-libera-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-libera
diff --git a/examples/source/ircproxy-libera-log/type b/examples/source/ircproxy-libera-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-libera-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/qmtpd-4/dependencies b/examples/source/ircproxy-oftc-4/dependencies
index 6daf05b..6daf05b 100644
--- a/examples/source/qmtpd-4/dependencies
+++ b/examples/source/ircproxy-oftc-4/dependencies
diff --git a/examples/source/udhcpc-eth3-log/notification-fd b/examples/source/ircproxy-oftc-4/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/udhcpc-eth3-log/notification-fd
+++ b/examples/source/ircproxy-oftc-4/notification-fd
diff --git a/examples/source/ircproxy-oftc-4/producer-for b/examples/source/ircproxy-oftc-4/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source/ircproxy-oftc-4/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source/ircproxy-oftc-4/run b/examples/source/ircproxy-oftc-4/run
new file mode 100755
index 0000000..671ec46
--- /dev/null
+++ b/examples/source/ircproxy-oftc-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -4 -v -l0 -- irc4.oftc.net. 6697
+s6-tlsc-io -k irc4.oftc.net -- 6 7
diff --git a/examples/source/ircproxy-oftc-4/type b/examples/source/ircproxy-oftc-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-oftc-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-oftc-6-bis/dependencies b/examples/source/ircproxy-oftc-6-bis/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6-bis/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/udhcpc-eth3/notification-fd b/examples/source/ircproxy-oftc-6-bis/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/udhcpc-eth3/notification-fd
+++ b/examples/source/ircproxy-oftc-6-bis/notification-fd
diff --git a/examples/source/ircproxy-oftc-6-bis/producer-for b/examples/source/ircproxy-oftc-6-bis/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6-bis/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source/ircproxy-oftc-6-bis/run b/examples/source/ircproxy-oftc-6-bis/run
new file mode 100755
index 0000000..e4d610d
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6-bis/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc6.oftc.net. 6697
+s6-tlsc-io -k irc6.oftc.net -- 6 7
diff --git a/examples/source/ircproxy-oftc-6-bis/type b/examples/source/ircproxy-oftc-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-oftc-6/dependencies b/examples/source/ircproxy-oftc-6/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/udhcpd-wlan0-log/notification-fd b/examples/source/ircproxy-oftc-6/notification-fd
index 00750ed..00750ed 100644
--- a/examples/source/udhcpd-wlan0-log/notification-fd
+++ b/examples/source/ircproxy-oftc-6/notification-fd
diff --git a/examples/source/ircproxy-oftc-6/producer-for b/examples/source/ircproxy-oftc-6/producer-for
new file mode 100644
index 0000000..91cba65
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6/producer-for
@@ -0,0 +1 @@
+ircproxy-oftc-log
diff --git a/examples/source/ircproxy-oftc-6/run b/examples/source/ircproxy-oftc-6/run
new file mode 100755
index 0000000..6aabfb2
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+s6-envuidgid irc
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 1000
+s6-tcpserver-access -DHl0 --
+s6-tcpclient -6 -v -l0 -- irc6.oftc.net. 6697
+s6-tlsc-io -k irc6.oftc.net -- 6 7
diff --git a/examples/source/ircproxy-oftc-6/type b/examples/source/ircproxy-oftc-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-oftc-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/ircproxy-oftc-log/consumer-for b/examples/source/ircproxy-oftc-log/consumer-for
new file mode 100644
index 0000000..05cac46
--- /dev/null
+++ b/examples/source/ircproxy-oftc-log/consumer-for
@@ -0,0 +1,3 @@
+ircproxy-oftc-4
+ircproxy-oftc-6
+ircproxy-oftc-6-bis
diff --git a/examples/source/ircproxy-oftc-log/dependencies b/examples/source/ircproxy-oftc-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/ircproxy-oftc-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/ircproxy-oftc-log/pipeline-name b/examples/source/ircproxy-oftc-log/pipeline-name
new file mode 100644
index 0000000..2f7d836
--- /dev/null
+++ b/examples/source/ircproxy-oftc-log/pipeline-name
@@ -0,0 +1 @@
+ircproxy-oftc-pipeline
diff --git a/examples/source/ircproxy-oftc-log/run b/examples/source/ircproxy-oftc-log/run
new file mode 100755
index 0000000..cc33a0d
--- /dev/null
+++ b/examples/source/ircproxy-oftc-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid irclog
+exec -c
+s6-log t s1000000 n20 /var/log/ircproxy-oftc
diff --git a/examples/source/ircproxy-oftc-log/type b/examples/source/ircproxy-oftc-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/ircproxy-oftc-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/klogd-log/consumer-for b/examples/source/klogd-log/consumer-for
index 3a77aac..fd64770 100644
--- a/examples/source/klogd-log/consumer-for
+++ b/examples/source/klogd-log/consumer-for
@@ -1 +1 @@
-klogd-srv
+klogd
diff --git a/examples/source/klogd-log/dependencies b/examples/source/klogd-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/klogd-log/dependencies
+++ b/examples/source/klogd-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/klogd-log/pipeline-name b/examples/source/klogd-log/pipeline-name
index fd64770..cb7ca7b 100644
--- a/examples/source/klogd-log/pipeline-name
+++ b/examples/source/klogd-log/pipeline-name
@@ -1 +1 @@
-klogd
+klogd-pipeline
diff --git a/examples/source/klogd-log/run b/examples/source/klogd-log/run
index d57e688..d9659e7 100755
--- a/examples/source/klogd-log/run
+++ b/examples/source/klogd-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid klog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/klogd
+s6-log t s1000000 n20 /var/log/klogd
diff --git a/examples/source/klogd-srv/dependencies b/examples/source/klogd/dependencies
index 0df58a3..0df58a3 100644
--- a/examples/source/klogd-srv/dependencies
+++ b/examples/source/klogd/dependencies
diff --git a/examples/source/klogd-srv/producer-for b/examples/source/klogd/producer-for
index 2f21a8f..2f21a8f 100644
--- a/examples/source/klogd-srv/producer-for
+++ b/examples/source/klogd/producer-for
diff --git a/examples/source/klogd-srv/run b/examples/source/klogd/run
index 453b55b..453b55b 100755
--- a/examples/source/klogd-srv/run
+++ b/examples/source/klogd/run
diff --git a/examples/source/klogd/type b/examples/source/klogd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/klogd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/mdevd/dependencies b/examples/source/mdevd/dependencies
index f23f767..f0f7224 100644
--- a/examples/source/mdevd/dependencies
+++ b/examples/source/mdevd/dependencies
@@ -1 +1,2 @@
init-devtmpfs
+mount-sys
diff --git a/examples/source/mdevd/run b/examples/source/mdevd/run
index 6de653a..1d4e4e3 100755..100644
--- a/examples/source/mdevd/run
+++ b/examples/source/mdevd/run
@@ -1,4 +1,3 @@
#!/command/execlineb -P
exec -c
-export PATH /command:/bin
-mdevd -D3 -O4
+mdevd -D 3 -b 200000
diff --git a/examples/source/mount-cgroups-base/dependencies b/examples/source/mount-cgroups-base/dependencies
new file mode 100644
index 0000000..11299c3
--- /dev/null
+++ b/examples/source/mount-cgroups-base/dependencies
@@ -0,0 +1 @@
+mount-sys
diff --git a/examples/source/mount-cgroups-base/down b/examples/source/mount-cgroups-base/down
new file mode 100644
index 0000000..60450a4
--- /dev/null
+++ b/examples/source/mount-cgroups-base/down
@@ -0,0 +1 @@
+s6-umount /sys/fs/cgroup
diff --git a/examples/source/mount-cgroups-base/type b/examples/source/mount-cgroups-base/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-cgroups-base/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-cgroups-base/up b/examples/source/mount-cgroups-base/up
new file mode 100644
index 0000000..a2f1dd8
--- /dev/null
+++ b/examples/source/mount-cgroups-base/up
@@ -0,0 +1,2 @@
+if { s6-mkdir -p -m 0755 /sys/fs/cgroup }
+s6-mount -wt tmpfs cgroup /sys/fs/cgroup
diff --git a/examples/source/mount-cgroups-sub/dependencies b/examples/source/mount-cgroups-sub/dependencies
new file mode 100644
index 0000000..b19d47d
--- /dev/null
+++ b/examples/source/mount-cgroups-sub/dependencies
@@ -0,0 +1 @@
+mount-cgroups-base
diff --git a/examples/source/mount-cgroups-sub/down b/examples/source/mount-cgroups-sub/down
new file mode 100644
index 0000000..5bd0e30
--- /dev/null
+++ b/examples/source/mount-cgroups-sub/down
@@ -0,0 +1,4 @@
+elglob -v -0 CGROUPS /sys/fs/cgroup/*
+forx -p i { ${CGROUPS} }
+importas -u i i
+s6-umount $i
diff --git a/examples/source/mount-cgroups-sub/type b/examples/source/mount-cgroups-sub/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/examples/source/mount-cgroups-sub/type
@@ -0,0 +1 @@
+oneshot
diff --git a/examples/source/mount-cgroups-sub/up b/examples/source/mount-cgroups-sub/up
new file mode 100644
index 0000000..5f7888d
--- /dev/null
+++ b/examples/source/mount-cgroups-sub/up
@@ -0,0 +1,10 @@
+redirfd -r 0 /proc/cgroups
+pipeline { s6-tail -n +2 }
+pipeline { s6-cut -d"\t" -f1 }
+pipeline { s6-grep -vF -- devices }
+forstdin -d"\n" -- i
+importas -u i i
+if { s6-mkdir -p /sys/fs/cgroup/${i} }
+foreground { s6-mount -t cgroup -o ${i} -- cgroup /sys/fs/cgroup/${i} }
+importas -u ? ?
+eltest $? -le 1
diff --git a/examples/source/mount-cgroups/contents b/examples/source/mount-cgroups/contents
new file mode 100644
index 0000000..f72ff6d
--- /dev/null
+++ b/examples/source/mount-cgroups/contents
@@ -0,0 +1,2 @@
+mount-cgroups-base
+mount-cgroups-sub
diff --git a/examples/source/mount-cgroups/dependencies b/examples/source/mount-cgroups/dependencies
deleted file mode 100644
index 0a09446..0000000
--- a/examples/source/mount-cgroups/dependencies
+++ /dev/null
@@ -1,2 +0,0 @@
-mount-sys
-mount-proc
diff --git a/examples/source/mount-cgroups/type b/examples/source/mount-cgroups/type
index bdd22a1..757b422 100644
--- a/examples/source/mount-cgroups/type
+++ b/examples/source/mount-cgroups/type
@@ -1 +1 @@
-oneshot
+bundle
diff --git a/examples/source/mount-cgroups/up b/examples/source/mount-cgroups/up
deleted file mode 100644
index 033176f..0000000
--- a/examples/source/mount-cgroups/up
+++ /dev/null
@@ -1,10 +0,0 @@
-if { mkdir -p -m 0755 /sys/fs/cgroup }
-if { s6-mount -wt tmpfs cgroup /sys/fs/cgroup }
-redirfd -r 0 /proc/cgroups
-pipeline { s6-tail -n +2 }
-pipeline { s6-cut -d"\t" -f1 }
-pipeline { s6-grep -vF -- devices }
-forstdin -d"\n" -- i
-importas -u i i
-if { s6-mkdir /sys/fs/cgroup/${i} }
-s6-mount -t cgroup -o ${i} -- cgroup /sys/fs/cgroup/${i}
diff --git a/examples/source/mount-proc/down b/examples/source/mount-proc/down
index e32aef4..57465e9 100644
--- a/examples/source/mount-proc/down
+++ b/examples/source/mount-proc/down
@@ -1,4 +1 @@
-# s6-linux-init needs /proc still mounted at shutdown time
-# (in order to read /proc/mounts, to know what order to unmount
-# all the disks in).
-# So, in this script we do nothing, we just leave /proc mounted.
+s6-umount /proc
diff --git a/examples/source/mount-rwfs/dependencies b/examples/source/mount-rwfs/dependencies
index 9bd14f7..3ec016a 100644
--- a/examples/source/mount-rwfs/dependencies
+++ b/examples/source/mount-rwfs/dependencies
@@ -1 +1,2 @@
init-diskconfig
+init-coldplug
diff --git a/examples/source/mount-rwfs/up b/examples/source/mount-rwfs/up
index 7a54cda..a1ae34b 100644
--- a/examples/source/mount-rwfs/up
+++ b/examples/source/mount-rwfs/up
@@ -1,3 +1,3 @@
s6-envdir -i /run/disk-devices
-importas -i rwfs rwfs
-s6-mount -wt ext4 -o barrier=0,nodev /dev/${rwfs} /mnt/rwfs
+importas -i rwfs_sinay rwfs_sinay
+s6-mount -wt ext4 -o barrier=0,nodev /dev/${rwfs_sinay} /mnt/rwfs
diff --git a/examples/source/mount-swap/dependencies b/examples/source/mount-swap/dependencies
index 9bd14f7..3ec016a 100644
--- a/examples/source/mount-swap/dependencies
+++ b/examples/source/mount-swap/dependencies
@@ -1 +1,2 @@
init-diskconfig
+init-coldplug
diff --git a/examples/source/mount-sync/dependencies b/examples/source/mount-sync/dependencies
index 9bd14f7..3ec016a 100644
--- a/examples/source/mount-sync/dependencies
+++ b/examples/source/mount-sync/dependencies
@@ -1 +1,2 @@
init-diskconfig
+init-coldplug
diff --git a/examples/source/mount-sync/down b/examples/source/mount-sync/down
index 1f0fdc1..dc2cc56 100644
--- a/examples/source/mount-sync/down
+++ b/examples/source/mount-sync/down
@@ -1 +1 @@
-s6-umount /mnt/syncfs
+s6-umount /mnt/syncdata
diff --git a/examples/source/mount-sync/up b/examples/source/mount-sync/up
index fb0bab0..cfb0bc6 100644
--- a/examples/source/mount-sync/up
+++ b/examples/source/mount-sync/up
@@ -1,3 +1,3 @@
s6-envdir -i /run/disk-devices
-importas -i syncfs syncfs
-s6-mount -wt ext4 -o barrier=0,sync,nodev,noexec,nosuid /dev/${syncfs} /mnt/syncfs
+importas -i syncdata_sinay syncdata_sinay
+s6-mount -wt ext4 -o barrier=0,sync,nodev,noexec,nosuid /dev/${syncdata_sinay} /mnt/syncdata
diff --git a/examples/source/ntpclient-log/dependencies b/examples/source/ntpclient-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/ntpclient-log/dependencies
+++ b/examples/source/ntpclient-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/ntpclient-log/run b/examples/source/ntpclient-log/run
index be212c9..8a70c74 100755
--- a/examples/source/ntpclient-log/run
+++ b/examples/source/ntpclient-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid ntplog
exec -c
-s6-log -d3 -- t /var/log/ntpclient
+s6-log t s1000000 n20 /var/log/ntpclient
diff --git a/examples/source/ntpclient/dependencies b/examples/source/ntpclient/dependencies
index 8b11827..be178b3 100644
--- a/examples/source/ntpclient/dependencies
+++ b/examples/source/ntpclient/dependencies
@@ -1,2 +1,2 @@
-wan
dns-cache
+init-clock
diff --git a/examples/source/ntpclient/notification-fd b/examples/source/ntpclient/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/ntpclient/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/ntpclient/run b/examples/source/ntpclient/run
index 238580c..8ded1c1 100755
--- a/examples/source/ntpclient/run
+++ b/examples/source/ntpclient/run
@@ -1,20 +1,56 @@
#!/command/execlineb -P
fdmove -c 2 1
-if
+
+
+# Get the IP addresses for some NTP servers.
+# Limit the DNS queries to 30 seconds: if the DNS is slower than
+# that, chances are the server isn't good for us anyway.
+# All the queries are parallelized, so it's fast.
+
+pipeline
+{
+ s6-setuidgid nobody
+ forx -p I { 0 1 2 }
+ importas -u I I
+ s6-dnsip4 -t 30000 -- ${I}.fr.pool.ntp.org
+}
+importas -u p1 !
+
+
+# Ask for a NTP exchange with the servers we get.
+# If the exchange can't be completed in 5 seconds, kill it.
+# All the queries are parallelized.
+
+pipeline
{
- pipeline
- {
- s6-setuidgid ntp
- backtick -n NTPSERVERIP
- {
- pipeline { s6-dnsip4 -t 16000 0.fr.pool.ntp.org }
- s6-head -n 1
- }
+ s6-setuidgid ntp
+ forstdin -p -d"\n" NTPSERVERIP
importas -u NTPSERVERIP NTPSERVERIP
- s6-sntpclock -v 2 $NTPSERVERIP
- }
- s6-clockadd -e 120000
+ s6-sntpclock -T 5000 ${NTPSERVERIP}
}
+importas -u p2 !
+
+
+# Take the first answer we get
+
+pipeline
+{
+ s6-setuidgid nobody
+ s6-head -Sc 12
+}
+importas -u p3 !
+
+
+# Update the system clock. Accept 10 minutes of discrepancy.
+
+if { s6-clockadd -e 600000 }
+
+
+# Success. Send a readiness notification, reap zombies,
+# and sleep for 4 hours.
+
s6-setuidgid nobody
+if { fdmove 1 3 s6-echo }
+wait { ${p1} ${p2} ${p3} }
s6-sleep 14400
diff --git a/examples/source/ok-all/contents b/examples/source/ok-all/contents
index 461a76e..b7ceef4 100644
--- a/examples/source/ok-all/contents
+++ b/examples/source/ok-all/contents
@@ -1,3 +1,4 @@
ok-local
ok-lan
+ok-ipv6
ok-wan
diff --git a/examples/source/ok-ipv6/contents b/examples/source/ok-ipv6/contents
new file mode 100644
index 0000000..3b72d03
--- /dev/null
+++ b/examples/source/ok-ipv6/contents
@@ -0,0 +1,4 @@
+udhcpc6-eth2-pipeline
+init-ipv6
+radvd-pipeline
+fck-livebox
diff --git a/examples/source/wan/type b/examples/source/ok-ipv6/type
index 757b422..757b422 100644
--- a/examples/source/wan/type
+++ b/examples/source/ok-ipv6/type
diff --git a/examples/source/ok-lan/contents b/examples/source/ok-lan/contents
index a3d9d8d..9d6344f 100644
--- a/examples/source/ok-lan/contents
+++ b/examples/source/ok-lan/contents
@@ -1,11 +1,15 @@
-dns-cache
-dns-server-tcp-4
-dns-server-udp
-httpd-4
-identd-4
-qmtpd-4
-smtpd-4
-sshd-4
-taiclockd-4
-hostapd
-udhcpd-wlan0
+dns-cache-pipeline
+dnsproxy6-tcp-pipeline
+dnsproxy6-udp-pipeline
+dns-server-tcp-pipeline
+dns-server-udp-pipeline
+httpd-pipeline
+sshd-pipeline
+taiclockd-pipeline
+udhcpd-eth0-pipeline
+wlan0-server
+wlan1-server
+ircproxy-oftc-pipeline
+ircproxy-libera-pipeline
+ircproxy-interlinked-pipeline
+smtpproxy-pipeline
diff --git a/examples/source/ok-local/contents b/examples/source/ok-local/contents
index 6001aa9..a2ae854 100644
--- a/examples/source/ok-local/contents
+++ b/examples/source/ok-local/contents
@@ -1,9 +1,10 @@
mdevd
syslogd
klogd
-fdholder
mount-disks
mount-cgroups
init-coldplug
init-sysctl
+init-urandom
+init-tmp
fifodir-cleanup
diff --git a/examples/source/ok-wan/contents b/examples/source/ok-wan/contents
index 15353b4..5949f59 100644
--- a/examples/source/ok-wan/contents
+++ b/examples/source/ok-wan/contents
@@ -1,3 +1,2 @@
-wan
-qmail
-ntpclient
+adslclient-pipeline
+ntpclient-pipeline
diff --git a/examples/source/qmail-log/consumer-for b/examples/source/qmail-log/consumer-for
deleted file mode 100644
index e9c4b1e..0000000
--- a/examples/source/qmail-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-qmail
diff --git a/examples/source/qmail-log/dependencies b/examples/source/qmail-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/qmail-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/qmail-log/pipeline-name b/examples/source/qmail-log/pipeline-name
deleted file mode 100644
index 2d4eee2..0000000
--- a/examples/source/qmail-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-qmail-pipeline
diff --git a/examples/source/qmail/dependencies b/examples/source/qmail/dependencies
deleted file mode 100644
index 5259798..0000000
--- a/examples/source/qmail/dependencies
+++ /dev/null
@@ -1,3 +0,0 @@
-mount-sync
-wan
-dns-cache
diff --git a/examples/source/qmail/producer-for b/examples/source/qmail/producer-for
deleted file mode 100644
index db09b5f..0000000
--- a/examples/source/qmail/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-qmail-log
diff --git a/examples/source/qmtpd-4-log/consumer-for b/examples/source/qmtpd-4-log/consumer-for
deleted file mode 100644
index bf4ce61..0000000
--- a/examples/source/qmtpd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-qmtpd-4
diff --git a/examples/source/qmtpd-4-log/dependencies b/examples/source/qmtpd-4-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/qmtpd-4-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/qmtpd-4-log/pipeline-name b/examples/source/qmtpd-4-log/pipeline-name
deleted file mode 100644
index 9bd7810..0000000
--- a/examples/source/qmtpd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-qmtpd-4-pipeline
diff --git a/examples/source/qmtpd-4-log/run b/examples/source/qmtpd-4-log/run
deleted file mode 100755
index 0a2e9e3..0000000
--- a/examples/source/qmtpd-4-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid qmaillog
-exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/qmtpd-4
diff --git a/examples/source/qmtpd-4/producer-for b/examples/source/qmtpd-4/producer-for
deleted file mode 100644
index fbc3153..0000000
--- a/examples/source/qmtpd-4/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-qmtpd-4-log
diff --git a/examples/source/qmtpd-4/run b/examples/source/qmtpd-4/run
deleted file mode 100755
index c18fc4d..0000000
--- a/examples/source/qmtpd-4/run
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envuidgid qmaild
-importas -ui ETH0_IP4 ETH0_IP4
-fdmove 1 3
-s6-tcpserver4 -v 1 -U -c 255 -1 -- ${ETH0_IP4} 209
-qmail-qmtpd
diff --git a/examples/source/radvd-log/consumer-for b/examples/source/radvd-log/consumer-for
new file mode 100644
index 0000000..238a034
--- /dev/null
+++ b/examples/source/radvd-log/consumer-for
@@ -0,0 +1 @@
+radvd
diff --git a/examples/source/radvd-log/dependencies b/examples/source/radvd-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/radvd-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/radvd-log/pipeline-name b/examples/source/radvd-log/pipeline-name
new file mode 100644
index 0000000..9b77f7d
--- /dev/null
+++ b/examples/source/radvd-log/pipeline-name
@@ -0,0 +1 @@
+radvd-pipeline
diff --git a/examples/source/radvd-log/run b/examples/source/radvd-log/run
new file mode 100755
index 0000000..35ee536
--- /dev/null
+++ b/examples/source/radvd-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid radvlog
+exec -c
+s6-log t s1000000 n20 /var/log/radvd
diff --git a/examples/source/radvd-log/type b/examples/source/radvd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/radvd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/radvd/dependencies b/examples/source/radvd/dependencies
new file mode 100644
index 0000000..ff6f15b
--- /dev/null
+++ b/examples/source/radvd/dependencies
@@ -0,0 +1,3 @@
+udhcpc6-eth2
+init-ipv6
+fck-livebox
diff --git a/examples/source/radvd/producer-for b/examples/source/radvd/producer-for
new file mode 100644
index 0000000..1b71c7f
--- /dev/null
+++ b/examples/source/radvd/producer-for
@@ -0,0 +1 @@
+radvd-log
diff --git a/examples/source/radvd/run b/examples/source/radvd/run
new file mode 100755
index 0000000..73e93c7
--- /dev/null
+++ b/examples/source/radvd/run
@@ -0,0 +1,3 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+radvd -n -m stderr -u radvd -p /var/run/radvd/radvd.pid
diff --git a/examples/source/radvd/type b/examples/source/radvd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/radvd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpd-4-log/consumer-for b/examples/source/smtpd-4-log/consumer-for
deleted file mode 100644
index bff8ca4..0000000
--- a/examples/source/smtpd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-smtpd-4
diff --git a/examples/source/smtpd-4-log/dependencies b/examples/source/smtpd-4-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/smtpd-4-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/smtpd-4-log/pipeline-name b/examples/source/smtpd-4-log/pipeline-name
deleted file mode 100644
index 8cf1070..0000000
--- a/examples/source/smtpd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-smtpd-4-pipeline
diff --git a/examples/source/smtpd-4-log/run b/examples/source/smtpd-4-log/run
deleted file mode 100755
index 74eefb3..0000000
--- a/examples/source/smtpd-4-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid qmaillog
-exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/smtpd-4
diff --git a/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow b/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/smtpd-4/data/rules/ip4/0.0.0.0_0/allow
+++ /dev/null
diff --git a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow b/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow
deleted file mode 100644
index e69de29..0000000
--- a/examples/source/smtpd-4/data/rules/ip4/192.168.0.0_24/allow
+++ /dev/null
diff --git a/examples/source/smtpd-4/dependencies b/examples/source/smtpd-4/dependencies
deleted file mode 100644
index a2eb12c..0000000
--- a/examples/source/smtpd-4/dependencies
+++ /dev/null
@@ -1,2 +0,0 @@
-init-lan
-mount-sync
diff --git a/examples/source/smtpd-4/producer-for b/examples/source/smtpd-4/producer-for
deleted file mode 100644
index c6fa24d..0000000
--- a/examples/source/smtpd-4/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-smtpd-4-log
diff --git a/examples/source/smtpd-4/run b/examples/source/smtpd-4/run
deleted file mode 100755
index 8c1b17c..0000000
--- a/examples/source/smtpd-4/run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envuidgid qmaild
-importas -ui ETH0_IP4 ETH0_IP4
-fdmove 1 3
-s6-tcpserver4 -v 2 -U -c 255 -1 -- ${ETH0_IP4} 25
-s6-tcpserver-access -v 2 -w -t 2000 -i data/rules --
-qmail-smtpd
diff --git a/examples/source/smtpproxy-4/dependencies b/examples/source/smtpproxy-4/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/smtpproxy-4/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/smtpproxy-4/notification-fd b/examples/source/smtpproxy-4/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/smtpproxy-4/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/smtpproxy-4/producer-for b/examples/source/smtpproxy-4/producer-for
new file mode 100644
index 0000000..00914a8
--- /dev/null
+++ b/examples/source/smtpproxy-4/producer-for
@@ -0,0 +1 @@
+smtpproxy-log
diff --git a/examples/source/smtpproxy-4/run b/examples/source/smtpproxy-4/run
new file mode 100755
index 0000000..f2e6c4a
--- /dev/null
+++ b/examples/source/smtpproxy-4/run
@@ -0,0 +1,12 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
+s6-envuidgid qmailr
+export CADIR /etc/ssl/ca/hashed
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP4} 25
+s6-tcpserver-access -DHl0 -x /etc/tcprules/smtpproxy.cdb --
+s6-tcpclient -4 -v -- alyss.skarnet.org. 26
+s6-tlsc-io -k skarnet.org -- 6 7
diff --git a/examples/source/smtpproxy-4/type b/examples/source/smtpproxy-4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpproxy-4/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpproxy-6-bis/dependencies b/examples/source/smtpproxy-6-bis/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/smtpproxy-6-bis/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/smtpproxy-6-bis/notification-fd b/examples/source/smtpproxy-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/smtpproxy-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/smtpproxy-6-bis/producer-for b/examples/source/smtpproxy-6-bis/producer-for
new file mode 100644
index 0000000..00914a8
--- /dev/null
+++ b/examples/source/smtpproxy-6-bis/producer-for
@@ -0,0 +1 @@
+smtpproxy-log
diff --git a/examples/source/smtpproxy-6-bis/run b/examples/source/smtpproxy-6-bis/run
new file mode 100755
index 0000000..bad76df
--- /dev/null
+++ b/examples/source/smtpproxy-6-bis/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+s6-envuidgid qmailr
+export CADIR /etc/ssl/ca/hashed
+importas -uSi ETH0_IP6_BIS
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6_BIS} 25
+s6-tcpserver-access -DHl0 -x /etc/tcprules/smtpproxy.cdb --
+s6-tcpclient -6 -v -- alyss.skarnet.org. 26
+s6-tlsc-io -k skarnet.org -- 6 7
diff --git a/examples/source/smtpproxy-6-bis/type b/examples/source/smtpproxy-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpproxy-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpproxy-6/dependencies b/examples/source/smtpproxy-6/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/smtpproxy-6/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/smtpproxy-6/notification-fd b/examples/source/smtpproxy-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/smtpproxy-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/smtpproxy-6/producer-for b/examples/source/smtpproxy-6/producer-for
new file mode 100644
index 0000000..00914a8
--- /dev/null
+++ b/examples/source/smtpproxy-6/producer-for
@@ -0,0 +1 @@
+smtpproxy-log
diff --git a/examples/source/smtpproxy-6/run b/examples/source/smtpproxy-6/run
new file mode 100755
index 0000000..3def55f
--- /dev/null
+++ b/examples/source/smtpproxy-6/run
@@ -0,0 +1,11 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+s6-envuidgid qmailr
+export CADIR /etc/ssl/ca/hashed
+importas -uSi ETH0_IP6
+fdmove 1 3
+s6-tcpserver -v -1 -U -c 255 -- ${ETH0_IP6} 25
+s6-tcpserver-access -DHl0 -x /etc/tcprules/smtpproxy.cdb --
+s6-tcpclient -6 -v -- alyss.skarnet.org. 26
+s6-tlsc-io -k skarnet.org -- 6 7
diff --git a/examples/source/smtpproxy-6/type b/examples/source/smtpproxy-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpproxy-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/smtpproxy-log/consumer-for b/examples/source/smtpproxy-log/consumer-for
new file mode 100644
index 0000000..6621fd5
--- /dev/null
+++ b/examples/source/smtpproxy-log/consumer-for
@@ -0,0 +1,3 @@
+smtpproxy-4
+smtpproxy-6
+smtpproxy-6-bis
diff --git a/examples/source/smtpproxy-log/dependencies b/examples/source/smtpproxy-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/smtpproxy-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/smtpproxy-log/pipeline-name b/examples/source/smtpproxy-log/pipeline-name
new file mode 100644
index 0000000..c779e5b
--- /dev/null
+++ b/examples/source/smtpproxy-log/pipeline-name
@@ -0,0 +1 @@
+smtpproxy-pipeline
diff --git a/examples/source/qmail-log/run b/examples/source/smtpproxy-log/run
index f9fa765..d2c3ce5 100755
--- a/examples/source/qmail-log/run
+++ b/examples/source/smtpproxy-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid qmaillog
exec -c
-s6-log -d3 -- t s16777216 n64 /var/log/qmail
+s6-log t s1000000 n20 /var/log/smtpproxy
diff --git a/examples/source/smtpproxy-log/type b/examples/source/smtpproxy-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/smtpproxy-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/sshd-4-log/consumer-for b/examples/source/sshd-4-log/consumer-for
deleted file mode 100644
index 7d1730e..0000000
--- a/examples/source/sshd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-sshd-4
diff --git a/examples/source/sshd-4-log/dependencies b/examples/source/sshd-4-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/sshd-4-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/sshd-4-log/pipeline-name b/examples/source/sshd-4-log/pipeline-name
deleted file mode 100644
index d46bed2..0000000
--- a/examples/source/sshd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-sshd-4-pipeline
diff --git a/examples/source/sshd-4/dependencies b/examples/source/sshd-4/dependencies
index 6daf05b..c7f2f31 100644
--- a/examples/source/sshd-4/dependencies
+++ b/examples/source/sshd-4/dependencies
@@ -1 +1,2 @@
init-lan
+init-urandom
diff --git a/examples/source/sshd-4/producer-for b/examples/source/sshd-4/producer-for
index f103f82..b8ef8c5 100644
--- a/examples/source/sshd-4/producer-for
+++ b/examples/source/sshd-4/producer-for
@@ -1 +1 @@
-sshd-4-log
+sshd-log
diff --git a/examples/source/sshd-4/run b/examples/source/sshd-4/run
index 810ace3..785bea2 100755
--- a/examples/source/sshd-4/run
+++ b/examples/source/sshd-4/run
@@ -1,7 +1,9 @@
#!/command/execlineb -P
fdmove -c 2 1
-importas -ui ETH0_IP4 ETH0_IP4
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP4
+emptyenv -p
fdmove 1 3
-s6-tcpserver4 -v 2 -1 -- ${ETH0_IP4} 22
-s6-tcpserver-access -v 2 -DRl0 -t 5000 -i data/rules --
-dropbear -i -K 60
+s6-tcpserver -v -1 -- ${ETH0_IP4} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source/sshd-6-bis/dependencies b/examples/source/sshd-6-bis/dependencies
new file mode 100644
index 0000000..f8ce65f
--- /dev/null
+++ b/examples/source/sshd-6-bis/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+init-urandom
diff --git a/examples/source/sshd-6-bis/notification-fd b/examples/source/sshd-6-bis/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/sshd-6-bis/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/sshd-6-bis/producer-for b/examples/source/sshd-6-bis/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/examples/source/sshd-6-bis/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/examples/source/sshd-6-bis/run b/examples/source/sshd-6-bis/run
new file mode 100755
index 0000000..33e215c
--- /dev/null
+++ b/examples/source/sshd-6-bis/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+emptyenv -p
+fdmove 1 3
+s6-tcpserver -v -1 -- ${ETH0_IP6_BIS} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source/sshd-6-bis/type b/examples/source/sshd-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/sshd-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/sshd-6/dependencies b/examples/source/sshd-6/dependencies
new file mode 100644
index 0000000..f8ce65f
--- /dev/null
+++ b/examples/source/sshd-6/dependencies
@@ -0,0 +1,2 @@
+init-ipv6
+init-urandom
diff --git a/examples/source/sshd-6/notification-fd b/examples/source/sshd-6/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/sshd-6/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/sshd-6/producer-for b/examples/source/sshd-6/producer-for
new file mode 100644
index 0000000..b8ef8c5
--- /dev/null
+++ b/examples/source/sshd-6/producer-for
@@ -0,0 +1 @@
+sshd-log
diff --git a/examples/source/sshd-6/run b/examples/source/sshd-6/run
new file mode 100755
index 0000000..ca315c0
--- /dev/null
+++ b/examples/source/sshd-6/run
@@ -0,0 +1,9 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+emptyenv -p
+fdmove 1 3
+s6-tcpserver -v -1 -- ${ETH0_IP6} 22
+s6-tcpserver-access -v2 -l0 -t 5000 -x /etc/tcprules/sshd.cdb --
+tinysshd -v /etc/tinyssh/keys
diff --git a/examples/source/sshd-6/type b/examples/source/sshd-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/sshd-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/sshd-log/consumer-for b/examples/source/sshd-log/consumer-for
new file mode 100644
index 0000000..53cea4a
--- /dev/null
+++ b/examples/source/sshd-log/consumer-for
@@ -0,0 +1,3 @@
+sshd-4
+sshd-6
+sshd-6-bis
diff --git a/examples/source/sshd-log/dependencies b/examples/source/sshd-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/sshd-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/sshd-log/pipeline-name b/examples/source/sshd-log/pipeline-name
new file mode 100644
index 0000000..f7797f8
--- /dev/null
+++ b/examples/source/sshd-log/pipeline-name
@@ -0,0 +1 @@
+sshd-pipeline
diff --git a/examples/source/sshd-4-log/run b/examples/source/sshd-log/run
index 8176595..d07f180 100755
--- a/examples/source/sshd-4-log/run
+++ b/examples/source/sshd-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid log
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/sshd-4
+s6-log t s1000000 n20 /var/log/sshd
diff --git a/examples/source/sshd-log/type b/examples/source/sshd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/sshd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/syslogd-log/consumer-for b/examples/source/syslogd-log/consumer-for
index 93c1661..96c5cc7 100644
--- a/examples/source/syslogd-log/consumer-for
+++ b/examples/source/syslogd-log/consumer-for
@@ -1 +1 @@
-syslogd-srv
+syslogd
diff --git a/examples/source/syslogd-log/dependencies b/examples/source/syslogd-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/syslogd-log/dependencies
+++ b/examples/source/syslogd-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/syslogd-log/pipeline-name b/examples/source/syslogd-log/pipeline-name
index 96c5cc7..c8a925a 100644
--- a/examples/source/syslogd-log/pipeline-name
+++ b/examples/source/syslogd-log/pipeline-name
@@ -1 +1 @@
-syslogd
+syslogd-pipeline
diff --git a/examples/source/syslogd-log/run b/examples/source/syslogd-log/run
index 9f456cb..2f62604 100755
--- a/examples/source/syslogd-log/run
+++ b/examples/source/syslogd-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid syslog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/syslogd
+s6-log t s1000000 n20 /var/log/syslogd
diff --git a/examples/source/syslogd-srv/dependencies b/examples/source/syslogd/dependencies
index f23f767..f23f767 100644
--- a/examples/source/syslogd-srv/dependencies
+++ b/examples/source/syslogd/dependencies
diff --git a/examples/source/syslogd/notification-fd b/examples/source/syslogd/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/syslogd/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/syslogd-srv/producer-for b/examples/source/syslogd/producer-for
index 75d14f5..75d14f5 100644
--- a/examples/source/syslogd-srv/producer-for
+++ b/examples/source/syslogd/producer-for
diff --git a/examples/source/syslogd-srv/run b/examples/source/syslogd/run
index 3a781ce..5fc28ce 100755
--- a/examples/source/syslogd-srv/run
+++ b/examples/source/syslogd/run
@@ -1,4 +1,5 @@
#!/command/execlineb -P
+emptyenv -p
s6-envuidgid nobody
s6-socklog -d3 -U -t3000
diff --git a/examples/source/syslogd/type b/examples/source/syslogd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/syslogd/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/taiclockd-4-log/consumer-for b/examples/source/taiclockd-4-log/consumer-for
deleted file mode 100644
index 7684875..0000000
--- a/examples/source/taiclockd-4-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-taiclockd-4
diff --git a/examples/source/taiclockd-4-log/dependencies b/examples/source/taiclockd-4-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/taiclockd-4-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/taiclockd-4-log/pipeline-name b/examples/source/taiclockd-4-log/pipeline-name
deleted file mode 100644
index b8ef1d0..0000000
--- a/examples/source/taiclockd-4-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-taiclockd-4-pipeline
diff --git a/examples/source/taiclockd-4/producer-for b/examples/source/taiclockd-4/producer-for
index 04d85c4..a98606b 100644
--- a/examples/source/taiclockd-4/producer-for
+++ b/examples/source/taiclockd-4/producer-for
@@ -1 +1 @@
-taiclockd-4-log
+taiclockd-log
diff --git a/examples/source/taiclockd-4/run b/examples/source/taiclockd-4/run
index 168eb9e..bad6d92 100755
--- a/examples/source/taiclockd-4/run
+++ b/examples/source/taiclockd-4/run
@@ -1,6 +1,6 @@
#!/command/execlineb -P
-
fdmove -c 2 1
s6-setuidgid tai
-importas -i ETH0_IP4 EHT0_IP4
+s6-envdir /etc/env-network
+importas -i ETH0_IP4 ETH0_IP4
s6-taiclockd -i ${ETH0_IP4}
diff --git a/examples/source/taiclockd-6-bis/dependencies b/examples/source/taiclockd-6-bis/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/taiclockd-6-bis/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/taiclockd-6-bis/producer-for b/examples/source/taiclockd-6-bis/producer-for
new file mode 100644
index 0000000..a98606b
--- /dev/null
+++ b/examples/source/taiclockd-6-bis/producer-for
@@ -0,0 +1 @@
+taiclockd-log
diff --git a/examples/source/taiclockd-6-bis/run b/examples/source/taiclockd-6-bis/run
new file mode 100755
index 0000000..f28dee1
--- /dev/null
+++ b/examples/source/taiclockd-6-bis/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-setuidgid tai
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6_BIS
+s6-taiclockd -i ${ETH0_IP6_BIS}
diff --git a/examples/source/taiclockd-6-bis/type b/examples/source/taiclockd-6-bis/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/taiclockd-6-bis/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/taiclockd-6/dependencies b/examples/source/taiclockd-6/dependencies
new file mode 100644
index 0000000..30e6466
--- /dev/null
+++ b/examples/source/taiclockd-6/dependencies
@@ -0,0 +1 @@
+init-ipv6
diff --git a/examples/source/taiclockd-6/producer-for b/examples/source/taiclockd-6/producer-for
new file mode 100644
index 0000000..a98606b
--- /dev/null
+++ b/examples/source/taiclockd-6/producer-for
@@ -0,0 +1 @@
+taiclockd-log
diff --git a/examples/source/taiclockd-6/run b/examples/source/taiclockd-6/run
new file mode 100755
index 0000000..392bae7
--- /dev/null
+++ b/examples/source/taiclockd-6/run
@@ -0,0 +1,6 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-setuidgid tai
+s6-envdir /etc/env-network
+importas -uSi ETH0_IP6
+s6-taiclockd -i ${ETH0_IP6}
diff --git a/examples/source/taiclockd-6/type b/examples/source/taiclockd-6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/taiclockd-6/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/taiclockd-log/consumer-for b/examples/source/taiclockd-log/consumer-for
new file mode 100644
index 0000000..9139ba4
--- /dev/null
+++ b/examples/source/taiclockd-log/consumer-for
@@ -0,0 +1,3 @@
+taiclockd-4
+taiclockd-6
+taiclockd-6-bis
diff --git a/examples/source/taiclockd-log/dependencies b/examples/source/taiclockd-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/taiclockd-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/taiclockd-log/pipeline-name b/examples/source/taiclockd-log/pipeline-name
new file mode 100644
index 0000000..23220d4
--- /dev/null
+++ b/examples/source/taiclockd-log/pipeline-name
@@ -0,0 +1 @@
+taiclockd-pipeline
diff --git a/examples/source/taiclockd-4-log/run b/examples/source/taiclockd-log/run
index 0d5d683..dc6d7f8 100755
--- a/examples/source/taiclockd-4-log/run
+++ b/examples/source/taiclockd-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid tailog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/taiclockd-4
+s6-log t s1000000 n20 /var/log/taiclockd
diff --git a/examples/source/taiclockd-log/type b/examples/source/taiclockd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/taiclockd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpc-eth3-log/consumer-for b/examples/source/udhcpc-eth3-log/consumer-for
deleted file mode 100644
index 6904444..0000000
--- a/examples/source/udhcpc-eth3-log/consumer-for
+++ /dev/null
@@ -1 +0,0 @@
-udhcpc-eth3
diff --git a/examples/source/udhcpc-eth3-log/dependencies b/examples/source/udhcpc-eth3-log/dependencies
deleted file mode 100644
index e1436e2..0000000
--- a/examples/source/udhcpc-eth3-log/dependencies
+++ /dev/null
@@ -1 +0,0 @@
-mount-sync
diff --git a/examples/source/udhcpc-eth3-log/pipeline-name b/examples/source/udhcpc-eth3-log/pipeline-name
deleted file mode 100644
index f8bcba7..0000000
--- a/examples/source/udhcpc-eth3-log/pipeline-name
+++ /dev/null
@@ -1 +0,0 @@
-udhcpc-eth3-pipeline
diff --git a/examples/source/udhcpc-eth3-log/run b/examples/source/udhcpc-eth3-log/run
deleted file mode 100755
index c3b3350..0000000
--- a/examples/source/udhcpc-eth3-log/run
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/command/execlineb -P
-s6-setuidgid log
-exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/udhcpc-eth3
diff --git a/examples/source/udhcpc-eth3/producer-for b/examples/source/udhcpc-eth3/producer-for
deleted file mode 100644
index 018297b..0000000
--- a/examples/source/udhcpc-eth3/producer-for
+++ /dev/null
@@ -1 +0,0 @@
-udhcpc-eth3-log
diff --git a/examples/source/udhcpc-eth3/run b/examples/source/udhcpc-eth3/run
deleted file mode 100755
index 9d9f6a5..0000000
--- a/examples/source/udhcpc-eth3/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/command/execlineb -P
-fdmove -c 2 1
-s6-envdir -I env
-importas -uD 1.2.3.4 IP IP
-udhcpc -f -C -i eth3 -x lease:86400 -r $IP -s /etc/udhcpc/udhcpc-script
diff --git a/examples/source/udhcpc6-eth2-log/consumer-for b/examples/source/udhcpc6-eth2-log/consumer-for
new file mode 100644
index 0000000..3e1f178
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/consumer-for
@@ -0,0 +1 @@
+udhcpc6-eth2
diff --git a/examples/source/udhcpc6-eth2-log/dependencies b/examples/source/udhcpc6-eth2-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/udhcpc6-eth2-log/notification-fd b/examples/source/udhcpc6-eth2-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/udhcpc6-eth2-log/pipeline-name b/examples/source/udhcpc6-eth2-log/pipeline-name
new file mode 100644
index 0000000..24329b7
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/pipeline-name
@@ -0,0 +1 @@
+udhcpc6-eth2-pipeline
diff --git a/examples/source/udhcpc6-eth2-log/run b/examples/source/udhcpc6-eth2-log/run
new file mode 100644
index 0000000..2fa3a92
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log -bd3 -- t n10 s1000000 /var/log/udhcpc6-eth2
diff --git a/examples/source/udhcpc6-eth2-log/type b/examples/source/udhcpc6-eth2-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpc6-eth2-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpc6-eth2/dependencies b/examples/source/udhcpc6-eth2/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/udhcpc6-eth2/notification-fd b/examples/source/udhcpc6-eth2/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/examples/source/udhcpc6-eth2/producer-for b/examples/source/udhcpc6-eth2/producer-for
new file mode 100644
index 0000000..250f720
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/producer-for
@@ -0,0 +1 @@
+udhcpc6-eth2-log
diff --git a/examples/source/udhcpc6-eth2/run b/examples/source/udhcpc6-eth2/run
new file mode 100644
index 0000000..7de0521
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -S0
+
+fdmove -c 2 1
+if { s6-mkdir -p instance }
+s6-svscan -d3 -C64 -L11 -- instance
diff --git a/examples/source/udhcpc6-eth2/template/finish b/examples/source/udhcpc6-eth2/template/finish
new file mode 100755
index 0000000..88e7171
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/template/finish
@@ -0,0 +1,3 @@
+#!/command/execlineb -S4
+
+/etc/udhcpc6/finish $3 $1 $2
diff --git a/examples/source/udhcpc6-eth2/template/notification-fd b/examples/source/udhcpc6-eth2/template/notification-fd
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/template/notification-fd
@@ -0,0 +1 @@
+5
diff --git a/examples/source/udhcpc6-eth2/template/run b/examples/source/udhcpc6-eth2/template/run
new file mode 100755
index 0000000..27e3221
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/template/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -S1
+fdmove -c 2 1
+emptyenv -p
+udhcpc6 -f -d -m -r no -A 600 -s /etc/udhcpc6/run-script -i eth2_$1
diff --git a/examples/source/udhcpc6-eth2/type b/examples/source/udhcpc6-eth2/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpc6-eth2/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-eth0-log/consumer-for b/examples/source/udhcpd-eth0-log/consumer-for
new file mode 100644
index 0000000..07ba9e6
--- /dev/null
+++ b/examples/source/udhcpd-eth0-log/consumer-for
@@ -0,0 +1 @@
+udhcpd-eth0
diff --git a/examples/source/udhcpd-eth0-log/dependencies b/examples/source/udhcpd-eth0-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/udhcpd-eth0-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/udhcpd-eth0-log/pipeline-name b/examples/source/udhcpd-eth0-log/pipeline-name
new file mode 100644
index 0000000..232bb74
--- /dev/null
+++ b/examples/source/udhcpd-eth0-log/pipeline-name
@@ -0,0 +1 @@
+udhcpd-eth0-pipeline
diff --git a/examples/source/udhcpd-eth0-log/run b/examples/source/udhcpd-eth0-log/run
new file mode 100755
index 0000000..21cb782
--- /dev/null
+++ b/examples/source/udhcpd-eth0-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid log
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-eth0
diff --git a/examples/source/udhcpd-eth0-log/type b/examples/source/udhcpd-eth0-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-eth0-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-eth0/dependencies b/examples/source/udhcpd-eth0/dependencies
new file mode 100644
index 0000000..6daf05b
--- /dev/null
+++ b/examples/source/udhcpd-eth0/dependencies
@@ -0,0 +1 @@
+init-lan
diff --git a/examples/source/udhcpd-eth0/producer-for b/examples/source/udhcpd-eth0/producer-for
new file mode 100644
index 0000000..ccf9f4b
--- /dev/null
+++ b/examples/source/udhcpd-eth0/producer-for
@@ -0,0 +1 @@
+udhcpd-eth0-log
diff --git a/examples/source/udhcpd-eth0/run b/examples/source/udhcpd-eth0/run
new file mode 100755
index 0000000..d075d18
--- /dev/null
+++ b/examples/source/udhcpd-eth0/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -ui ETH0_IP4 ETH0_IP4
+udhcpd -f -I ${ETH0_IP4} /etc/udhcpd-eth0.conf
diff --git a/examples/source/udhcpd-eth0/timeout-kill b/examples/source/udhcpd-eth0/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source/udhcpd-eth0/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source/udhcpd-eth0/type b/examples/source/udhcpd-eth0/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-eth0/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-wlan0-log/dependencies b/examples/source/udhcpd-wlan0-log/dependencies
index e1436e2..a8bb4f3 100644
--- a/examples/source/udhcpd-wlan0-log/dependencies
+++ b/examples/source/udhcpd-wlan0-log/dependencies
@@ -1 +1,2 @@
+mount-rwfs
mount-sync
diff --git a/examples/source/udhcpd-wlan0-log/run b/examples/source/udhcpd-wlan0-log/run
index 7a72920..5142145 100755
--- a/examples/source/udhcpd-wlan0-log/run
+++ b/examples/source/udhcpd-wlan0-log/run
@@ -1,4 +1,4 @@
#!/command/execlineb -P
s6-setuidgid wifilog
exec -c
-s6-log -d3 -- t s1000000 n20 /var/log/udhcpd-wlan0
+s6-log t s1000000 n20 /var/log/udhcpd-wlan0
diff --git a/examples/source/udhcpd-wlan0/dependencies b/examples/source/udhcpd-wlan0/dependencies
index 61f6a0f..53e6bec 100644
--- a/examples/source/udhcpd-wlan0/dependencies
+++ b/examples/source/udhcpd-wlan0/dependencies
@@ -1,2 +1 @@
-init-wlan0
-hostapd
+ip-wlan0
diff --git a/examples/source/udhcpd-wlan0/run b/examples/source/udhcpd-wlan0/run
index be40c60..3e0c3ac 100755
--- a/examples/source/udhcpd-wlan0/run
+++ b/examples/source/udhcpd-wlan0/run
@@ -1,4 +1,5 @@
#!/command/execlineb -P
fdmove -c 2 1
+s6-envdir /etc/env-network
importas -ui WLAN0_IP4 WLAN0_IP4
udhcpd -f -I ${WLAN0_IP4} /etc/udhcpd-wlan0.conf
diff --git a/examples/source/udhcpd-wlan0/timeout-kill b/examples/source/udhcpd-wlan0/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source/udhcpd-wlan0/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source/udhcpd-wlan1-log/consumer-for b/examples/source/udhcpd-wlan1-log/consumer-for
new file mode 100644
index 0000000..239352b
--- /dev/null
+++ b/examples/source/udhcpd-wlan1-log/consumer-for
@@ -0,0 +1 @@
+udhcpd-wlan1
diff --git a/examples/source/udhcpd-wlan1-log/dependencies b/examples/source/udhcpd-wlan1-log/dependencies
new file mode 100644
index 0000000..a8bb4f3
--- /dev/null
+++ b/examples/source/udhcpd-wlan1-log/dependencies
@@ -0,0 +1,2 @@
+mount-rwfs
+mount-sync
diff --git a/examples/source/udhcpd-wlan1-log/pipeline-name b/examples/source/udhcpd-wlan1-log/pipeline-name
new file mode 100644
index 0000000..e7e8731
--- /dev/null
+++ b/examples/source/udhcpd-wlan1-log/pipeline-name
@@ -0,0 +1 @@
+udhcpd-wlan1-pipeline
diff --git a/examples/source/udhcpd-wlan1-log/run b/examples/source/udhcpd-wlan1-log/run
new file mode 100755
index 0000000..1704464
--- /dev/null
+++ b/examples/source/udhcpd-wlan1-log/run
@@ -0,0 +1,4 @@
+#!/command/execlineb -P
+s6-setuidgid wifilog
+exec -c
+s6-log t s1000000 n20 /var/log/udhcpd-wlan1
diff --git a/examples/source/udhcpd-wlan1-log/type b/examples/source/udhcpd-wlan1-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-wlan1-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/udhcpd-wlan1/dependencies b/examples/source/udhcpd-wlan1/dependencies
new file mode 100644
index 0000000..a4315b4
--- /dev/null
+++ b/examples/source/udhcpd-wlan1/dependencies
@@ -0,0 +1 @@
+ip-wlan1
diff --git a/examples/source/udhcpd-wlan1/producer-for b/examples/source/udhcpd-wlan1/producer-for
new file mode 100644
index 0000000..d26f719
--- /dev/null
+++ b/examples/source/udhcpd-wlan1/producer-for
@@ -0,0 +1 @@
+udhcpd-wlan1-log
diff --git a/examples/source/udhcpd-wlan1/run b/examples/source/udhcpd-wlan1/run
new file mode 100755
index 0000000..7092d28
--- /dev/null
+++ b/examples/source/udhcpd-wlan1/run
@@ -0,0 +1,5 @@
+#!/command/execlineb -P
+fdmove -c 2 1
+s6-envdir /etc/env-network
+importas -ui WLAN1_IP4 WLAN1_IP4
+udhcpd -f -I ${WLAN1_IP4} /etc/udhcpd-wlan1.conf
diff --git a/examples/source/udhcpd-wlan1/timeout-kill b/examples/source/udhcpd-wlan1/timeout-kill
new file mode 100644
index 0000000..ccfc37a
--- /dev/null
+++ b/examples/source/udhcpd-wlan1/timeout-kill
@@ -0,0 +1 @@
+50000
diff --git a/examples/source/udhcpd-wlan1/type b/examples/source/udhcpd-wlan1/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/examples/source/udhcpd-wlan1/type
@@ -0,0 +1 @@
+longrun
diff --git a/examples/source/wan/contents b/examples/source/wan/contents
deleted file mode 100644
index 7f49f13..0000000
--- a/examples/source/wan/contents
+++ /dev/null
@@ -1,2 +0,0 @@
-init-eth3
-udhcpc-eth3
diff --git a/examples/source/wlan0-server/contents b/examples/source/wlan0-server/contents
new file mode 100644
index 0000000..c6542fd
--- /dev/null
+++ b/examples/source/wlan0-server/contents
@@ -0,0 +1,3 @@
+hostapd-wlan0-pipeline
+udhcpd-wlan0-pipeline
+ip-wlan0
diff --git a/examples/source/wlan0-server/type b/examples/source/wlan0-server/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/wlan0-server/type
@@ -0,0 +1 @@
+bundle
diff --git a/examples/source/wlan1-server/contents b/examples/source/wlan1-server/contents
new file mode 100644
index 0000000..015d950
--- /dev/null
+++ b/examples/source/wlan1-server/contents
@@ -0,0 +1,3 @@
+hostapd-wlan1-pipeline
+udhcpd-wlan1-pipeline
+ip-wlan1
diff --git a/examples/source/wlan1-server/type b/examples/source/wlan1-server/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/examples/source/wlan1-server/type
@@ -0,0 +1 @@
+bundle