summaryrefslogtreecommitdiffstats
path: root/modules/retiolum
diff options
context:
space:
mode:
Diffstat (limited to 'modules/retiolum')
-rwxr-xr-xmodules/retiolum/bin/addipv619
-rwxr-xr-xmodules/retiolum/bin/ipv635
-rwxr-xr-xmodules/retiolum/bin/tinc18
-rwxr-xr-xmodules/retiolum/scripts/tinc_setup/install.sh6
-rw-r--r--modules/retiolum/scripts/tinc_setup/write_channel.py9
5 files changed, 62 insertions, 25 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
+
diff --git a/modules/retiolum/scripts/tinc_setup/install.sh b/modules/retiolum/scripts/tinc_setup/install.sh
index b7679041..8834aafc 100755
--- a/modules/retiolum/scripts/tinc_setup/install.sh
+++ b/modules/retiolum/scripts/tinc_setup/install.sh
@@ -2,13 +2,11 @@
# USE WITH GREAT CAUTION
make -C ../../ update
-
set -e
-
CURR=`pwd`
MYBIN=../../bin
-netname=penisland
+netname=retiolum
# create configuration directory for $netname
mkdir -p /etc/tinc/$netname/hosts
cd /etc/tinc/$netname
@@ -50,7 +48,7 @@ else
fi
-myipv6=${myipv6:-`sed -rn 's|^Subnet *= *(42:[0-9A-Fa-f:]*/128)|\1|p' /etc/tinc/$netname/hosts/$myname`}
+myipv6=${myipv6-`sed -rn 's|^Subnet *= *(42:[0-9A-Fa-f:]*/128)|\1|p' /etc/tinc/$netname/hosts/$myname`}
cat>tinc-up<<EOF
#! /bin/sh
diff --git a/modules/retiolum/scripts/tinc_setup/write_channel.py b/modules/retiolum/scripts/tinc_setup/write_channel.py
index 71866a8d..a11d4605 100644
--- a/modules/retiolum/scripts/tinc_setup/write_channel.py
+++ b/modules/retiolum/scripts/tinc_setup/write_channel.py
@@ -1,11 +1,16 @@
#!/usr/bin/python
import random, sys, time, socket
+try:
+ myname=sys.argv[1]
+except:
+ print "you are made of stupid"
+ exit (23)
CHANNEL = '#tincspasm'
HOST='irc.freenode.net'
-FILE="/etc/tinc/retiolum/hosts/$myname"
+FILE="/etc/tinc/retiolum/hosts/"+myname
PORT=6667
-NICK= "${myname}_"+str(random.randint(23,666))
+NICK= myname+"_"+str(random.randint(23,666))
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((HOST,PORT))