summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStan Grishin <stangri@melmac.net>2017-01-26 14:54:48 -0800
committerStan Grishin <stangri@melmac.net>2017-01-26 14:54:48 -0800
commitc9c76a136af2c7a1936655e667b9949862dc4842 (patch)
tree4176cc0634812b8923d02227515f349ddd3648be
parenta7c5c018b6782f4160410981c723c82db9762ff7 (diff)
luci-app-vpnbypass: initial commit of companion app to vpnbypass package
Signed-off-by: Stan Grishin <stangri@melmac.net>
-rw-r--r--applications/luci-app-vpnbypass/Makefile44
-rw-r--r--applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua8
-rw-r--r--applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua35
-rw-r--r--applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass11
4 files changed, 98 insertions, 0 deletions
diff --git a/applications/luci-app-vpnbypass/Makefile b/applications/luci-app-vpnbypass/Makefile
new file mode 100644
index 000000000..58b3d30d9
--- /dev/null
+++ b/applications/luci-app-vpnbypass/Makefile
@@ -0,0 +1,44 @@
+# Copyright (c) 2017 Stan Grishin (stangri@melmac.net)
+# This is free software, licensed under the GNU General Public License v3.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=luci-app-vpnbypass
+PKG_VERSION:=1.0.0
+PKG_RELEASE:=3
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/luci-app-vpnbypass
+ SECTION:=luci
+ CATEGORY:=LuCI
+ SUBMENU:=3. Applications
+ TITLE:=VPN Bypass Web UI
+ DEPENDS:=+luci-mod-admin-full +vpnbypass
+ PKGARCH:=all
+endef
+
+define Package/luci-app-vpnbypass/description
+ This package will install VPN Bypass Web UI.
+endef
+
+define Build/Prepare
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/luci-app-vpnbypass/install
+ $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
+ $(INSTALL_BIN) ./luasrc/controller/vpnbypass.lua $(1)/usr/lib/lua/luci/controller/vpnbypass.lua
+ $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/
+ $(INSTALL_BIN) ./luasrc/model/cbi/vpnbypass.lua $(1)/usr/lib/lua/luci/model/cbi/vpnbypass.lua
+endef
+
+$(eval $(call BuildPackage,luci-app-vpnbypass)) \ No newline at end of file
diff --git a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
new file mode 100644
index 000000000..6becd6791
--- /dev/null
+++ b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua
@@ -0,0 +1,8 @@
+module("luci.controller.vpnbypass", package.seeall)
+function index()
+ if not nixio.fs.access("/etc/config/vpnbypass") then
+ return
+ end
+ entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), translate("VPN Bypass"), 1)
+end
+
diff --git a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
new file mode 100644
index 000000000..195794838
--- /dev/null
+++ b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua
@@ -0,0 +1,35 @@
+m = Map("vpnbypass", translate("VPN Bypass Settings"), translate("Configuration of VPN Bypass Settings"))
+s = m:section(NamedSection, "config", "vpnbypass")
+
+-- General options
+o1 = s:option(Flag, "enabled", translate("Enable VPN Bypass"))
+o1.rmempty = false
+o1.default = 0
+
+-- Local Ports
+p1 = s:option(DynamicList, "localport", translate("Local Ports to Bypass"), translate("Local ports to trigger VPN Bypass"))
+p1.addremove = true
+p1.optional = true
+
+-- Remote Ports
+p2 = s:option(DynamicList, "remoteport", translate("Remote Ports to Bypass"), translate("Remote ports to trigger VPN Bypass"))
+p2.addremove = true
+p2.optional = true
+
+-- Local Subnets
+r1 = s:option(DynamicList, "localsubnet", translate("Local IP Subnets to Bypass"), translate("Local IP ranges with direct internet access (outside of the VPN tunnel)"))
+r1.addremove = true
+r1.optional = true
+
+-- Remote Subnets
+r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Subnets to Bypass"), translate("Remote IP ranges which will be accessed directly (outside of the VPN tunnel)"))
+r2.addremove = true
+r2.optional = true
+
+-- Domains
+d1 = s:option(DynamicList, "domain", translate("Domains to Bypass"), translate("Domains which will be accessed directly (outside of the VPN tunnel)"))
+d1.addremove = true
+d1.optional = true
+
+return m
+
diff --git a/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass
new file mode 100644
index 000000000..9455701a0
--- /dev/null
+++ b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass
@@ -0,0 +1,11 @@
+#!/bin/sh
+uci -q batch <<-EOF >/dev/null
+ delete ucitrack.@vpnbypass[-1]
+ add ucitrack vpnbypass
+ set ucitrack.@vpnbypass[-1].init=vpnbypass
+ commit ucitrack
+EOF
+
+rm -f /tmp/luci-indexcache
+exit 0
+