summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rwxr-xr-xmodules/retiolum/bin/addipv619
-rwxr-xr-xmodules/retiolum/bin/ipv635
-rwxr-xr-xmodules/retiolum/bin/tinc18
3 files changed, 53 insertions, 19 deletions
diff --git a/modules/retiolum/bin/addipv6 b/modules/retiolum/bin/addipv6
deleted file mode 100755
index da82e0d1..00000000
--- a/modules/retiolum/bin/addipv6
+++ /dev/null
@@ -1,19 +0,0 @@
-#! /bin/sh
-#
-# Add IPv6 to the retiolum interface.
-#
-# usage: addipv6
-#
-set -euf
-
-file=/etc/tinc/retiolum/hosts/`hostname`
-addr=`sed -rn 's|^Subnet *= *(42:[0-9A-Fa-f:]*/128)|\1|p' $file`
-
-if test `id -u` != 0; then
- echo "we're going sudo..." >&2
- exec sudo "$0" "$@"
- exit 23 # go to hell
-fi
-
-ip -6 addr add $addr dev retiolum
-ip -6 route add 42::/16 dev retiolum
diff --git a/modules/retiolum/bin/ipv6 b/modules/retiolum/bin/ipv6
new file mode 100755
index 00000000..65a1eaa1
--- /dev/null
+++ b/modules/retiolum/bin/ipv6
@@ -0,0 +1,35 @@
+#! /bin/sh
+#
+# Manage IPv6 of the retiolum interface.
+#
+# usage: ipv6 {start,stop}
+#
+set -euf
+
+if test `id -u` != 0; then
+ echo "we're going sudo..." >&2
+ exec sudo "$0" "$@"
+ exit 23 # go to hell
+fi
+
+file=/etc/tinc/retiolum/hosts/`hostname`
+addr=`sed -rn 's|^Subnet *= *(42:[0-9A-Fa-f:]*/128)|\1|p' $file`
+route=42::/16
+
+start() {
+ stop
+ ip -6 addr add $addr dev retiolum
+ ip -6 route add $route dev retiolum
+}
+
+stop() {
+ ip -6 addr del $addr dev retiolum 2>/dev/null || :
+ ip -6 route del $route dev retiolum 2>/dev/null || :
+}
+
+## dispatch
+case "$1" in
+ (start) start;;
+ (stop) stop;;
+ (*) echo "You're made of stupid" 2>/dev/null; exit 23;;
+esac
diff --git a/modules/retiolum/bin/tinc b/modules/retiolum/bin/tinc
new file mode 100755
index 00000000..ffa1dbee
--- /dev/null
+++ b/modules/retiolum/bin/tinc
@@ -0,0 +1,18 @@
+#! /bin/sh
+#
+set -euf
+
+init() {
+ f=/tmp/retiolum.GraphDumpFile
+ if ! test -f $f; then
+ touch $f &&
+ chown -v tincd: $f
+ fi
+
+ modprobe -v tun
+}
+
+if init; then
+ exec tincd --user=tincd --net=retiolum "$@"
+fi
+