From 155ac756acc4e38188893f57ce30bde021b68c46 Mon Sep 17 00:00:00 2001 From: Jernej Kos Date: Tue, 5 Jun 2012 11:05:37 +0200 Subject: [PATCH 01/25] Preliminary version of tunneldigger OpenWrt package. From 4958a7fba9d6305a03d22c9cc98344ad6062f561 Mon Sep 17 00:00:00 2001 From: Stefan Laudemann Date: Mon, 2 Mar 2015 06:42:06 +0100 Subject: [PATCH 02/25] 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 119ac32540f255afb6f6af99195e78dc04294669 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 00:11:04 +0200 Subject: [PATCH 03/25] 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 04/25] 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 31f06f4956b5dc08adc4a0b336535eaba485722a Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 10:51:39 +0200 Subject: [PATCH 05/25] 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 e7c6d4383e06e8c75d689d440138a92d490428f5 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 11:38:14 +0200 Subject: [PATCH 06/25] 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 06d1e860e920d71048a6e560039bc79c790d650f Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 9 Oct 2015 14:14:32 +0200 Subject: [PATCH 07/25] 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 038db1a4348dcb510a6996207584ccef60ddfa36 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sat, 10 Oct 2015 00:35:39 +0200 Subject: [PATCH 08/25] 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 7b2474f327742eb82b9b8118dbe93d84a33d2c47 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sat, 10 Oct 2015 11:08:46 +0200 Subject: [PATCH 09/25] 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 ad97a52a7f323b43d1cb27c631562485ff1fe819 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 21 Oct 2015 17:03:37 +0200 Subject: [PATCH 10/25] 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 08b968829d1d0f480366917735208952c5498bb3 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:49:35 +0100 Subject: [PATCH 11/25] 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 25a60013b18c12072d2fffb910a5ac6172f3f0ed Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:49:53 +0100 Subject: [PATCH 12/25] 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 9429e78411c296e00dbcc539d72c3502d6fc49d7 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Fri, 27 Nov 2015 01:55:00 +0100 Subject: [PATCH 13/25] 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 2c02e662ad5d173eb36dfaa84a31e97af9fd581e Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 14 Dec 2015 00:23:03 +0100 Subject: [PATCH 14/25] Added support for tunneldigger usage based broker selection --- .../files/lib/gluon/upgrade/400-mesh-vpn-tunneldigger | 1 + 1 file changed, 1 insertion(+) 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, } ) From a140dd1b334b90793f38cb97d61af92feb1c6dcd Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 30 Dec 2015 04:01:36 +0100 Subject: [PATCH 15/25] 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 7a6bfde6f1828054d409e541629cf1e94d621e13 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Wed, 30 Dec 2015 14:38:40 +0100 Subject: [PATCH 16/25] 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 44bd2b729ec9ee7e2f13dd484298c774ff29b2a4 Mon Sep 17 00:00:00 2001 From: paulinsche Date: Tue, 19 Jan 2016 15:01:58 +0100 Subject: [PATCH 17/25] 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 99c25dd974022fe0a7e3be0f25226ab47d467a31 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Mon, 25 Jan 2016 00:30:40 +0100 Subject: [PATCH 18/25] 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 780d8a0f1617181577d751c11daa5060f45761de Mon Sep 17 00:00:00 2001 From: Linus Broich Date: Mon, 25 Jan 2016 10:21:31 +0100 Subject: [PATCH 19/25] 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 eb72cd2eb2193bfdaacad4b17b7ddeadf2d17937 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sun, 7 Feb 2016 19:58:52 +0100 Subject: [PATCH 20/25] 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 de564ba60bf87c5a4305e795dbee32e0a0d8ec36 Mon Sep 17 00:00:00 2001 From: CyrusFox Date: Sun, 3 Apr 2016 19:08:53 +0200 Subject: [PATCH 21/25] 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 e3a6291ad934e42196b445bdd84b8582398b6eef Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Mon, 9 May 2016 13:29:07 +0200 Subject: [PATCH 22/25] 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 70013e9315add4965754cdb3e888ab00e6d58dd6 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Fri, 24 Jun 2016 10:49:06 +0200 Subject: [PATCH 23/25] 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 474388305792e33c7ad32c8977605f77ee0a7cae Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Mon, 4 Jul 2016 16:20:25 +0200 Subject: [PATCH 24/25] 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 eac440600990bf073578dd04be6e6eeca4641a52 Mon Sep 17 00:00:00 2001 From: Cyrus Fox Date: Fri, 25 Nov 2016 11:40:16 +0100 Subject: [PATCH 25/25] 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