[PATCH 1/4] fff-fastd: remove fastdstart and add some uci-defaults
Robert Langhammer
rlanghammer at web.de
So Jun 26 23:23:11 CEST 2016
Signed-off-by: Robert Langhammer <rlanghammer at web.de>
---
.../files/etc/hotplug.d/iface/50-fastdstart | 5 --
.../fff-fastd/files/etc/uci-defaults/55_fff-fastd | 28 +++++++
.../fff/fff-fastd/files/usr/lib/micron.d/fff-fastd | 1 -
.../fff/fff-fastd/files/usr/sbin/fastdstart | 97 ----------------------
4 files changed, 28 insertions(+), 103 deletions(-)
delete mode 100755 src/packages/fff/fff-fastd/files/etc/hotplug.d/iface/50-fastdstart
create mode 100644 src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
delete mode 100644 src/packages/fff/fff-fastd/files/usr/lib/micron.d/fff-fastd
delete mode 100755 src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
diff --git a/src/packages/fff/fff-fastd/files/etc/hotplug.d/iface/50-fastdstart b/src/packages/fff/fff-fastd/files/etc/hotplug.d/iface/50-fastdstart
deleted file mode 100755
index 7e7b27d..0000000
--- a/src/packages/fff/fff-fastd/files/etc/hotplug.d/iface/50-fastdstart
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
- sleep 3
- /usr/sbin/fastdstart
-}
diff --git a/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd b/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
new file mode 100644
index 0000000..8ce8425
--- /dev/null
+++ b/src/packages/fff/fff-fastd/files/etc/uci-defaults/55_fff-fastd
@@ -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
diff --git a/src/packages/fff/fff-fastd/files/usr/lib/micron.d/fff-fastd b/src/packages/fff/fff-fastd/files/usr/lib/micron.d/fff-fastd
deleted file mode 100644
index b0022e8..0000000
--- a/src/packages/fff/fff-fastd/files/usr/lib/micron.d/fff-fastd
+++ /dev/null
@@ -1 +0,0 @@
-*/5 * * * * sleep $(/usr/bin/random 0 29); sh /usr/sbin/fastdstart
diff --git a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart b/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
deleted file mode 100755
index 611a3f8..0000000
--- a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
+++ /dev/null
@@ -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. at system[0].latitude)
- long=$(uci get system. at 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
--
2.8.0.rc3
Mehr Informationen über die Mailingliste franken-dev