forked from freifunk-franken/firmware
fff-fastd: remove fastdstart and add some uci-defaults
Signed-off-by: Robert Langhammer <rlanghammer@web.de> Reviewed-by: Jan Kraus <mayosemmel@gmail.com> Reviewed-by: Christian Dresel <fff@chrisi01.de> Tested-by: Christian Dresel <fff@chrisi01.de> Tested-by: Jan Kraus <mayosemmel@gmail.com>
This commit is contained in:
parent
7f61381272
commit
1243394e6d
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
|
|
||||||
sleep 3
|
|
||||||
/usr/sbin/fastdstart
|
|
||||||
}
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/etc/init.d/fastd disable
|
||||||
|
|
||||||
|
. /etc/community.cfg
|
||||||
|
project="$VPN_PROJECT"
|
||||||
|
|
||||||
|
>/etc/config/fastd
|
||||||
|
|
||||||
|
uci batch <<EOF
|
||||||
|
set fastd.${project}='fastd'
|
||||||
|
set fastd.${project}.enabled='1'
|
||||||
|
set fastd.${project}.config_peer_dir="/etc/fastd/${project}/peers"
|
||||||
|
set fastd.${project}.syslog_level='warn'
|
||||||
|
set fastd.${project}.method='null'
|
||||||
|
set fastd.${project}.mode='tap'
|
||||||
|
set fastd.${project}.interface="${project}VPN"
|
||||||
|
set fastd.${project}.mtu='1426'
|
||||||
|
set fastd.${project}.on_up="/etc/fastd/${project}/up.sh"
|
||||||
|
set fastd.${project}.secure_handshakes='0'
|
||||||
|
set fastd.${project}.secret="generate"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
[ ! -d /etc/fastd/${project} ] && mkdir -p /etc/fastd/${project}
|
||||||
|
ln -s /tmp/fastd_${project}_peers /etc/fastd/${project}/peers
|
||||||
|
echo "#!/bin/sh" > /etc/fastd/${project}/up.sh
|
||||||
|
echo "ip link set up dev ${project}VPN" >> /etc/fastd/${project}/up.sh
|
||||||
|
echo "echo enable > /sys/devices/virtual/net/${project}VPN/batman_adv/no_rebroadcast" >> /etc/fastd/${project}/up.sh
|
||||||
|
echo "batctl if add ${project}VPN" >> /etc/fastd/${project}/up.sh
|
||||||
|
chmod +x /etc/fastd/${project}/up.sh
|
|
@ -1 +0,0 @@
|
||||||
*/5 * * * * sleep $(/usr/bin/random 0 29); sh /usr/sbin/fastdstart
|
|
|
@ -1,97 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
SERVER="no"
|
|
||||||
#SERVERNAME="--servername--"
|
|
||||||
|
|
||||||
. /etc/community.cfg
|
|
||||||
|
|
||||||
project="$VPN_PROJECT"
|
|
||||||
|
|
||||||
test_ipv4_host1="keyserver.freifunk-franken.de" # Freifunk-Franken keyserver
|
|
||||||
test_ipv4_host2="8.8.8.8" # Google DNS
|
|
||||||
test_ipv6_host1="heise.de" # heise Zeitschriftenverlag
|
|
||||||
|
|
||||||
if [ "$SERVER" = "no" ]; then
|
|
||||||
test -f /tmp/started || exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Only do something with fastd when the router has internet connection
|
|
||||||
if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
|
|
||||||
ping -w5 -c3 "$test_ipv4_host2" &>/dev/null ||
|
|
||||||
ping6 -w5 -c3 "$test_ipv6_host1" &>/dev/null; then
|
|
||||||
mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null)
|
|
||||||
if [ "$SERVER" = "no" ]; then
|
|
||||||
hostname=$(cat /proc/sys/kernel/hostname)
|
|
||||||
|
|
||||||
if [ "$hostname" = "OpenWrt" ]; then
|
|
||||||
hostname=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostname" = "" ]; then
|
|
||||||
hostname=$mac
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
hostname=$SERVERNAME
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /etc/fastd ]; then
|
|
||||||
mkdir /etc/fastd
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /etc/fastd/$project ]; then
|
|
||||||
mkdir /etc/fastd/$project
|
|
||||||
|
|
||||||
mkdir /tmp/fastd_${project}_peers
|
|
||||||
ln -s /tmp/fastd_${project}_peers /etc/fastd/$project/peers
|
|
||||||
echo "#!/bin/sh" > /etc/fastd/$project/up.sh
|
|
||||||
echo "ip link set up dev ${project}VPN" >> /etc/fastd/$project/up.sh
|
|
||||||
echo "echo enable > /sys/devices/virtual/net/${project}VPN/batman_adv/no_rebroadcast" >> /etc/fastd/$project/up.sh
|
|
||||||
echo "batctl if add ${project}VPN" >> /etc/fastd/$project/up.sh
|
|
||||||
chmod +x /etc/fastd/$project/up.sh
|
|
||||||
|
|
||||||
secret=$(fastd --generate-key 2>&1 | grep -i secret | awk '{ print $2 }')
|
|
||||||
echo "include peers from \"/etc/fastd/$project/peers\";" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "log to syslog level warn;" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "method \"null\";" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
# http://lists.nord-west.net/pipermail/freifunk-ol-dev/2013-July/000322.html
|
|
||||||
# echo "bind 0.0.0.0:10000;" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "interface \"${project}VPN\";" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "mtu 1426;" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "secret \"$secret\";" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "on up \"/etc/fastd/${project}/up.sh\";" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
echo "secure handshakes no;" >> /etc/fastd/${project}/${project}.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /tmp/fastd_${project}_peers ]; then
|
|
||||||
mkdir /tmp/fastd_${project}_peers
|
|
||||||
fi
|
|
||||||
|
|
||||||
pubkey=$(fastd -c /etc/fastd/$project/$project.conf --show-key --machine-readable)
|
|
||||||
# port=666
|
|
||||||
lat=$(uci get system.@system[0].latitude)
|
|
||||||
long=$(uci get system.@system[0].longitude)
|
|
||||||
|
|
||||||
# fire up
|
|
||||||
if [ "$(/sbin/ifconfig -a | grep -i ethernet | grep $project)" = "" ]; then
|
|
||||||
/bin/rm /var/run/fastd.$project.pid
|
|
||||||
fastd -c /etc/fastd/$project/$project.conf -d --pid-file /var/run/fastd.$project.pid
|
|
||||||
fi
|
|
||||||
|
|
||||||
# register
|
|
||||||
wget -T15 "http://keyserver.freifunk-franken.de/${project}/geo.php?mac=$mac&name=$hostname&port=$port&key=$pubkey&lat=$lat&long=$long" -O /tmp/fastd_${project}_output
|
|
||||||
|
|
||||||
filenames=$(awk '/^####/ { gsub(/^####/, "", $0); gsub(/.conf/, "", $0); print $0; }' /tmp/fastd_${project}_output)
|
|
||||||
for file in $filenames; do
|
|
||||||
awk "{ if(a) print }; /^####$file.conf$/{a=1}; /^$/{a=0};" /tmp/fastd_${project}_output | sed 's/ float;/;/g' > /etc/fastd/$project/peers/$file
|
|
||||||
echo 'float yes;' >> /etc/fastd/$project/peers/$file
|
|
||||||
done
|
|
||||||
|
|
||||||
#reload
|
|
||||||
kill -HUP $(cat /var/run/fastd.$project.pid)
|
|
||||||
else
|
|
||||||
echo "Der Router kann keine Verbindung zum Fastdserver aufbauen"
|
|
||||||
echo "$0 macht nichts!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
# vim: noexpandtab
|
|
Loading…
Reference in New Issue