From dbb5bc1160f1d263db685f72117aafc20790b661 Mon Sep 17 00:00:00 2001
From: Bjoern Franke <bjo@nord-west.org>
Date: Mon, 24 Feb 2014 06:25:40 +0100
Subject: [PATCH] add minimalistic script for registering fastd-keys

---
 fastdreg/Makefile                             | 36 +++++++++++++++++++
 .../files/etc/hotplug.d/iface/50-fastdstart   |  5 +++
 fastdreg/files/etc/init.d/fastdreg            |  7 ++++
 fastdreg/files/lib/ffol/fastdreg/fastdreg.sh  | 19 ++++++++++
 4 files changed, 67 insertions(+)
 create mode 100644 fastdreg/Makefile
 create mode 100755 fastdreg/files/etc/hotplug.d/iface/50-fastdstart
 create mode 100755 fastdreg/files/etc/init.d/fastdreg
 create mode 100755 fastdreg/files/lib/ffol/fastdreg/fastdreg.sh

diff --git a/fastdreg/Makefile b/fastdreg/Makefile
new file mode 100644
index 0000000..d695cdc
--- /dev/null
+++ b/fastdreg/Makefile
@@ -0,0 +1,36 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ffol-fastdreg
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/ffol-fastdreg
+  SECTION:=fastd
+  CATEGORY:=Freifunk Oldenburg
+  TITLE:=Adds script which registers fastd-key
+  DEPENDS:=+gluon-mesh-vpn-fastd
+endef
+
+define Package/ffol-fastdreg/description
+	Adds script which registers fastd-key
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/ffol-fastdreg/install
+	$(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,fastdreg))
diff --git a/fastdreg/files/etc/hotplug.d/iface/50-fastdstart b/fastdreg/files/etc/hotplug.d/iface/50-fastdstart
new file mode 100755
index 0000000..27b4da0
--- /dev/null
+++ b/fastdreg/files/etc/hotplug.d/iface/50-fastdstart
@@ -0,0 +1,5 @@
+#!/bin/sh 
+[ "$ACTION" = "ifup" -a "$INTERFACE" = "wan" ] && {
+	sleep 3
+	/lib/ffol/fastdreg.sh
+}
diff --git a/fastdreg/files/etc/init.d/fastdreg b/fastdreg/files/etc/init.d/fastdreg
new file mode 100755
index 0000000..44c4f48
--- /dev/null
+++ b/fastdreg/files/etc/init.d/fastdreg
@@ -0,0 +1,7 @@
+#!/bin/sh 
+fastdenabled=$(uci get fastd.mesh_vpn.enabled)
+fastdregdone=$(uci get fastd.regdone)
+
+if [ $fastdenabled ] && [ ! $fastdregdone ]; then
+	/lib/ffol/fastdreg.sh
+fi
diff --git a/fastdreg/files/lib/ffol/fastdreg/fastdreg.sh b/fastdreg/files/lib/ffol/fastdreg/fastdreg.sh
new file mode 100755
index 0000000..845d326
--- /dev/null
+++ b/fastdreg/files/lib/ffol/fastdreg/fastdreg.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+. /lib/functions.sh
+
+keysrv="http://vpn.freifunk-ol.de"
+
+hostname=$(uci get system.@system[0].hostname)
+
+pubkey=$(/etc/init.d/fastd show_key mesh_vpn)
+
+regdone=$(uci get fastd.regdone)
+
+if [ -z $regdone ]; then
+
+        reg=$(wget -T15 "$keysrv/reg.php?name=$hostname&key=$pubkey" -O -)
+        if [ "$reg" == "regdone" ]; then
+                uci set fastd.regdone=1
+        fi
+
+fi
-- 
GitLab