summaryrefslogtreecommitdiffstats
path: root/modules/retiolum/bin/ipv6
diff options
context:
space:
mode:
authorFelix Richter <Felix.Richter@syntax-fehler.de>2011-05-27 15:36:20 +0200
committerFelix Richter <Felix.Richter@syntax-fehler.de>2011-05-27 15:44:43 +0200
commit402a70a9c1df350cf6911ec5b1372d7c1efdc6b4 (patch)
treedc4a28484e973190839c5ad58a9b5bbda4059c92 /modules/retiolum/bin/ipv6
parent58695662f2d4bebe53b2b3dd9974bac44b4b9ead (diff)
parent77355d28e804ace544f78674866f894bf96a7f89 (diff)
fixed penisland
Diffstat (limited to 'modules/retiolum/bin/ipv6')
-rwxr-xr-xmodules/retiolum/bin/ipv635
1 files changed, 35 insertions, 0 deletions
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