[PATCH 2/4] Add package fff-vpn

Robert Langhammer rlanghammer at web.de
Di Mai 3 21:24:57 CEST 2016


Signed-off-by: Robert Langhammer <rlanghammer at web.de>
---
 src/packages/fff/fff-vpn/Makefile               | 39 +++++++++++++++++++
 src/packages/fff/fff-vpn/files/usr/sbin/fff-vpn | 50 +++++++++++++++++++++++++
 src/packages/fff/fff/Makefile                   |  6 ++-
 3 files changed, 93 insertions(+), 2 deletions(-)
 create mode 100644 src/packages/fff/fff-vpn/Makefile
 create mode 100644 src/packages/fff/fff-vpn/files/usr/sbin/fff-vpn

diff --git a/src/packages/fff/fff-vpn/Makefile b/src/packages/fff/fff-vpn/Makefile
new file mode 100644
index 0000000..976375a
--- /dev/null
+++ b/src/packages/fff/fff-vpn/Makefile
@@ -0,0 +1,39 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fff-vpn
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/fff-vpn
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fff-vpn
+    SECTION:=base
+    CATEGORY:=Freifunk
+    TITLE:= Freifunk-Franken vpn
+    URL:=http://www.freifunk-franken.de
+endef
+
+define Package/fff-vpn/description
+    This selects the vpn-tunnel for the Freifunk Franken Firmware
+    When a Gateway announces a Broker, l2tp is preferred
+endef
+
+define Build/Prepare
+	echo "all: " > $(PKG_BUILD_DIR)/Makefile
+endef
+
+define Build/Configure
+	# nothing
+endef
+
+define Build/Compile
+	# nothing
+endef
+
+define Package/fff-vpn/install
+	$(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,fff-vpn))
diff --git a/src/packages/fff/fff-vpn/files/usr/sbin/fff-vpn b/src/packages/fff/fff-vpn/files/usr/sbin/fff-vpn
new file mode 100644
index 0000000..8ac62d1
--- /dev/null
+++ b/src/packages/fff/fff-vpn/files/usr/sbin/fff-vpn
@@ -0,0 +1,50 @@
+# sourced by faststart
+/etc/init.d/tunneldigger disable && sed -i '/tunneldigger disable/d' $0
+broker=no
+fastd=no
+count=0
+conf="/etc/config/tunneldigger"
+conftmp="/tmp/tunneldigger.conf.tmp"
+>$conftmp
+peers=$(ls /etc/fastd/fff/peers)
+
+for peer in $peers; do
+	ip=$(grep ipv4 /etc/fastd/fff/peers/$peer | cut -f2 -d "\"")
+	# ask gateway
+	vpn=$(wget http://$ip/vpn.txt -O - 2>/dev/null)
+	if [ "$vpn" = "l2tp" ]; then
+		broker=yes
+		#write l2tp config
+		fdport=$(greo ipv4 /etc/fastd/fff/peers/$peer | cut -f5 -d " " | tr -d \;)
+		brport=$((fdport + 10000))
+		echo "config broker
+	list address '$ip:$brport'
+	option uuid '_$hostname'
+	option interface 'l2tp$count'
+	option enabled '1'
+	option hook_script '/etc/tunneldigger.hook'
+		" >> $conftmp
+		count=$((count + 1))
+		#remove peer
+		rm /etc/fastd/fff/peers/$peer
+	else
+		fastd=yes
+	fi
+done
+
+if [ "$broker" = "yes" ]; then
+	if  !(diff $conftmp $conf &>/dev/null) ; then
+		#broker changed
+		/etc/init.d/tunneldigger stop
+		# remove pid-files
+		rm /var/run/tunneldigger* 2>/dev/null
+		#copy new config
+		cp $conftmp $conf
+	fi
+	/etc/init.d/tunneldigger start
+fi
+
+if [ "$fastd" = "no" ]; then
+	kill -TERM $(cat /var/run/fastd.$project.pid)
+	etxit
+fi
diff --git a/src/packages/fff/fff/Makefile b/src/packages/fff/fff/Makefile
index e709987..662b6d2 100644
--- a/src/packages/fff/fff/Makefile
+++ b/src/packages/fff/fff/Makefile
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff
 PKG_VERSION:=0.0.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fff
 
@@ -20,7 +20,9 @@ define Package/fff-base
              +fff-uradvd \
              +fff-batman-adv-legacy \
              +fff-fastd \
-             +fff-firewall
+             +fff-firewall \
+             +fff-tunneldigger \
+             +fff-vpn
 endef
 
 define Package/fff-base/description
-- 
2.1.4




Mehr Informationen über die Mailingliste franken-dev