diff options
| author | root <root@flap> | 2014-05-06 10:00:33 -0400 |
|---|---|---|
| committer | root <root@flap> | 2014-05-06 10:00:33 -0400 |
| commit | 4d8016064edd5e5dc1d194ea5ec0fce4f07b8f2a (patch) | |
| tree | d8ecba8651604e51d6f887449641ac627844ae63 /ship/src/refresh-supers | |
| parent | f44c8529e6d04b557d93cc862599b956ed21f0de (diff) | |
| parent | d0367082a5c1296cefed641b4eda736b29a3ad69 (diff) | |
Merge branch 'master' of https://github.com/krebscode/painload
Diffstat (limited to 'ship/src/refresh-supers')
| -rw-r--r-- | ship/src/refresh-supers | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/ship/src/refresh-supers b/ship/src/refresh-supers new file mode 100644 index 00000000..6dc6e8ab --- /dev/null +++ b/ship/src/refresh-supers @@ -0,0 +1,35 @@ +#!/bin/sh +#@info +# usage: [DEBUG=1] [tincconf=/not/tinc/retiolum/tinc.conf] $0 +# This is the implementation of the proposal how to update tinc supernode +# connections + +#@include core +#@include retiolum + # using find_supernodes + # tinc_path + # netname + +#@strict +#@mainifyme + +refresh_supernode_keys + +max_connect_to=${max_connect_to:-5} +tincconf=${tincconf:-$tinc_path/$netname/tinc.conf} +tmp_tincconf=$(mktemp) +defer "rm -f $tmp_tincconf" + +sed '/^[ ]*ConnectTo/d' "$tincconf" > "$tmp_tincconf" + + +# TODO find_supernodes requires netcat +find_supernodes | cut -d\ -f 1 | shuf \ + | head -n "${max_connect_to}" \ + | xargs -n1 printf "ConnectTo=%s\n" >> "$tmp_tincconf" + +info "replacing old tinc.conf with one" +test "${DEBUG:-}" && diff "$tincconf" "$tmp_tincconf" +mv "$tmp_tincconf" "$tincconf" + +reload_tinc |
