summaryrefslogtreecommitdiffstats
path: root/ship/lib/retiolum
diff options
context:
space:
mode:
Diffstat (limited to 'ship/lib/retiolum')
-rw-r--r--ship/lib/retiolum72
1 files changed, 46 insertions, 26 deletions
diff --git a/ship/lib/retiolum b/ship/lib/retiolum
index 2a5c7338..1e55041c 100644
--- a/ship/lib/retiolum
+++ b/ship/lib/retiolum
@@ -1,38 +1,31 @@
#!/bin/sh
# retiolum host functions
#@include core
+#@include network
tinc_path=${tinc_path:-/etc/tinc}
netname=${netname:-retiolum}
hosts_dir=${hosts_dir:-$tinc_path/$netname/hosts}
+supernode_urls="http://euer.krebsco.de/retiolum/supernodes.tar.gz"
+reload_tinc(){
+ info "reloading tinc configuration"
+ pkill -HUP tincd || tinc -n $netname reload;
+}
-check_free_v4(){
- myipv4=${1-10.243.0.-1}
- v4num=${myipv4##*.}
- printf "Retard check: "
- if [ "$v4num" -gt 0 -a "$v4num" -lt "256" ];
- then
- info "No retard detected\n"
- cd $hosts_dir
- info "Check if ip is still free: "
- for i in `ls -1`; do
- if grep -q -e $myipv4\$ $i ;then
- warn "Host IP already taken by $i! "
- return 1
- fi
- done
- info "Passed\n"
- return 0
- else
- error "you are made of stupid. bailing out\n"
- return 1
- fi
- cd - >/dev/null
+refresh_supernode_keys(){
+ for url in $supernode_urls;do
+ info "Trying $url to retrieve supernodes"
+ if http_get "$url" \
+ | tar xvz -C $hosts_dir | xargs -n1 echo "refreshed:" ;then
+ info "refreshed supernode keys"
+ return 0
+ else
+ error "$url unusable for retrieving supernode host files"
+ fi
+ done && return 1
}
-find_active_nodes(){
- # TODO this function currently only supports a single address for a host
+find_supernodes(){
cd $hosts_dir
- # posix grep does not support [[:space:]]
set +f
for name in `
grep '^[ ]*Address[ ]*=' * |
@@ -54,8 +47,11 @@ find_active_nodes(){
wait
cd - >/dev/null
}
-find_supernodes(){
+
+find_active_nodes(){
+ # TODO this function currently only supports a single address for a host
cd $hosts_dir
+ # posix grep does not support [[:space:]]
set +f
for name in `
grep '^[ ]*Address[ ]*=' * |
@@ -77,3 +73,27 @@ find_supernodes(){
wait
cd - >/dev/null
}
+
+check_free_v4(){
+ myipv4=${1-10.243.0.-1}
+ v4num=${myipv4##*.}
+ printf "Retard check: "
+ if [ "$v4num" -gt 0 -a "$v4num" -lt "256" ];
+ then
+ info "No retard detected\n"
+ cd $hosts_dir
+ info "Check if ip is still free: "
+ for i in `ls -1`; do
+ if grep -q -e $myipv4\$ $i ;then
+ error "Host IP already taken by $i! "
+ return 1
+ fi
+ done
+ info "Passed\n"
+ return 0
+ else
+ error "you are made of stupid. bailing out\n"
+ return 1
+ fi
+ cd - >/dev/null
+}