[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