# 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:=vpnbypass
|
|
PKG_VERSION:=1.3.1
|
|
PKG_RELEASE:=2
|
|
PKG_LICENSE:=GPL-3.0-or-later
|
|
PKG_MAINTAINER:=Stan Grishin <stangri@melmac.net>
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/vpnbypass
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
DEPENDS:=+ipset +iptables
|
|
CONFLICTS:=vpn-policy-routing
|
|
TITLE:=VPN Bypass Service
|
|
PKGARCH:=all
|
|
endef
|
|
|
|
define Package/vpnbypass/description
|
|
This service can be used to enable simple VPN split tunnelling.
|
|
Supports accessing domains, IP ranges outside of your VPN tunnel.
|
|
Also supports dedicating local ports/IP ranges for direct
|
|
internet access (outside of your VPN tunnel).
|
|
Please see the README for further information.
|
|
endef
|
|
|
|
define Package/vpnbypass/conffiles
|
|
/etc/config/vpnbypass
|
|
endef
|
|
|
|
define Build/Prepare
|
|
mkdir -p $(PKG_BUILD_DIR)/files/
|
|
$(CP) ./files/vpnbypass.init $(PKG_BUILD_DIR)/files/vpnbypass.init
|
|
sed -i "s|^\(PKG_VERSION\).*|\1='$(PKG_VERSION)-$(PKG_RELEASE)'|" $(PKG_BUILD_DIR)/files/vpnbypass.init
|
|
endef
|
|
|
|
define Build/Configure
|
|
endef
|
|
|
|
define Build/Compile
|
|
endef
|
|
|
|
define Package/vpnbypass/install
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/vpnbypass.init $(1)/etc/init.d/vpnbypass
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/vpnbypass.conf $(1)/etc/config/vpnbypass
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/firewall
|
|
$(INSTALL_DATA) ./files/vpnbypass.hotplug $(1)/etc/hotplug.d/firewall/94-vpnbypass
|
|
endef
|
|
|
|
|
|
define Package/$(PKG_NAME)/postinst
|
|
#!/bin/sh
|
|
# check if we are on real system
|
|
if [ -z "$${IPKG_INSTROOT}" ]; then
|
|
while [ ! -z "$(uci -q get ucitrack.@vpnbypass[-1] 2>/dev/null)" ] ; do
|
|
uci -q delete ucitrack.@vpnbypass[-1]
|
|
done
|
|
|
|
while [ ! -z "$(uci -q get ucitrack.@firewall[-1].affects 2>/dev/null | awk '/vpnbypass/')" ] ; do
|
|
uci -q del_list ucitrack.@firewall[-1].affects='vpnbypass'
|
|
done
|
|
|
|
uci -q batch <<-EOF >/dev/null
|
|
add ucitrack vpnbypass
|
|
set ucitrack.@vpnbypass[-1].init='vpnbypass'
|
|
add_list ucitrack.@firewall[-1].affects='vpnbypass'
|
|
commit ucitrack
|
|
EOF
|
|
fi
|
|
exit 0
|
|
endef
|
|
|
|
define Package/$(PKG_NAME)/prerm
|
|
#!/bin/sh
|
|
# check if we are on real system
|
|
if [ -z "$${IPKG_INSTROOT}" ]; then
|
|
echo "Stopping service and removing rc.d symlink for vpnbypass"
|
|
/etc/init.d/vpnbypass stop || true
|
|
/etc/init.d/vpnbypass disable
|
|
|
|
while [ ! -z "$(uci -q get ucitrack.@vpnbypass[-1] 2>/dev/null)" ] ; do
|
|
uci -q delete ucitrack.@vpnbypass[-1]
|
|
done
|
|
|
|
while [ ! -z "$(uci -q get ucitrack.@firewall[-1].affects 2>/dev/null | awk '/vpnbypass/')" ] ; do
|
|
uci -q del_list ucitrack.@firewall[-1].affects='vpnbypass'
|
|
done
|
|
fi
|
|
exit 0
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,vpnbypass))
|