openfortivpn: fix routes passed to netifd 13139/head
authorAaron Goodman <aaronjg@stanford.edu>
Sun, 16 Aug 2020 04:00:05 +0000 (00:00 -0400)
committerAaron Goodman <aaronjg@stanford.edu>
Sat, 22 Aug 2020 17:21:14 +0000 (13:21 -0400)
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 <aaronjg@stanford.edu>
net/openfortivpn/Makefile
net/openfortivpn/files/openfortivpn-ppp-up [new file with mode: 0755]
net/openfortivpn/files/openfortivpn.sh

index 6b180c6b50aa4de7277c74e38ab92eb20699b100..5b6eceae7ad91d5c877dc4aa0e52399656eaa77b 100644 (file)
@@ -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 (executable)
index 0000000..c142190
--- /dev/null
@@ -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
+}
index 30e7b7810800906272a7e22958b6040f086e2337..dedd56d8cdbee27479354acd95c94cd2dd83d4b6 100755 (executable)
@@ -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"