From 6ebb5b8ab9670d29966b855f7a2b0f58386573df Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 11:05:37 +0200 Subject: [PATCH 01/63] Preliminary version of tunneldigger OpenWrt package. --- package/tunneldigger/Makefile | 38 ++++++++++++++++++++ package/tunneldigger/files/config.default | 6 ++++ package/tunneldigger/files/iface_setup.sh | 4 +++ package/tunneldigger/files/tunneldigger.init | 28 +++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 package/tunneldigger/Makefile create mode 100644 package/tunneldigger/files/config.default create mode 100644 package/tunneldigger/files/iface_setup.sh create mode 100644 package/tunneldigger/files/tunneldigger.init diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile new file mode 100644 index 00000000..5b0967f5 --- /dev/null +++ b/package/tunneldigger/Makefile @@ -0,0 +1,38 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=tunneldigger +PKG_VERSION:=0.1 +PKG_RELEASE:=1 +PKG_REV:=HEAD + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git +PKG_SOURCE_PROTO:=git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=$(PKG_REV) + +include $(INCLUDE_DIR)/package.mk + +define Package/tunneldigger + SECTION:=net + CATEGORY:=Network + DEPENDS:=libnl-tiny + TITLE:=L2TPv3 tunnel broker client +endef + +define Build/Prepare + $(call Build/Prepare/Default) + mv $(PKG_BUILD_DIR)/client/* $(PKG_BUILD_DIR) + sed -i s/-lnl /-lnl-tiny /g $(PKG_BUILD_DIR)/Makefile +endef + +define Package/tunneldigger/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/l2tp_client $(1)/usr/bin/tunneldigger + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/tunneldigger.init $(1)/etc/init.d/tunneldigger + $(INSTALL_DIR) $(1)/lib/tunneldigger + $(INSTALL_BIN) ./files/iface_setup.sh $(1)/lib/tunneldigger/iface_setup.sh +endef + +$(eval $(call BuildPackage,tunneldigger)) diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default new file mode 100644 index 00000000..b1a3175b --- /dev/null +++ b/package/tunneldigger/files/config.default @@ -0,0 +1,6 @@ +config broker + option address 'x.y.z.w' + option port 53 + option uuid 'abcd' + option interface 'l2tp0' + diff --git a/package/tunneldigger/files/iface_setup.sh b/package/tunneldigger/files/iface_setup.sh new file mode 100644 index 00000000..ef040c58 --- /dev/null +++ b/package/tunneldigger/files/iface_setup.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# Call the hotplug network interface setup script so our new L2TPv3 tunnel +# interface gets configured with required addresses +ACTION="add" INTERFACE="$1" /sbin/hotplug-call net diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init new file mode 100644 index 00000000..deb35306 --- /dev/null +++ b/package/tunneldigger/files/tunneldigger.init @@ -0,0 +1,28 @@ +#!/bin/sh /etc/rc.common +START=40 +STOP=90 + +config_cb() { + local cfg="$CONFIG_SECTION" + config_get configname "$cfg" TYPE + + case "$configname" in + broker) + config_get address "$cfg" address + config_get port "$cfg" port + config_get uuid "$cfg" uuid + config_get interface "$cfg" interface + /usr/bin/tunneldigger -u ${uuid} -l 0.0.0.0 -b ${address} -p ${port} -i ${interface} & + ;; + esac +} + +start() +{ + config_load tunneldigger +} + +stop() { + killall tunneldigger +} + From c4b73350fb6260fdd21aa3b29ea80ed25f351a18 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 11:06:16 +0200 Subject: [PATCH 02/63] Minor Makefile fixes. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 5b0967f5..9a2a5f29 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -16,14 +16,14 @@ include $(INCLUDE_DIR)/package.mk define Package/tunneldigger SECTION:=net CATEGORY:=Network - DEPENDS:=libnl-tiny + DEPENDS:=+libnl-tiny TITLE:=L2TPv3 tunnel broker client endef define Build/Prepare $(call Build/Prepare/Default) mv $(PKG_BUILD_DIR)/client/* $(PKG_BUILD_DIR) - sed -i s/-lnl /-lnl-tiny /g $(PKG_BUILD_DIR)/Makefile + sed -i s/-lnl/-lnl-tiny/g $(PKG_BUILD_DIR)/Makefile endef define Package/tunneldigger/install From 1df85778163bf5c9ee76df388df68caacae88cc8 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 11:10:29 +0200 Subject: [PATCH 03/63] Added L2TP kernel module dependencies. --- package/tunneldigger/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 9a2a5f29..f0d3b4ae 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk define Package/tunneldigger SECTION:=net CATEGORY:=Network - DEPENDS:=+libnl-tiny + DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth TITLE:=L2TPv3 tunnel broker client endef From 64e1a800bc8e822ea46370049df97dd4d7a42cca Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 13:51:20 +0200 Subject: [PATCH 04/63] Added libnl-tiny include path to TARGET_CFLAGS. --- package/tunneldigger/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index f0d3b4ae..0f36ddcd 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -20,6 +20,10 @@ define Package/tunneldigger TITLE:=L2TPv3 tunnel broker client endef +TARGET_CFLAGS += \ + -I$(STAGING_DIR)/usr/include/libnl-tiny \ + -I$(STAGING_DIR)/usr/include + define Build/Prepare $(call Build/Prepare/Default) mv $(PKG_BUILD_DIR)/client/* $(PKG_BUILD_DIR) From cb9d6517cfed356b3689ed5a5525e4ab598e2a14 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 18:05:21 +0200 Subject: [PATCH 05/63] Add -DLIBNL_TINY to TARGET_CFLAGS to enable compatibility mode. --- package/tunneldigger/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 0f36ddcd..f260217e 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -22,7 +22,8 @@ endef TARGET_CFLAGS += \ -I$(STAGING_DIR)/usr/include/libnl-tiny \ - -I$(STAGING_DIR)/usr/include + -I$(STAGING_DIR)/usr/include \ + -DLIBNL_TINY define Build/Prepare $(call Build/Prepare/Default) From c304a0d8b99914b5dbdf56c3b6e94c57b77e2b35 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Wed, 6 Jun 2012 12:12:25 +0200 Subject: [PATCH 06/63] Interface up scripts are not needed as new OpenWrt versions have netifd which monitors for interface up events via netlink. --- package/tunneldigger/Makefile | 2 -- package/tunneldigger/files/iface_setup.sh | 4 ---- 2 files changed, 6 deletions(-) delete mode 100644 package/tunneldigger/files/iface_setup.sh diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index f260217e..ca0d00fa 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -36,8 +36,6 @@ define Package/tunneldigger/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/l2tp_client $(1)/usr/bin/tunneldigger $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/tunneldigger.init $(1)/etc/init.d/tunneldigger - $(INSTALL_DIR) $(1)/lib/tunneldigger - $(INSTALL_BIN) ./files/iface_setup.sh $(1)/lib/tunneldigger/iface_setup.sh endef $(eval $(call BuildPackage,tunneldigger)) diff --git a/package/tunneldigger/files/iface_setup.sh b/package/tunneldigger/files/iface_setup.sh deleted file mode 100644 index ef040c58..00000000 --- a/package/tunneldigger/files/iface_setup.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# Call the hotplug network interface setup script so our new L2TPv3 tunnel -# interface gets configured with required addresses -ACTION="add" INTERFACE="$1" /sbin/hotplug-call net From bf125b1d34c378ed832a396f7204cbcbe7805fc3 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Thu, 7 Jun 2012 10:22:48 +0200 Subject: [PATCH 07/63] Changed init script priority. --- package/tunneldigger/files/tunneldigger.init | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index deb35306..ca6eb620 100644 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -1,6 +1,5 @@ #!/bin/sh /etc/rc.common -START=40 -STOP=90 +START=90 config_cb() { local cfg="$CONFIG_SECTION" From 1b31e827b46f61d5357bad930a35067cc172104e Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Fri, 8 Jun 2012 22:59:59 +0200 Subject: [PATCH 08/63] Added support for tunnels to multiple servers. --- package/tunneldigger/files/tunneldigger.init | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index ca6eb620..f495db2a 100644 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -1,6 +1,8 @@ #!/bin/sh /etc/rc.common START=90 +tunnel_id=1 + config_cb() { local cfg="$CONFIG_SECTION" config_get configname "$cfg" TYPE @@ -11,7 +13,8 @@ config_cb() { config_get port "$cfg" port config_get uuid "$cfg" uuid config_get interface "$cfg" interface - /usr/bin/tunneldigger -u ${uuid} -l 0.0.0.0 -b ${address} -p ${port} -i ${interface} & + /usr/bin/tunneldigger -u ${uuid} -l 0.0.0.0 -b ${address} -p ${port} -i ${interface} -t ${tunnel_id} & + let tunnel_id++ ;; esac } From 899d8b114fdf49a3fd30a1bf6ff58a917fe245e7 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Fri, 8 Jun 2012 23:00:50 +0200 Subject: [PATCH 09/63] Added missing librt dependency. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index ca0d00fa..452a1381 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 @@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk define Package/tunneldigger SECTION:=net CATEGORY:=Network - DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth + DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth +librt TITLE:=L2TPv3 tunnel broker client endef From bd0670c979a7872c9c40197cbaf47e0122038d88 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Wed, 11 Jul 2012 20:33:11 +0200 Subject: [PATCH 10/63] Updated package to latest tunneldigger version. --- package/tunneldigger/Makefile | 4 ++-- package/tunneldigger/files/config.default | 4 +++- package/tunneldigger/files/tunneldigger.init | 10 ++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 452a1381..e709f3a1 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.1 -PKG_RELEASE:=2 +PKG_VERSION:=0.2 +PKG_RELEASE:=1 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index b1a3175b..3dd7747e 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -1,6 +1,8 @@ config broker option address 'x.y.z.w' - option port 53 + list port 8942 + list port 53 + list port 123 option uuid 'abcd' option interface 'l2tp0' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index f495db2a..a2bc4a46 100644 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -10,10 +10,16 @@ config_cb() { case "$configname" in broker) config_get address "$cfg" address - config_get port "$cfg" port + config_get ports "$cfg" port config_get uuid "$cfg" uuid config_get interface "$cfg" interface - /usr/bin/tunneldigger -u ${uuid} -l 0.0.0.0 -b ${address} -p ${port} -i ${interface} -t ${tunnel_id} & + + local broker_opts="" + for port in $ports; do + broker_opts="${broker_opts} -b ${address}:${port}" + done + + /usr/bin/tunneldigger -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} & let tunnel_id++ ;; esac From 4dd8ecf983aafbea8d31b49a4162836ab785fd91 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Sun, 19 Aug 2012 18:36:06 +0200 Subject: [PATCH 11/63] Modified the way tunneldigger hosts are configured in UCI. --- package/tunneldigger/Makefile | 2 +- package/tunneldigger/files/config.default | 7 +++---- package/tunneldigger/files/tunneldigger.init | 7 +++---- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index e709f3a1..f660bb85 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index 3dd7747e..d1830a76 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -1,8 +1,7 @@ config broker - option address 'x.y.z.w' - list port 8942 - list port 53 - list port 123 + list address 'x.y.z.w:8942' + list address 'x.y.z.w:53' + list address 'x.y.z.w:123' option uuid 'abcd' option interface 'l2tp0' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index a2bc4a46..4724f569 100644 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -9,14 +9,13 @@ config_cb() { case "$configname" in broker) - config_get address "$cfg" address - config_get ports "$cfg" port + config_get addresses "$cfg" address config_get uuid "$cfg" uuid config_get interface "$cfg" interface local broker_opts="" - for port in $ports; do - broker_opts="${broker_opts} -b ${address}:${port}" + for address in $addresses; do + broker_opts="${broker_opts} -b ${address}" done /usr/bin/tunneldigger -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} & From f2ace405ffc9723ea63dfe89bb3480a7d9b105b3 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Thu, 6 Jun 2013 18:56:29 +0200 Subject: [PATCH 12/63] Added new bandwidth limit option to tunneldigger. --- package/tunneldigger/Makefile | 4 ++-- package/tunneldigger/files/config.default | 2 +- package/tunneldigger/files/tunneldigger.init | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index f660bb85..acd46e40 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.2 -PKG_RELEASE:=2 +PKG_VERSION:=0.3 +PKG_RELEASE:=1 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index d1830a76..44b1fe92 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -4,4 +4,4 @@ config broker list address 'x.y.z.w:123' option uuid 'abcd' option interface 'l2tp0' - + option limit_bw_down '1024' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 4724f569..6853311b 100644 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -12,11 +12,16 @@ config_cb() { config_get addresses "$cfg" address config_get uuid "$cfg" uuid config_get interface "$cfg" interface + config_get limit_bw_down "$cfg" limit_bw_down local broker_opts="" for address in $addresses; do broker_opts="${broker_opts} -b ${address}" done + + if [ ! -z "${limit_bw_down}" ]; then + broker_opts="${broker_opts} -L ${limit_bw_down}" + fi /usr/bin/tunneldigger -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} & let tunnel_id++ From 0533f551942f1cd916a559f84cf8181ba583f969 Mon Sep 17 00:00:00 2001 From: Marc Juul Date: Fri, 10 Jan 2014 02:11:39 -0800 Subject: [PATCH 13/63] changed tunneldigger init script to use start-stop-daemon and added restart option --- package/tunneldigger/files/tunneldigger.init | 30 ++++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) mode change 100644 => 100755 package/tunneldigger/files/tunneldigger.init diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init old mode 100644 new mode 100755 index 6853311b..7926bdf6 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -1,18 +1,20 @@ #!/bin/sh /etc/rc.common + START=90 +PIDFILE=/var/run/tunneldigger.pid tunnel_id=1 config_cb() { local cfg="$CONFIG_SECTION" config_get configname "$cfg" TYPE - case "$configname" in broker) config_get addresses "$cfg" address config_get uuid "$cfg" uuid config_get interface "$cfg" interface config_get limit_bw_down "$cfg" limit_bw_down + config_get hook_script "$cfg" hook_script local broker_opts="" for address in $addresses; do @@ -22,19 +24,35 @@ config_cb() { if [ ! -z "${limit_bw_down}" ]; then broker_opts="${broker_opts} -L ${limit_bw_down}" fi - - /usr/bin/tunneldigger -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} & + echo "Starting tunneldigger" + /sbin/start-stop-daemon -S -q -b -m -p $PIDFILE -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} + -t ${tunnel_id} -s ${hook_script} ${broker_opts} let tunnel_id++ ;; esac } -start() -{ +start() { config_load tunneldigger } stop() { - killall tunneldigger + echo "Stopping tunneldigger" + if [ -f $PIDFILE ]; then + PID=`cat ${PIDFILE}` + start-stop-daemon -K -q -p $PIDFILE + while test -d "/proc/${PID}"; do + echo "waiting for tunneldigger to stop" + sleep 1 + done + echo "tunneldigger stopped" + else + echo "Looks like tunneldigger wasn't running" + fi +} + +restart() { + stop + start } From 63bbbf2e9503e50653426f4466457308102deb2f Mon Sep 17 00:00:00 2001 From: Marc Juul Date: Fri, 10 Jan 2014 02:13:13 -0800 Subject: [PATCH 14/63] removed extra newline --- package/tunneldigger/files/tunneldigger.init | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 7926bdf6..efa43666 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -25,8 +25,7 @@ config_cb() { broker_opts="${broker_opts} -L ${limit_bw_down}" fi echo "Starting tunneldigger" - /sbin/start-stop-daemon -S -q -b -m -p $PIDFILE -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} - -t ${tunnel_id} -s ${hook_script} ${broker_opts} + /sbin/start-stop-daemon -S -q -b -m -p $PIDFILE -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} -s ${hook_script} ${broker_opts} let tunnel_id++ ;; esac From e13010967492281209ea3b7f33cfcdada2718d74 Mon Sep 17 00:00:00 2001 From: Marc Juul Date: Fri, 10 Jan 2014 02:56:40 -0800 Subject: [PATCH 15/63] tunneldigger script now tells which interface it's starting for --- package/tunneldigger/files/tunneldigger.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index efa43666..dd493702 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -24,7 +24,7 @@ config_cb() { if [ ! -z "${limit_bw_down}" ]; then broker_opts="${broker_opts} -L ${limit_bw_down}" fi - echo "Starting tunneldigger" + echo "Starting tunneldigger on ${interface}" /sbin/start-stop-daemon -S -q -b -m -p $PIDFILE -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} -s ${hook_script} ${broker_opts} let tunnel_id++ ;; From 79902dd06c2883ce5635bd5530036105d9fdddc4 Mon Sep 17 00:00:00 2001 From: Marc Juul Date: Fri, 10 Jan 2014 06:03:43 -0800 Subject: [PATCH 16/63] tentative support for stopping multiple tunneldiggers --- package/tunneldigger/files/tunneldigger.init | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index dd493702..d62b458e 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -2,7 +2,7 @@ START=90 -PIDFILE=/var/run/tunneldigger.pid +PIDPATH=/var/run tunnel_id=1 config_cb() { @@ -25,7 +25,7 @@ config_cb() { broker_opts="${broker_opts} -L ${limit_bw_down}" fi echo "Starting tunneldigger on ${interface}" - /sbin/start-stop-daemon -S -q -b -m -p $PIDFILE -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} -s ${hook_script} ${broker_opts} + /sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} -s ${hook_script} ${broker_opts} let tunnel_id++ ;; esac @@ -36,18 +36,17 @@ start() { } stop() { - echo "Stopping tunneldigger" - if [ -f $PIDFILE ]; then + for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do PID=`cat ${PIDFILE}` + IFACE=`echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2` + echo "Stopping tunneldigger for interface ${IFACE}" start-stop-daemon -K -q -p $PIDFILE while test -d "/proc/${PID}"; do - echo "waiting for tunneldigger to stop" + echo " waiting for tunneldigger to stop" sleep 1 done - echo "tunneldigger stopped" - else - echo "Looks like tunneldigger wasn't running" - fi + echo " tunneldigger stopped" + done } restart() { From c5b568684f41e20591ccdbbf8792cdb8604d199c Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 20 Jan 2014 03:52:40 +0100 Subject: [PATCH 17/63] tunneldigger: fix startup when no hookscript given --- package/tunneldigger/files/tunneldigger.init | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index d62b458e..d2a3db37 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -24,8 +24,14 @@ config_cb() { if [ ! -z "${limit_bw_down}" ]; then broker_opts="${broker_opts} -L ${limit_bw_down}" fi + + if [ ! -z "${hook_script}" ] ; then + broker_opts="${broker_opts} -s ${hook_script}" + fi + echo "Starting tunneldigger on ${interface}" - /sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} -s ${hook_script} ${broker_opts} + /sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} + let tunnel_id++ ;; esac From 45773bf9bc15cdd3e8e3522d3c90246ae0e3f0a4 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 27 Jan 2014 05:29:29 +0100 Subject: [PATCH 18/63] tunneldigger: new config option enabled --- package/tunneldigger/files/config.default | 1 + package/tunneldigger/files/tunneldigger.init | 3 +++ 2 files changed, 4 insertions(+) diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index 44b1fe92..571621a4 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -5,3 +5,4 @@ config broker option uuid 'abcd' option interface 'l2tp0' option limit_bw_down '1024' + option enabled '0' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index d2a3db37..3ae1cb0f 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -10,12 +10,15 @@ config_cb() { config_get configname "$cfg" TYPE case "$configname" in broker) + config_get_bool enabled "$cfg" enabled 1 config_get addresses "$cfg" address config_get uuid "$cfg" uuid config_get interface "$cfg" interface config_get limit_bw_down "$cfg" limit_bw_down config_get hook_script "$cfg" hook_script + [ $enabled -eq 0 ] && return + local broker_opts="" for address in $addresses; do broker_opts="${broker_opts} -b ${address}" From a0bad10b62db4c4e627b0ffcaa31525c4fe71f95 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Thu, 16 Jan 2014 10:03:22 +0100 Subject: [PATCH 19/63] tunneldigger: install default config /etc/config/tunneldigger --- package/tunneldigger/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index acd46e40..5cb2c67d 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 @@ -36,6 +36,8 @@ define Package/tunneldigger/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/l2tp_client $(1)/usr/bin/tunneldigger $(INSTALL_DIR) $(1)/etc/init.d $(INSTALL_BIN) ./files/tunneldigger.init $(1)/etc/init.d/tunneldigger + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/config.default $(1)/etc/config/tunneldigger endef $(eval $(call BuildPackage,tunneldigger)) From 9a45a199e1b1696291d3c0d4bf4f421c43f2cf71 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 27 Jan 2014 05:32:29 +0100 Subject: [PATCH 20/63] tunneldigger: build cmdline using function "append" --- package/tunneldigger/files/tunneldigger.init | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 3ae1cb0f..229eea67 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -21,15 +21,12 @@ config_cb() { local broker_opts="" for address in $addresses; do - broker_opts="${broker_opts} -b ${address}" + append broker_opts "-b ${address}" done - if [ ! -z "${limit_bw_down}" ]; then - broker_opts="${broker_opts} -L ${limit_bw_down}" - fi + [ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}" + [ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}" - if [ ! -z "${hook_script}" ] ; then - broker_opts="${broker_opts} -s ${hook_script}" fi echo "Starting tunneldigger on ${interface}" From 4a4d2c1eaec75c364c57ff53eff80aedfd1e3158 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 27 Jan 2014 05:33:33 +0100 Subject: [PATCH 21/63] tunneldigger: check if all mandantory cmdargs are given --- package/tunneldigger/files/tunneldigger.init | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 229eea67..c4b5060f 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -5,6 +5,10 @@ START=90 PIDPATH=/var/run tunnel_id=1 +missing() { + echo "Not starting tunneldigger - missing $1" >&2 +} + config_cb() { local cfg="$CONFIG_SECTION" config_get configname "$cfg" TYPE @@ -27,6 +31,12 @@ config_cb() { [ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}" [ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}" + if [ -z "$uuid" ]; then + missing uuid + return + elif [ -z "$interface" ]; then + missing interface + return fi echo "Starting tunneldigger on ${interface}" From 6ce2fc4c73dfe153132f50e406d62d3ea32b6567 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 27 Jan 2014 07:28:49 +0100 Subject: [PATCH 22/63] tunneldigger: fix coding style of stop() --- package/tunneldigger/files/tunneldigger.init | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index c4b5060f..de4e0cb1 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -52,17 +52,17 @@ start() { } stop() { - for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do - PID=`cat ${PIDFILE}` - IFACE=`echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2` - echo "Stopping tunneldigger for interface ${IFACE}" + for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do + PID="$(cat ${PIDFILE})" + IFACE="$(echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2)" + echo "Stopping tunneldigger for interface ${IFACE}" start-stop-daemon -K -q -p $PIDFILE while test -d "/proc/${PID}"; do echo " waiting for tunneldigger to stop" sleep 1 done echo " tunneldigger stopped" - done + done } restart() { From 4096847d3a1cf71c7f90c60aec6fb54188521a7f Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Mon, 3 Feb 2014 14:25:08 +0100 Subject: [PATCH 23/63] Tunneldigger client now requires libpthread. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 5cb2c67d..3d459044 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.3 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_REV:=HEAD PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 @@ -16,7 +16,7 @@ include $(INCLUDE_DIR)/package.mk define Package/tunneldigger SECTION:=net CATEGORY:=Network - DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth +librt + DEPENDS:=+libnl-tiny +kmod-l2tp +kmod-l2tp-ip +kmod-l2tp-eth +librt +libpthread TITLE:=L2TPv3 tunnel broker client endef From c24978fcda814ad4e3a6c74333b3c93032ce5b56 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Wed, 16 Apr 2014 14:27:33 +0200 Subject: [PATCH 24/63] Use fixed revision for tunneldigger package. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 3d459044..a16d983a 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.3 -PKG_RELEASE:=3 -PKG_REV:=HEAD +PKG_RELEASE:=4 +PKG_REV:=7b23f649db053c1cf624000be8b6b54eb7d683b8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From 48f086032877171814b09dba99a972a407ffbec6 Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Fri, 29 Aug 2014 20:09:41 +0200 Subject: [PATCH 25/63] tunneldigger: use conffiles for /etc/config/tunneldigger This will prevent opkg from overwriting /etc/config/tunneldigger. --- package/tunneldigger/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index a16d983a..b52b12fb 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.3 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_REV:=7b23f649db053c1cf624000be8b6b54eb7d683b8 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 @@ -40,4 +40,8 @@ define Package/tunneldigger/install $(INSTALL_DATA) ./files/config.default $(1)/etc/config/tunneldigger endef +define Package/tunneldigger/conffiles +/etc/config/tunneldigger +endef + $(eval $(call BuildPackage,tunneldigger)) From 4958a7fba9d6305a03d22c9cc98344ad6062f561 Mon Sep 17 00:00:00 2001 From: Stefan Laudemann Date: Mon, 2 Mar 2015 06:42:06 +0100 Subject: [PATCH 26/63] Adds basic package skeleton for the ffpb-ebtables-net-rules into a feature branch. This is NOT a complete package NOR has the current implementation been tested. It just reflects the state of the work as it exists on my harddrive, hence it is committed into a feature-branch such that someone else can continue the work ... From 45c336f311bd47e7a53c0b9b4ab841b1d1be0b8a Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Thu, 30 Apr 2015 11:25:14 +0200 Subject: [PATCH 27/63] tunneldigger: Bumped package version. --- package/tunneldigger/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index b52b12fb..0bdaf603 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.3 -PKG_RELEASE:=5 -PKG_REV:=7b23f649db053c1cf624000be8b6b54eb7d683b8 +PKG_VERSION:=0.4 +PKG_RELEASE:=1 +PKG_REV:=d028411ec486e086e130e0d651f763bc5e757622 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From f2bdf764f6b2b2c776acadfe5785a8fdb5f8b813 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Fri, 1 May 2015 18:12:01 +0200 Subject: [PATCH 28/63] tunneldigger: Bumped package version. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 0bdaf603..40f16559 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4 -PKG_RELEASE:=1 -PKG_REV:=d028411ec486e086e130e0d651f763bc5e757622 +PKG_RELEASE:=2 +PKG_REV:=a3b5154f9933ad2a0d07e00a74c9164b625aac2a PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From b40c5f290dcdc14a411d97c028bfd9bddf04d88d Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Sun, 24 May 2015 12:14:10 +0200 Subject: [PATCH 29/63] tunneldigger: Bumped package version. --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 40f16559..5fa04594 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4 +PKG_VERSION:=0.4.1 PKG_RELEASE:=2 -PKG_REV:=a3b5154f9933ad2a0d07e00a74c9164b625aac2a +PKG_REV:=8d12a8d868548560f5c3e9ef63bb30b6c6d8b5c3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From c7cb1a98470018eba90634494c9ee9fa8e1491ed Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Fri, 12 Jun 2015 19:29:30 +0200 Subject: [PATCH 30/63] tunneldigger: Bumped package version. --- package/tunneldigger/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 5fa04594..3d24ebde 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4.1 -PKG_RELEASE:=2 -PKG_REV:=8d12a8d868548560f5c3e9ef63bb30b6c6d8b5c3 +PKG_VERSION:=0.4.2 +PKG_RELEASE:=1 +PKG_REV:=0a292c7aaacb1cff86c7bfffcb2bc663fc772f18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From b52cd56ef128698874c2b984684a4348cf98451c Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Sat, 13 Jun 2015 13:41:01 +0200 Subject: [PATCH 31/63] tunneldigger: Bumped revision. --- package/tunneldigger/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 3d24ebde..950a968b 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -3,7 +3,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4.2 PKG_RELEASE:=1 -PKG_REV:=0a292c7aaacb1cff86c7bfffcb2bc663fc772f18 +PKG_REV:=604c4351dfa4fc58df0e93a9c0df8b937f8c4c92 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From 0916cc980470269bfe61386c6d2e27bceaba436f Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Wed, 30 Sep 2015 10:48:19 +0200 Subject: [PATCH 32/63] tunneldigger: Support bind to interface option. --- package/tunneldigger/Makefile | 4 ++-- package/tunneldigger/files/tunneldigger.init | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 950a968b..4322b9cd 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4.2 +PKG_VERSION:=0.4.3 PKG_RELEASE:=1 -PKG_REV:=604c4351dfa4fc58df0e93a9c0df8b937f8c4c92 +PKG_REV:=42288abb57261e07491a8233fec2e0741dcb8d52 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index de4e0cb1..f388a1b6 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -20,6 +20,7 @@ config_cb() { config_get interface "$cfg" interface config_get limit_bw_down "$cfg" limit_bw_down config_get hook_script "$cfg" hook_script + config_get bind_interface "$cfg" bind_interface [ $enabled -eq 0 ] && return @@ -30,6 +31,7 @@ config_cb() { [ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}" [ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}" + [ ! -z "${bind_interface}" ] && append broker_opts "-I ${bind_interface}" if [ -z "$uuid" ]; then missing uuid From ec713dd6b56c3bcb0c35910170cc2d4dafcb873d Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Wed, 30 Sep 2015 13:14:38 +0200 Subject: [PATCH 33/63] tunneldigger: Allow logical interface names. --- package/tunneldigger/Makefile | 2 +- package/tunneldigger/files/tunneldigger.init | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 4322b9cd..05a8fd76 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4.3 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_REV:=42288abb57261e07491a8233fec2e0741dcb8d52 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index f388a1b6..7747d46f 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -1,5 +1,7 @@ #!/bin/sh /etc/rc.common +. $IPKG_INSTROOT/lib/functions/network.sh + START=90 PIDPATH=/var/run @@ -31,7 +33,12 @@ config_cb() { [ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}" [ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}" - [ ! -z "${bind_interface}" ] && append broker_opts "-I ${bind_interface}" + [ ! -z "${bind_interface}" ] && { + # Resolve logical interface name. + unset _bind_interface + network_get_device _bind_interface "${bind_interface}" || _bind_interface="${bind_interface}" + append broker_opts "-I ${_bind_interface}" + } if [ -z "$uuid" ]; then missing uuid From 890ffc77fd1eeee2f5cedb0271f70aa3d68c92c4 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 5 Oct 2015 22:11:17 +0200 Subject: [PATCH 34/63] Added group setting for start-stop-daemon in order to use iptables owner marks --- package/tunneldigger/files/config.default | 1 + package/tunneldigger/files/tunneldigger.init | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index 571621a4..307c1b9a 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -3,6 +3,7 @@ config broker list address 'x.y.z.w:53' list address 'x.y.z.w:123' option uuid 'abcd' + option group 'root' option interface 'l2tp0' option limit_bw_down '1024' option enabled '0' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 7747d46f..2cfcb74c 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -20,6 +20,7 @@ config_cb() { config_get addresses "$cfg" address config_get uuid "$cfg" uuid config_get interface "$cfg" interface + config_get group "$cfg" group config_get limit_bw_down "$cfg" limit_bw_down config_get hook_script "$cfg" hook_script config_get bind_interface "$cfg" bind_interface @@ -49,7 +50,7 @@ config_cb() { fi echo "Starting tunneldigger on ${interface}" - /sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} + /sbin/start-stop-daemon -S -q -b -m -c root:${group} -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts} let tunnel_id++ ;; From 119ac32540f255afb6f6af99195e78dc04294669 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 00:11:04 +0200 Subject: [PATCH 35/63] Added gluon-config-mode-tunneldigger --- .../gluon-config-mode-tunneldigger/Makefile | 36 +++++++++++ .../config-mode/wizard/0300-mesh-vpn.lua | 64 +++++++++++++++++++ .../gluon-config-mode-tunneldigger/i18n/de.po | 36 +++++++++++ .../i18n/gluon-config-mode-tunneldigger.pot | 22 +++++++ 4 files changed, 158 insertions(+) create mode 100644 package/gluon-config-mode-tunneldigger/Makefile create mode 100644 package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua create mode 100644 package/gluon-config-mode-tunneldigger/i18n/de.po create mode 100644 package/gluon-config-mode-tunneldigger/i18n/gluon-config-mode-tunneldigger.pot diff --git a/package/gluon-config-mode-tunneldigger/Makefile b/package/gluon-config-mode-tunneldigger/Makefile new file mode 100644 index 00000000..c41e24fd --- /dev/null +++ b/package/gluon-config-mode-tunneldigger/Makefile @@ -0,0 +1,36 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-config-mode-tunneldigger +PKG_VERSION:=1 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(GLUONDIR)/include/package.mk + +PKG_CONFIG_DEPENDS += $(GLUON_I18N_CONFIG) + + +define Package/gluon-config-mode-tunneldigger + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Toggle tunneldigger and bandwidth limit + DEPENDS:=gluon-config-mode-core-virtual +gluon-mesh-vpn-tunneldigger +gluon-simple-tc +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile + $(call GluonBuildI18N,gluon-config-mode-tunneldigger,i18n) +endef + +define Package/gluon-config-mode-tunneldigger/install + $(CP) ./files/* $(1)/ + $(call GluonInstallI18N,gluon-config-mode-tunneldigger,$(1)) +endef + +$(eval $(call BuildPackage,gluon-config-mode-tunneldigger)) diff --git a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua new file mode 100644 index 00000000..066dc503 --- /dev/null +++ b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua @@ -0,0 +1,64 @@ +local cbi = require "luci.cbi" +local i18n = require "luci.i18n" +local uci = luci.model.uci.cursor() + +local M = {} + +function M.section(form) + local msg = i18n.translate('Your internet connection can be used to establish a ' .. + 'L2TP VPN connection with other nodes. ' .. + 'Enable this option if there are no other nodes reachable ' .. + 'over WLAN in your vicinity or you want to make a part of ' .. + 'your connection\'s bandwidth available for the network. You can limit how ' .. + 'much bandwidth the node will use at most.') + local s = form:section(cbi.SimpleSection, nil, msg) + + local o + + o = s:option(cbi.Flag, "_meshvpn", i18n.translate("Use internet connection (mesh VPN via L2TP")")) + o.default = uci:get_bool("tunneldigger", "broker", "enabled") and o.enabled or o.disabled + o.rmempty = false + + o = s:option(cbi.Flag, "_limit_enabled", i18n.translate("Limit bandwidth")) + o:depends("_meshvpn", "1") + o.default = uci:get_bool("gluon-simple-tc", "mesh_vpn", "enabled") and o.enabled or o.disabled + o.rmempty = false + + o = s:option(cbi.Value, "_limit_ingress", i18n.translate("Downstream (kbit/s)")) + o:depends("_limit_enabled", "1") + o.value = uci:get("gluon-simple-tc", "mesh_vpn", "limit_ingress") + o.rmempty = false + o.datatype = "integer" + + o = s:option(cbi.Value, "_limit_egress", i18n.translate("Upstream (kbit/s)")) + o:depends("_limit_enabled", "1") + o.value = uci:get("gluon-simple-tc", "mesh_vpn", "limit_egress") + o.rmempty = false + o.datatype = "integer" +end + +function M.handle(data) + uci:set("tunneldigger", "broker", "enabled", data._meshvpn) + uci:save("tunneldigger") + uci:commit("tunneldigger") + + -- checks for nil needed due to o:depends(...) + if data._limit_enabled ~= nil then + uci:set("gluon-simple-tc", "mesh_vpn", "interface") + uci:set("gluon-simple-tc", "mesh_vpn", "enabled", data._limit_enabled) + uci:set("gluon-simple-tc", "mesh_vpn", "ifname", "mesh-vpn") + + if data._limit_ingress ~= nil then + uci:set("gluon-simple-tc", "mesh_vpn", "limit_ingress", data._limit_ingress) + end + + if data._limit_egress ~= nil then + uci:set("gluon-simple-tc", "mesh_vpn", "limit_egress", data._limit_egress) + end + + uci:commit("gluon-simple-tc") + uci:commit("gluon-simple-tc") + end +end + +return M diff --git a/package/gluon-config-mode-tunneldigger/i18n/de.po b/package/gluon-config-mode-tunneldigger/i18n/de.po new file mode 100644 index 00000000..7ae434c8 --- /dev/null +++ b/package/gluon-config-mode-tunneldigger/i18n/de.po @@ -0,0 +1,36 @@ +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"PO-Revision-Date: 2015-10-07 00:32+0100\n" +"Last-Translator: Cyrus Fox \n" +"Language-Team: German\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Downstream (kbit/s)" +msgstr "Downstream (kbit/s)" + +msgid "Limit bandwidth" +msgstr "Bandbreite begrenzen" + +msgid "Upstream (kbit/s)" +msgstr "Upstream (kbit/s)" + +msgid "Use internet connection (mesh VPN via L2TP)" +msgstr "Internetverbindung nutzen (Mesh-VPN via L2TP)" + +msgid "" +"Your internet connection can be used to establish a L2TP VPN connection " +"with other nodes. Enable this option if there are no other nodes reachable " +"over WLAN in your vicinity or you want to make a part of your connection's " +"bandwidth available for the network. You can limit how much bandwidth the " +"node will use at most." +msgstr "" +"Dein Knoten kann deine Internetverbindung nutzen um darüber eine " +"L2TP-VPN Verbindung zu anderen Knoten aufzubauen. Die dafür " +"genutzte Bandbreite kannst du beschränken. Aktiviere die Option, falls keine " +"per WLAN erreichbaren Nachbarknoten in deiner Nähe sind oder du deine " +"Internetverbindung für das Mesh-Netzwerk zur Verfügung stellen möchtest." diff --git a/package/gluon-config-mode-tunneldigger/i18n/gluon-config-mode-tunneldigger.pot b/package/gluon-config-mode-tunneldigger/i18n/gluon-config-mode-tunneldigger.pot new file mode 100644 index 00000000..de18498d --- /dev/null +++ b/package/gluon-config-mode-tunneldigger/i18n/gluon-config-mode-tunneldigger.pot @@ -0,0 +1,22 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "Downstream (kbit/s)" +msgstr "" + +msgid "Limit bandwidth" +msgstr "" + +msgid "Upstream (kbit/s)" +msgstr "" + +msgid "Use internet connection (mesh VPN via L2TP)" +msgstr "" + +msgid "" +"Your internet connection can be used to establish a L2TP VPN connection " +"with other nodes. Enable this option if there are no other nodes reachable " +"over WLAN in your vicinity or you want to make a part of your connection's " +"bandwidth available for the network. You can limit how much bandwidth the " +"node will use at most." +msgstr "" From ff2ca8837411f215e16acfac33a10e16c7754fca Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 00:11:19 +0200 Subject: [PATCH 36/63] Added gluon-mesh-vpn-tunneldigger --- package/gluon-mesh-vpn-tunneldigger/Makefile | 40 ++++++++++++ .../check_site.lua | 3 + .../announce/nodeinfo.d/software/tunneldigger | 3 + .../lib/gluon/announce/statistics.d/mesh_vpn | 7 +++ .../mesh-vpn-tunneldigger/iptables.rules | 3 + .../gluon/upgrade/400-mesh-vpn-tunneldigger | 62 +++++++++++++++++++ 6 files changed, 118 insertions(+) create mode 100644 package/gluon-mesh-vpn-tunneldigger/Makefile create mode 100644 package/gluon-mesh-vpn-tunneldigger/check_site.lua create mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger create mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn create mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/mesh-vpn-tunneldigger/iptables.rules create mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger diff --git a/package/gluon-mesh-vpn-tunneldigger/Makefile b/package/gluon-mesh-vpn-tunneldigger/Makefile new file mode 100644 index 00000000..b4c2bf08 --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/Makefile @@ -0,0 +1,40 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-mesh-vpn-tunneldigger +PKG_VERSION:=3 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(GLUONDIR)/include/package.mk + +define Package/gluon-mesh-vpn-tunneldigger + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Support for connecting batman-adv meshes via tunneltigger/l2tpv3 pseudowire + DEPENDS:=+gluon-core gluon-mesh-batman-adv +gluon-wan-dnsmasq +tunneldigger +iptables-mod-extra +endef + +define Package/gluon-mesh-vpn-tunneldigger/description + Gluon community wifi mesh firmware framework: tunneldigger support +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/gluon-mesh-vpn-tunneldigger/install + $(CP) ./files/* $(1)/ +endef + +define Package/gluon-mesh-vpn-tunneldigger/postinst +#!/bin/sh +$(call GluonCheckSite,check_site.lua) +endef + +$(eval $(call BuildPackage,gluon-mesh-vpn-tunneldigger)) diff --git a/package/gluon-mesh-vpn-tunneldigger/check_site.lua b/package/gluon-mesh-vpn-tunneldigger/check_site.lua new file mode 100644 index 00000000..a608951b --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/check_site.lua @@ -0,0 +1,3 @@ +need_number('tunneldigger_mesh_vpn.mtu') +need_boolean('tunneldigger_mesh_vpn.enabled', false) +need_string_array('tunneldigger_mesh_vpn.brokers')) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger new file mode 100644 index 00000000..6cf1040b --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger @@ -0,0 +1,3 @@ +return { + enabled = uci:get_bool('tunneldigger', 'broker', 'enabled'), +} diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn new file mode 100644 index 00000000..1765175a --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn @@ -0,0 +1,7 @@ +local json = require 'luci.json' +local ltn12 = require 'luci.ltn12' +local nixio = require 'nixio' +local site = require 'gluon.site_config' +local uci = require('luci.model.uci').cursor() + +return nil diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/mesh-vpn-tunneldigger/iptables.rules b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/mesh-vpn-tunneldigger/iptables.rules new file mode 100644 index 00000000..2b16750c --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/mesh-vpn-tunneldigger/iptables.rules @@ -0,0 +1,3 @@ +*nat +-I OUTPUT -m owner --gid-owner gluon-tunneldigger -o lo -d 127.0.0.1 -p udp --dport 53 -j DNAT --to-destination :54 +COMMIT diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger new file mode 100644 index 00000000..5683c343 --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger @@ -0,0 +1,62 @@ +#!/usr/bin/lua + +local site = require 'gluon.site_config' +local users = require 'gluon.users' +local util = require 'gluon.util' + +local uci = require('luci.model.uci').cursor() +local lutil = require 'luci.util' + +-- Group for iptables rule +users.add_group('gluon-tunneldigger', 900) + +local enabled = uci:get('tunneldigger', 'broker', 'enabled') +if not enabled then + enabled = site.tunneldigger_mesh_vpn.enabled and 1 or 0 +end + +uci:section('tunneldigger', 'broker', + { + enabled = enabled, + uuid = util.node_id(), + interface = 'mesh-vpn', + bind_interface = 'br-wan', + group = 'gluon-tunneldigger', + } +) + +uci:set("tunneldigger", "broker", "address", site.mesh_vpn_tunneldigger.brokers) + +uci:save('tunneldigger') +uci:commit('tunneldigger') + +uci:section('network', 'interface', 'mesh_vpn', + { + ifname = 'mesh-vpn', + proto = 'batadv', + mesh = 'bat0', + mesh_no_rebroadcast = 1, + } +) + +uci:section('network', 'device', 'mesh_vpn_dev', + { + ifname = 'mesh-vpn', + mtu = site.mesh_vpn_tunneldigger.mtu, + } +) + +uci:save('network') +uci:commit('network') + + +uci:section('firewall', 'include', 'mesh_vpn_dns', + { + type = 'restore', + path = '/lib/gluon/mesh-vpn-tunneldigger/iptables.rules', + family = 'ipv4', + } +) + +uci:save('firewall') +uci:commit('firewall') From df8aaf290c04ef7d2a058aa9c475d02d322bea4b Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 10:51:39 +0200 Subject: [PATCH 37/63] Fixed check_site.lua --- package/gluon-mesh-vpn-tunneldigger/check_site.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/check_site.lua b/package/gluon-mesh-vpn-tunneldigger/check_site.lua index a608951b..c2993a01 100644 --- a/package/gluon-mesh-vpn-tunneldigger/check_site.lua +++ b/package/gluon-mesh-vpn-tunneldigger/check_site.lua @@ -1,3 +1,3 @@ need_number('tunneldigger_mesh_vpn.mtu') -need_boolean('tunneldigger_mesh_vpn.enabled', false) -need_string_array('tunneldigger_mesh_vpn.brokers')) +need_number('tunneldigger_mesh_vpn.enabled', false) +need_string_array('tunneldigger_mesh_vpn.brokers') From eb2f511ad156cec85955040e3b7b14f7b24f88bd Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 11:38:14 +0200 Subject: [PATCH 38/63] Set executable bit for 0300-mesh-vpn.lua and 400-mesh-vpn-tunneldigger --- .../files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua | 0 .../files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua mode change 100644 => 100755 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger diff --git a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua old mode 100644 new mode 100755 diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger old mode 100644 new mode 100755 From 6db68958c281af12136607b4c37f26c31d86c182 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 14:14:32 +0200 Subject: [PATCH 39/63] Fixed upgrade/400-mesh-vpn-tunneldigger --- .../gluon/upgrade/400-mesh-vpn-tunneldigger | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger index 5683c343..7d027b3f 100755 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger @@ -10,23 +10,27 @@ local lutil = require 'luci.util' -- Group for iptables rule users.add_group('gluon-tunneldigger', 900) -local enabled = uci:get('tunneldigger', 'broker', 'enabled') +local enabled = uci:get_first('tunneldigger', 'broker', 'enabled') if not enabled then enabled = site.tunneldigger_mesh_vpn.enabled and 1 or 0 end -uci:section('tunneldigger', 'broker', +-- Delete old broker config section +uci:delete_all('tunneldigger', 'broker') + +section = uci:add('tunneldigger', 'broker') + +uci:section('tunneldigger', 'broker', section, { enabled = enabled, uuid = util.node_id(), interface = 'mesh-vpn', bind_interface = 'br-wan', group = 'gluon-tunneldigger', + address = site.tunneldigger_mesh_vpn.brokers, } ) -uci:set("tunneldigger", "broker", "address", site.mesh_vpn_tunneldigger.brokers) - uci:save('tunneldigger') uci:commit('tunneldigger') @@ -36,13 +40,7 @@ uci:section('network', 'interface', 'mesh_vpn', proto = 'batadv', mesh = 'bat0', mesh_no_rebroadcast = 1, - } -) - -uci:section('network', 'device', 'mesh_vpn_dev', - { - ifname = 'mesh-vpn', - mtu = site.mesh_vpn_tunneldigger.mtu, + mtu = site.tunneldigger_mesh_vpn.mtu, } ) From 217a5f17e3bbd1d65eceb40b6afa59469efc1dc7 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sat, 10 Oct 2015 00:35:39 +0200 Subject: [PATCH 40/63] Fixed 0300-mesh-vpn.lua --- .../files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua index 066dc503..dced6fb7 100755 --- a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua +++ b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua @@ -12,11 +12,11 @@ function M.section(form) 'your connection\'s bandwidth available for the network. You can limit how ' .. 'much bandwidth the node will use at most.') local s = form:section(cbi.SimpleSection, nil, msg) - + local o - o = s:option(cbi.Flag, "_meshvpn", i18n.translate("Use internet connection (mesh VPN via L2TP")")) - o.default = uci:get_bool("tunneldigger", "broker", "enabled") and o.enabled or o.disabled + o = s:option(cbi.Flag, "_meshvpn", i18n.translate("Use internet connection (mesh VPN via L2TP)")) + o.default = uci:get_bool("tunneldigger", uci:get_first("tunneldigger", "broker"), "enabled") and o.enabled or o.disabled o.rmempty = false o = s:option(cbi.Flag, "_limit_enabled", i18n.translate("Limit bandwidth")) @@ -38,7 +38,7 @@ function M.section(form) end function M.handle(data) - uci:set("tunneldigger", "broker", "enabled", data._meshvpn) + uci:set("tunneldigger", uci:get_first("tunneldigger", "broker"), "enabled", data._meshvpn) uci:save("tunneldigger") uci:commit("tunneldigger") From 63c5772fc316a025ead9e8907c99da7fd3c90dc2 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sat, 10 Oct 2015 11:08:46 +0200 Subject: [PATCH 41/63] Changed to tunneldigger_mesh_vpn.enabled to boolean in check_site.lua --- package/gluon-mesh-vpn-tunneldigger/check_site.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/check_site.lua b/package/gluon-mesh-vpn-tunneldigger/check_site.lua index c2993a01..f779b1b1 100644 --- a/package/gluon-mesh-vpn-tunneldigger/check_site.lua +++ b/package/gluon-mesh-vpn-tunneldigger/check_site.lua @@ -1,3 +1,3 @@ need_number('tunneldigger_mesh_vpn.mtu') -need_number('tunneldigger_mesh_vpn.enabled', false) +need_boolean('tunneldigger_mesh_vpn.enabled', false) need_string_array('tunneldigger_mesh_vpn.brokers') From 8ebb23163d3658d1ae3b8e147f88ad26c3ad9ea7 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 21 Oct 2015 17:03:37 +0200 Subject: [PATCH 42/63] First commit of gluon-migrate-vpn This is a meta package which enabled tunneldigger/fastd if the opposite was active before. --- package/gluon-migrate-vpn/Makefile | 38 +++++++++++++++++++ .../files/lib/gluon/upgrade/499-migrate-vpn | 31 +++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 package/gluon-migrate-vpn/Makefile create mode 100755 package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn diff --git a/package/gluon-migrate-vpn/Makefile b/package/gluon-migrate-vpn/Makefile new file mode 100644 index 00000000..a731cf21 --- /dev/null +++ b/package/gluon-migrate-vpn/Makefile @@ -0,0 +1,38 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-migrate-vpn +PKG_VERSION:=1 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(GLUONDIR)/include/package.mk + +define Package/gluon-migrate-vpn + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Enables either fastd or tunneldigger if the opposite was active before upgrading + DEPENDS:=+gluon-core +endef + +define Package/gluon-migrate-vpn/description + Gluon community wifi mesh firmware framework: VPN service migration script +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/gluon-migrate-vpn/install + $(CP) ./files/* $(1)/ +endef + +define Package/gluon-migrate-vpn/postinst +endef + +$(eval $(call BuildPackage,gluon-migrate-vpn)) diff --git a/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn b/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn new file mode 100755 index 00000000..57da4ca3 --- /dev/null +++ b/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn @@ -0,0 +1,31 @@ +#!/usr/bin/lua + +local site = require 'gluon.site_config' +local users = require 'gluon.users' +local util = require 'gluon.util' + +local uci = require('luci.model.uci').cursor() +local lutil = require 'luci.util' + +local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') +local fastd_enabled = uci:get('fastd', 'mesh_vpn', 'enabled') + +local tunneldigger_installed = util.exec('sh' , '-c', 'opkg list-installed | grep -e \'^tunneldigger\'') +local fastd_installed = util.exec('sh' , '-c', 'opkg list-installed | grep -e \'^fastd\'') + +local enabled = 0 + +if (tonumber(tunneldigger_enable) == 1 or tonumber(fastd_enabled) == 1) then + enabled = 1 +end + +if (enabled == 1 and tunneldigger_installed == 0 and fastd_installed == 256) then + uci:set("tunneldigger", uci:get_first("tunneldigger", "broker"), "enabled", enabled) + uci:save("tunneldigger") + uci:commit("tunneldigger") +elseif (enabled == 1 and tunneldigger_installed == 256 and fastd_installed == 0) then + uci:set("fastd", "mesh_vpn", "enabled", enabled) + uci:save("fastd") + uci:commit("fastd") +end + From 84042687ab4c4791ec146acafb86f1b28b3aacc3 Mon Sep 17 00:00:00 2001 From: Cyrus Date: Thu, 22 Oct 2015 10:14:35 +0200 Subject: [PATCH 43/63] Updated tunneldigger package to newest upstream version --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 05a8fd76..5ac21ff0 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4.3 -PKG_RELEASE:=2 -PKG_REV:=42288abb57261e07491a8233fec2e0741dcb8d52 +PKG_RELEASE:=3 +PKG_REV:=4e4f13cdc630c46909d47441093a5bdaffa0d67f PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From a564386fa5f5bb608a0392f5713f9f38e96d11c5 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:49:35 +0100 Subject: [PATCH 44/63] Updated Tunneldigger packages to Gluon 2012.2 --- .../gluon-config-mode-tunneldigger/Makefile | 2 +- .../config-mode/wizard/0300-mesh-vpn.lua | 20 ++++++------ package/gluon-mesh-vpn-tunneldigger/Makefile | 2 +- .../check_site.lua | 6 ++++ .../420-mesh-vpn-tunneldigger-simple-tc | 32 +++++++++++++++++++ 5 files changed, 50 insertions(+), 12 deletions(-) create mode 100755 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc diff --git a/package/gluon-config-mode-tunneldigger/Makefile b/package/gluon-config-mode-tunneldigger/Makefile index c41e24fd..ecc75ef2 100644 --- a/package/gluon-config-mode-tunneldigger/Makefile +++ b/package/gluon-config-mode-tunneldigger/Makefile @@ -14,7 +14,7 @@ define Package/gluon-config-mode-tunneldigger SECTION:=gluon CATEGORY:=Gluon TITLE:=Toggle tunneldigger and bandwidth limit - DEPENDS:=gluon-config-mode-core-virtual +gluon-mesh-vpn-tunneldigger +gluon-simple-tc + DEPENDS:=gluon-config-mode-core-virtual +gluon-mesh-vpn-tunneldigger endef define Build/Prepare diff --git a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua index dced6fb7..5d491342 100755 --- a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua +++ b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua @@ -21,18 +21,18 @@ function M.section(form) o = s:option(cbi.Flag, "_limit_enabled", i18n.translate("Limit bandwidth")) o:depends("_meshvpn", "1") - o.default = uci:get_bool("gluon-simple-tc", "mesh_vpn", "enabled") and o.enabled or o.disabled + o.default = uci:get_bool("simple-tc", "mesh_vpn", "enabled") and o.enabled or o.disabled o.rmempty = false o = s:option(cbi.Value, "_limit_ingress", i18n.translate("Downstream (kbit/s)")) o:depends("_limit_enabled", "1") - o.value = uci:get("gluon-simple-tc", "mesh_vpn", "limit_ingress") + o.value = uci:get("simple-tc", "mesh_vpn", "limit_ingress") o.rmempty = false o.datatype = "integer" o = s:option(cbi.Value, "_limit_egress", i18n.translate("Upstream (kbit/s)")) o:depends("_limit_enabled", "1") - o.value = uci:get("gluon-simple-tc", "mesh_vpn", "limit_egress") + o.value = uci:get("simple-tc", "mesh_vpn", "limit_egress") o.rmempty = false o.datatype = "integer" end @@ -44,20 +44,20 @@ function M.handle(data) -- checks for nil needed due to o:depends(...) if data._limit_enabled ~= nil then - uci:set("gluon-simple-tc", "mesh_vpn", "interface") - uci:set("gluon-simple-tc", "mesh_vpn", "enabled", data._limit_enabled) - uci:set("gluon-simple-tc", "mesh_vpn", "ifname", "mesh-vpn") + uci:set("simple-tc", "mesh_vpn", "interface") + uci:set("simple-tc", "mesh_vpn", "enabled", data._limit_enabled) + uci:set("simple-tc", "mesh_vpn", "ifname", "mesh-vpn") if data._limit_ingress ~= nil then - uci:set("gluon-simple-tc", "mesh_vpn", "limit_ingress", data._limit_ingress) + uci:set("simple-tc", "mesh_vpn", "limit_ingress", data._limit_ingress) end if data._limit_egress ~= nil then - uci:set("gluon-simple-tc", "mesh_vpn", "limit_egress", data._limit_egress) + uci:set("simple-tc", "mesh_vpn", "limit_egress", data._limit_egress) end - uci:commit("gluon-simple-tc") - uci:commit("gluon-simple-tc") + uci:commit("simple-tc") + uci:commit("simple-tc") end end diff --git a/package/gluon-mesh-vpn-tunneldigger/Makefile b/package/gluon-mesh-vpn-tunneldigger/Makefile index b4c2bf08..bc99337e 100644 --- a/package/gluon-mesh-vpn-tunneldigger/Makefile +++ b/package/gluon-mesh-vpn-tunneldigger/Makefile @@ -11,7 +11,7 @@ define Package/gluon-mesh-vpn-tunneldigger SECTION:=gluon CATEGORY:=Gluon TITLE:=Support for connecting batman-adv meshes via tunneltigger/l2tpv3 pseudowire - DEPENDS:=+gluon-core gluon-mesh-batman-adv +gluon-wan-dnsmasq +tunneldigger +iptables-mod-extra + DEPENDS:=+gluon-core gluon-mesh-batman-adv +gluon-wan-dnsmasq +tunneldigger +iptables-mod-extra +simple-tc endef define Package/gluon-mesh-vpn-tunneldigger/description diff --git a/package/gluon-mesh-vpn-tunneldigger/check_site.lua b/package/gluon-mesh-vpn-tunneldigger/check_site.lua index f779b1b1..b0d2abd4 100644 --- a/package/gluon-mesh-vpn-tunneldigger/check_site.lua +++ b/package/gluon-mesh-vpn-tunneldigger/check_site.lua @@ -1,3 +1,9 @@ need_number('tunneldigger_mesh_vpn.mtu') need_boolean('tunneldigger_mesh_vpn.enabled', false) need_string_array('tunneldigger_mesh_vpn.brokers') + +if need_table('tunneldigger_mesh_vpn.bandwidth_limit', nil, false) then + need_boolean('tunneldigger_mesh_vpn.bandwidth_limit.enabled', false) + need_number('tunneldigger_mesh_vpn.bandwidth_limit.ingress', false) + need_number('tunneldigger_mesh_vpn.bandwidth_limit.egress', false) +end diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc new file mode 100755 index 00000000..a7bff79c --- /dev/null +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc @@ -0,0 +1,32 @@ +#!/usr/bin/lua + +local site = require 'gluon.site_config' +local uci = require('luci.model.uci').cursor() +local fs = require 'nixio.fs' + + +if fs.access('/etc/config/gluon-simple-tc') then + os.rename('/etc/config/gluon-simple-tc', '/etc/config/simple-tc') +end + + +if not uci:get('simple-tc', 'mesh_vpn') then + local config = { + ifname = 'mesh-vpn', + enabled = 0, + } + + + if site.tunneldigger_mesh_vpn.bandwidth_limit then + if site.tunneldigger_mesh_vpn.bandwidth_limit.enabled then + config.enabled = 1 + end + + config.limit_ingress = site.tunneldigger_mesh_vpn.bandwidth_limit.ingress + config.limit_egress = site.tunneldigger_mesh_vpn.bandwidth_limit.egress + end + + uci:section('simple-tc', 'interface', 'mesh_vpn', config) + uci:save('simple-tc') + uci:commit('simple-tc') +end \ No newline at end of file From 6fa528d0499f5d5f7fff400015b7c81e4f66788e Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:49:53 +0100 Subject: [PATCH 45/63] Fixed nodeinfo script for tunneldigger --- .../lib/gluon/announce/nodeinfo.d/software/tunneldigger | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger index 6cf1040b..d5e2fb45 100644 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger @@ -1,3 +1,8 @@ return { - enabled = uci:get_bool('tunneldigger', 'broker', 'enabled'), + local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') + if (tonumber(tunneldigger_enable) == 1) then + enabled = true + else + enabled = false + end } From 625793e39212509342bfa8a35a683c8e3ec8064c Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:55:00 +0100 Subject: [PATCH 46/63] Fixed bad EOF --- .../files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc index a7bff79c..35c43e28 100755 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/420-mesh-vpn-tunneldigger-simple-tc @@ -29,4 +29,4 @@ if not uci:get('simple-tc', 'mesh_vpn') then uci:section('simple-tc', 'interface', 'mesh_vpn', config) uci:save('simple-tc') uci:commit('simple-tc') -end \ No newline at end of file +end From 6f2971a27b6371778b22ead2336ec2bd12855045 Mon Sep 17 00:00:00 2001 From: Cyrus Date: Wed, 2 Dec 2015 16:56:30 +0100 Subject: [PATCH 47/63] Updated makefile to build newest client --- package/tunneldigger/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 5ac21ff0..04d94b92 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4.3 -PKG_RELEASE:=3 -PKG_REV:=4e4f13cdc630c46909d47441093a5bdaffa0d67f +PKG_VERSION:=0.4.4 +PKG_RELEASE:=2 +PKG_REV:=909656ed7908c51b7f42844ba26e3a41ac7ab8bb PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From 7b3c91a6e4a2dbc8db0e458c294c8b380f480448 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 14 Dec 2015 00:23:03 +0100 Subject: [PATCH 48/63] Added support for tunneldigger usage based broker selection --- .../lib/gluon/upgrade/400-mesh-vpn-tunneldigger | 1 + package/tunneldigger/Makefile | 8 ++++---- package/tunneldigger/files/config.default | 1 + package/tunneldigger/files/tunneldigger.init | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger index 7d027b3f..6e930bea 100755 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger @@ -27,6 +27,7 @@ uci:section('tunneldigger', 'broker', section, interface = 'mesh-vpn', bind_interface = 'br-wan', group = 'gluon-tunneldigger', + broker_selection = 'usage', address = site.tunneldigger_mesh_vpn.brokers, } ) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 04d94b92..92bcb3a2 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4.4 -PKG_RELEASE:=2 -PKG_REV:=909656ed7908c51b7f42844ba26e3a41ac7ab8bb +PKG_VERSION:=0.4.5 +PKG_RELEASE:=1 +PKG_REV:=f820d65e57098094231083c2e83ed4983d2be049 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git +PKG_SOURCE_URL:=git://github.com/ffrl/tunneldigger.git PKG_SOURCE_PROTO:=git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_VERSION:=$(PKG_REV) diff --git a/package/tunneldigger/files/config.default b/package/tunneldigger/files/config.default index 307c1b9a..f269704e 100644 --- a/package/tunneldigger/files/config.default +++ b/package/tunneldigger/files/config.default @@ -6,4 +6,5 @@ config broker option group 'root' option interface 'l2tp0' option limit_bw_down '1024' + option broker_selection 'usage' option enabled '0' diff --git a/package/tunneldigger/files/tunneldigger.init b/package/tunneldigger/files/tunneldigger.init index 2cfcb74c..09d08cf3 100755 --- a/package/tunneldigger/files/tunneldigger.init +++ b/package/tunneldigger/files/tunneldigger.init @@ -24,6 +24,7 @@ config_cb() { config_get limit_bw_down "$cfg" limit_bw_down config_get hook_script "$cfg" hook_script config_get bind_interface "$cfg" bind_interface + config_get broker_selection "$cfg" broker_selection [ $enabled -eq 0 ] && return @@ -40,6 +41,20 @@ config_cb() { network_get_device _bind_interface "${bind_interface}" || _bind_interface="${bind_interface}" append broker_opts "-I ${_bind_interface}" } + [ ! -z "${broker_selection}" ] && { + # Set broker selection. + case "${broker_selection}" in + usage) + append broker_opts "-a" + ;; + first) + append broker_opts "-g" + ;; + random) + append broker_opts "-r" + ;; + esac + } if [ -z "$uuid" ]; then missing uuid From 2f7a1fde41887731faaea9865739d06fef9850f0 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 30 Dec 2015 04:01:36 +0100 Subject: [PATCH 49/63] Fixed gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger --- .../announce/nodeinfo.d/software/tunneldigger | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger index d5e2fb45..ef251cc3 100644 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger @@ -1,8 +1,7 @@ -return { - local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') - if (tonumber(tunneldigger_enable) == 1) then - enabled = true - else - enabled = false - end -} +local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') + +if (tonumber(tunneldigger_enabled) == 1) then + return { enabled = true } +else + retirm { enabled = false } +end From 894905cc5c0f081acb9383b0256afec3a53a7cbc Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 30 Dec 2015 14:38:40 +0100 Subject: [PATCH 50/63] Fixed typo in gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger --- .../files/lib/gluon/announce/nodeinfo.d/software/tunneldigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger index ef251cc3..7fb5cfe8 100644 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger @@ -3,5 +3,5 @@ local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') if (tonumber(tunneldigger_enabled) == 1) then return { enabled = true } else - retirm { enabled = false } + return { enabled = false } end From f9c99c05cf133043e8362f7c80a761578f2884c1 Mon Sep 17 00:00:00 2001 From: paulinsche Date: Tue, 19 Jan 2016 15:01:58 +0100 Subject: [PATCH 51/63] typo in 499-migrate-vpn Migration from tunneldigger to fastd currently failing. --- .../gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn b/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn index 57da4ca3..24e8e315 100755 --- a/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn +++ b/package/gluon-migrate-vpn/files/lib/gluon/upgrade/499-migrate-vpn @@ -15,7 +15,7 @@ local fastd_installed = util.exec('sh' , '-c', 'opkg list-installed | grep -e \' local enabled = 0 -if (tonumber(tunneldigger_enable) == 1 or tonumber(fastd_enabled) == 1) then +if (tonumber(tunneldigger_enabled) == 1 or tonumber(fastd_enabled) == 1) then enabled = 1 end From ab241446dbec8759eff0d2c413ad65136b8a28cd Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 25 Jan 2016 00:30:40 +0100 Subject: [PATCH 52/63] Added gluon-tunneldigger-watchdog --- package/gluon-tunneldigger-watchdog/Makefile | 38 +++++++++++++++++++ .../files/usr/bin/tunneldigger-watchdog | 7 ++++ .../usr/lib/micrond/tunneldigger-watchdog | 1 + 3 files changed, 46 insertions(+) create mode 100644 package/gluon-tunneldigger-watchdog/Makefile create mode 100755 package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog create mode 100644 package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog diff --git a/package/gluon-tunneldigger-watchdog/Makefile b/package/gluon-tunneldigger-watchdog/Makefile new file mode 100644 index 00000000..2feb391e --- /dev/null +++ b/package/gluon-tunneldigger-watchdog/Makefile @@ -0,0 +1,38 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-tunneldigger-watchdog +PKG_VERSION:=3 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(GLUONDIR)/include/package.mk + +define Package/gluon-tunneldigger-watchdog + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Automatically restarts tunneldigger if the client crashed + DEPENDS:=gluon-tunneldigger +endef + +define Package/gluon-tunneldigger-watchdog/description + Gluon community wifi mesh firmware framework: tunneldigger watchdog +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/gluon-tunneldigger-watchdog/install + $(CP) ./files/* $(1)/ +endef + +define Package/gluon-tunneldigger-watchdog/postinst +endef + +$(eval $(call BuildPackage,gluon-tunneldigger-watchdog)) diff --git a/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog new file mode 100755 index 00000000..18b6fa56 --- /dev/null +++ b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog @@ -0,0 +1,7 @@ +#!/bin/sh +PIDFILE=/var/run/tunneldigger.mesh-vpn.pid + +if [ "$(pgrep tunneldigger)" != "$(cat $PIDFILE)" ] && [ "$(uci get tunneldigger.@broker[0].enabled)" == "1" ]; then + /etc/init.d/tunneldigger restart + logger -t tunneldiger-watchdog "Restarted Tunneldigger" +fi diff --git a/package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog b/package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog new file mode 100644 index 00000000..c4ae3bc6 --- /dev/null +++ b/package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog @@ -0,0 +1 @@ +*/5 * * * * /usr/bin/tunneldigger-watchdog From d01fdcec0204dca0a1b8f209e02f5b5a4fbbc1fa Mon Sep 17 00:00:00 2001 From: Linus Broich Date: Mon, 25 Jan 2016 10:21:31 +0100 Subject: [PATCH 53/63] Fixed wrong package dependency for gluon-tunneldigger-watchdog --- package/gluon-tunneldigger-watchdog/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-tunneldigger-watchdog/Makefile b/package/gluon-tunneldigger-watchdog/Makefile index 2feb391e..c88d86e2 100644 --- a/package/gluon-tunneldigger-watchdog/Makefile +++ b/package/gluon-tunneldigger-watchdog/Makefile @@ -11,7 +11,7 @@ define Package/gluon-tunneldigger-watchdog SECTION:=gluon CATEGORY:=Gluon TITLE:=Automatically restarts tunneldigger if the client crashed - DEPENDS:=gluon-tunneldigger + DEPENDS:=+gluon-mesh-vpn-tunneldigger endef define Package/gluon-tunneldigger-watchdog/description From fefe847525c824edc0cc9a67b178c641afd923f8 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sun, 7 Feb 2016 19:58:52 +0100 Subject: [PATCH 54/63] Added new neighbor check to tunneldigger-watchdog --- .../files/usr/bin/tunneldigger-watchdog | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog index 18b6fa56..efa2ea9f 100755 --- a/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog +++ b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog @@ -1,7 +1,12 @@ #!/bin/sh PIDFILE=/var/run/tunneldigger.mesh-vpn.pid -if [ "$(pgrep tunneldigger)" != "$(cat $PIDFILE)" ] && [ "$(uci get tunneldigger.@broker[0].enabled)" == "1" ]; then - /etc/init.d/tunneldigger restart - logger -t tunneldiger-watchdog "Restarted Tunneldigger" +if [ "$(uci get tunneldigger.@broker[0].enabled)" == "1" ]; then + if [ "$(pgrep tunneldigger)" != "$(cat $PIDFILE)" ]; then + /etc/init.d/tunneldigger restart + logger -t tunneldiger-watchdog "Daemon not running, restarted tunneldigger." + elif [ "$(batctl o |grep mesh-vpn |wc -l)" == "0" ]; then + /etc/init.d/tunneldigger restart + logger -t tunneldiger-watchdog "No neighbours on mesh-vpn interface, restarted tunneldigger." + fi fi From dd78428330531cbdc18472e81ffdc7a2ea60340d Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sun, 3 Apr 2016 19:08:53 +0200 Subject: [PATCH 55/63] Fixed simple-tc config saving for gluon-config-mode-tunneldigger --- .../files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua index 5d491342..a8d63f79 100755 --- a/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua +++ b/package/gluon-config-mode-tunneldigger/files/lib/gluon/config-mode/wizard/0300-mesh-vpn.lua @@ -56,7 +56,7 @@ function M.handle(data) uci:set("simple-tc", "mesh_vpn", "limit_egress", data._limit_egress) end - uci:commit("simple-tc") + uci:save("simple-tc") uci:commit("simple-tc") end end From 3403bc2d548d15822e1feb92ee837e1f1d95c9a6 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sat, 30 Apr 2016 16:50:34 +0200 Subject: [PATCH 56/63] Updated to newest tunneldigger client version --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 92bcb3a2..1517acc7 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4.5 -PKG_RELEASE:=1 -PKG_REV:=f820d65e57098094231083c2e83ed4983d2be049 +PKG_RELEASE:=2 +PKG_REV:=32c97bbf1729df339eb846b6583d49162ca7c799 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/ffrl/tunneldigger.git From 7e4bc8e743f5da12ea1c996854e9fe192151221f Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 2 May 2016 00:23:55 +0200 Subject: [PATCH 57/63] Updated to newest tunneldigger client version --- package/tunneldigger/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 1517acc7..177bd405 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -2,8 +2,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger PKG_VERSION:=0.4.5 -PKG_RELEASE:=2 -PKG_REV:=32c97bbf1729df339eb846b6583d49162ca7c799 +PKG_RELEASE:=3 +PKG_REV:=8788ea702d6afbf430596c6fd9a6da55bb5bcb25 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/ffrl/tunneldigger.git From a4530514c005c36f1fcfec03960e99bb0b6dbc74 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Mon, 9 May 2016 13:29:07 +0200 Subject: [PATCH 58/63] Fixed wrong folder name for tunneldigger-watchdog --- .../files/usr/lib/{micrond => micron.d}/tunneldigger-watchdog | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename package/gluon-tunneldigger-watchdog/files/usr/lib/{micrond => micron.d}/tunneldigger-watchdog (100%) diff --git a/package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog b/package/gluon-tunneldigger-watchdog/files/usr/lib/micron.d/tunneldigger-watchdog similarity index 100% rename from package/gluon-tunneldigger-watchdog/files/usr/lib/micrond/tunneldigger-watchdog rename to package/gluon-tunneldigger-watchdog/files/usr/lib/micron.d/tunneldigger-watchdog From 1ce92ac6197a6708a62bf6222473745ffeb6e719 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Fri, 24 Jun 2016 10:49:06 +0200 Subject: [PATCH 59/63] Fixed broken activation of tunneldigger via site.conf --- .../files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger index 6e930bea..462562d5 100755 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger +++ b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger @@ -11,7 +11,7 @@ local lutil = require 'luci.util' users.add_group('gluon-tunneldigger', 900) local enabled = uci:get_first('tunneldigger', 'broker', 'enabled') -if not enabled then +if (tonumber(enabled) == 0) then enabled = site.tunneldigger_mesh_vpn.enabled and 1 or 0 end From 22f81695ca500f159a921c7cbd11d1d364c27344 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Fri, 1 Jul 2016 14:06:00 +0200 Subject: [PATCH 60/63] Switched tunneldigger source URL to wlanslovenija git repo --- package/tunneldigger/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 177bd405..3f81513d 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -6,7 +6,7 @@ PKG_RELEASE:=3 PKG_REV:=8788ea702d6afbf430596c6fd9a6da55bb5bcb25 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL:=git://github.com/ffrl/tunneldigger.git +PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git PKG_SOURCE_PROTO:=git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_VERSION:=$(PKG_REV) From a24271b518f4c3cd303d6cf6f2224552cafb519a Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Mon, 4 Jul 2016 11:47:34 +0200 Subject: [PATCH 61/63] Incremented version number for tunneldigger --- package/tunneldigger/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/tunneldigger/Makefile b/package/tunneldigger/Makefile index 3f81513d..a57873d3 100644 --- a/package/tunneldigger/Makefile +++ b/package/tunneldigger/Makefile @@ -1,9 +1,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tunneldigger -PKG_VERSION:=0.4.5 -PKG_RELEASE:=3 -PKG_REV:=8788ea702d6afbf430596c6fd9a6da55bb5bcb25 +PKG_VERSION:=0.4.7 +PKG_RELEASE:=1 +PKG_REV:=7cc92020cbafe5be2b24eb6bc943a65f151c2a18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=git://github.com/wlanslovenija/tunneldigger.git From 254c5d2b2fa358118375846e8ca19b9a3dbe0595 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Mon, 4 Jul 2016 16:20:25 +0200 Subject: [PATCH 62/63] Fixed bug in tunneldigger-watchdog which caused constant restarting of tunneldigger --- .../files/usr/bin/tunneldigger-watchdog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog index efa2ea9f..8b26212f 100755 --- a/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog +++ b/package/gluon-tunneldigger-watchdog/files/usr/bin/tunneldigger-watchdog @@ -2,7 +2,7 @@ PIDFILE=/var/run/tunneldigger.mesh-vpn.pid if [ "$(uci get tunneldigger.@broker[0].enabled)" == "1" ]; then - if [ "$(pgrep tunneldigger)" != "$(cat $PIDFILE)" ]; then + if [ "$(pgrep tunneldigger | head -n 1)" != "$(cat $PIDFILE)" ]; then /etc/init.d/tunneldigger restart logger -t tunneldiger-watchdog "Daemon not running, restarted tunneldigger." elif [ "$(batctl o |grep mesh-vpn |wc -l)" == "0" ]; then From bdd6d240a5fe85eef805488c93f901b7c2eccc19 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Fri, 25 Nov 2016 11:38:44 +0100 Subject: [PATCH 63/63] gluon-mesh-vpn-tunneldigger: Removed old announce.d scripts --- .../lib/gluon/announce/nodeinfo.d/software/tunneldigger | 7 ------- .../files/lib/gluon/announce/statistics.d/mesh_vpn | 7 ------- 2 files changed, 14 deletions(-) delete mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger delete mode 100644 package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger deleted file mode 100644 index 7fb5cfe8..00000000 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/nodeinfo.d/software/tunneldigger +++ /dev/null @@ -1,7 +0,0 @@ -local tunneldigger_enabled = uci:get_first('tunneldigger', 'broker', 'enabled') - -if (tonumber(tunneldigger_enabled) == 1) then - return { enabled = true } -else - return { enabled = false } -end diff --git a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn b/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn deleted file mode 100644 index 1765175a..00000000 --- a/package/gluon-mesh-vpn-tunneldigger/files/lib/gluon/announce/statistics.d/mesh_vpn +++ /dev/null @@ -1,7 +0,0 @@ -local json = require 'luci.json' -local ltn12 = require 'luci.ltn12' -local nixio = require 'nixio' -local site = require 'gluon.site_config' -local uci = require('luci.model.uci').cursor() - -return nil