From 5facc084aa0240c61027e901e3af47febaa09e9a Mon Sep 17 00:00:00 2001 From: Aaron Goodman Date: Sun, 16 Aug 2020 00:00:05 -0400 Subject: [PATCH] openfortivpn: fix routes passed to netifd The openfortivpn routes are a bit different than the standard ppp routes so we need to handle them with a custom ppp-up script. Gateway should not be set, and src should be set to the PPP local ip address. Signed-off-by: Aaron Goodman --- net/openfortivpn/Makefile | 3 ++- net/openfortivpn/files/openfortivpn-ppp-up | 20 ++++++++++++++++++++ net/openfortivpn/files/openfortivpn.sh | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100755 net/openfortivpn/files/openfortivpn-ppp-up diff --git a/net/openfortivpn/Makefile b/net/openfortivpn/Makefile index 6b180c6b5..5b6eceae7 100644 --- a/net/openfortivpn/Makefile +++ b/net/openfortivpn/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openfortivpn PKG_VERSION:=1.14.1 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/adrienverge/openfortivpn/tar.gz/v$(PKG_VERSION)? @@ -60,6 +60,7 @@ define Package/openfortivpn/install $(INSTALL_BIN) ./files/openfortivpn-wrapper $(1)/usr/sbin/ $(INSTALL_BIN) ./files/openfortivpn.sh $(1)/lib/netifd/proto/ $(INSTALL_BIN) ./files/14-openforticlient $(1)/etc/hotplug.d/iface/ + $(INSTALL_BIN) ./files/openfortivpn-ppp-up $(1)/lib/netifd/openfortivpn-ppp-up endef $(eval $(call BuildPackage,openfortivpn)) diff --git a/net/openfortivpn/files/openfortivpn-ppp-up b/net/openfortivpn/files/openfortivpn-ppp-up new file mode 100755 index 000000000..c142190f8 --- /dev/null +++ b/net/openfortivpn/files/openfortivpn-ppp-up @@ -0,0 +1,20 @@ +#!/bin/sh +PPP_IPPARAM="$6" + +. /lib/netifd/netifd-proto.sh +proto_init_update "$IFNAME" 1 1 +proto_set_keep 1 +[ -n "$PPP_IPPARAM" ] && { + [ -n "$IPLOCAL" ] && proto_add_ipv4_address "$IPLOCAL" 32 "" "$IPREMOTE" + [ -n "$IPREMOTE" ] && proto_add_ipv4_route 0.0.0.0 0 "" "$IPLOCAL" + [ -n "$DNS1" ] && proto_add_dns_server "$DNS1" + [ -n "$DNS2" -a "$DNS1" != "$DNS2" ] && proto_add_dns_server "$DNS2" +} +proto_send_update "$PPP_IPPARAM" + +[ -d /etc/ppp/ip-up.d ] && { + for SCRIPT in /etc/ppp/ip-up.d/* + do + [ -x "$SCRIPT" ] && "$SCRIPT" "$@" + done +} diff --git a/net/openfortivpn/files/openfortivpn.sh b/net/openfortivpn/files/openfortivpn.sh index 30e7b7810..dedd56d8c 100755 --- a/net/openfortivpn/files/openfortivpn.sh +++ b/net/openfortivpn/files/openfortivpn.sh @@ -125,7 +125,7 @@ receive-all nodetach ipparam $config lcp-max-configure 40 -ip-up-script /lib/netifd/ppp-up +ip-up-script /lib/netifd/openfortivpn-ppp-up ip-down-script /lib/netifd/ppp-down mru 1354" > $callfile append_args "--pppd-call=openfortivpn/$config"