[RFC PATCH v3 5/8] Added VPN Connectivity to previous added Hood-Management

Jan Kraus mayosemmel at googlemail.com
So Jun 12 14:17:24 CEST 2016


Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
---
 bsp/default/root_file_system/etc/rc.local          |  1 +
 .../fff/fff-fastd/files/usr/sbin/fastdstart        | 36 +++++++++++++++++-----
 src/packages/fff/fff-hoods/Makefile                |  2 +-
 .../fff/fff-hoods/files/usr/sbin/configurehood     |  5 +--
 4 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/bsp/default/root_file_system/etc/rc.local b/bsp/default/root_file_system/etc/rc.local
index c980d8e..171883d 100755
--- a/bsp/default/root_file_system/etc/rc.local
+++ b/bsp/default/root_file_system/etc/rc.local
@@ -4,6 +4,7 @@
 
 /usr/sbin/configurehood
 /usr/sbin/configurenetwork
+/usr/sbin/fastdstart
 
 touch /tmp/started
 
diff --git a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart b/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
index 611a3f8..8e494ff 100755
--- a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
+++ b/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
@@ -4,6 +4,7 @@ SERVER="no"
 #SERVERNAME="--servername--"
 
 . /etc/community.cfg
+. /usr/share/libubox/jshn.sh
 
 project="$VPN_PROJECT"
 
@@ -77,14 +78,33 @@ if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
 		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
+#   configure
+    rm -f /etc/fastd/$project/peers/*
+    hood="$(uci get system. at system[0].hood)"
+    json_load "$(cat /etc/hoods/$hood.hood)"
+    json_select vpn
+    local Index="1"
+    while json_select $Index > /dev/null
+    do
+        json_get_var protocol protocol
+        if [ "$protocol" == "fastd" ]
+        then
+            json_get_var servername name
+            echo "#name \"$servername\";" > /etc/fastd/$project/peers/$servername
+            json_get_var key key
+            echo "key \"$key\";" >> /etc/fastd/$project/peers/$servername
+            json_get_var address address
+            json_get_var port port
+            echo "remote ipv4 \"$address\" port $port;" >> /etc/fastd/$project/peers/$servername
+            echo "float yes;" >> /etc/fastd/$project/peers/$servername
+        else
+            echo "protocol $protocol is not supported by this script"
+            json_select ".."
+            continue
+        fi
+        json_select ".."
+        Index=$((Index+1))
+    done
 
 	#reload
 	kill -HUP $(cat /var/run/fastd.$project.pid)
diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile
index ac48760..b182485 100644
--- a/src/packages/fff/fff-hoods/Makefile
+++ b/src/packages/fff/fff-hoods/Makefile
@@ -13,7 +13,7 @@ define Package/fff-hoods
     CATEGORY:=Freifunk
     TITLE:= Freifunk-Franken hoods
     URL:=http://www.freifunk-franken.de
-    DEPENDS:=+mdns +fff-network
+    DEPENDS:=+mdns +fff-network +fff-fastd
 endef
 
 define Package/fff-hoods/description
diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index f401a94..ae69a3b 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -86,9 +86,10 @@ echo "Setting channel 2.4 Ghz: $channel2"
 echo "Setting mode 2.4 GHz: $mode2"
 echo "Setting mesh 2.4 GHz type: $type2"
 
-echo "Shutting down wifi"
-wifi down
+#echo "Shutting down wifi"
+#wifi down
 
+uci set system. at system[0].hood=$hood
 uci set wireless.radio0=wifi-device
 uci set wireless.radio0.type=mac80211
 uci set wireless.radio0.channel=$channel2
-- 
2.1.4



Mehr Informationen über die Mailingliste franken-dev