openvpn: fix invoking user up & down commands from hotplug wrapper
authorJo-Philipp Wich <jo@mein.io>
Sat, 27 Mar 2021 19:33:44 +0000 (20:33 +0100)
committerEtienne Champetier <champetier.etienne@gmail.com>
Thu, 1 Apr 2021 11:20:03 +0000 (07:20 -0400)
commit7f065a94bb2663d32da7424c777a580d470728a0
tree499ffb8c7bc07fbcb319fe3771794b01597d1077
parent74611b3e5a823f1ff2199d22d933bf74910f53c7
openvpn: fix invoking user up & down commands from hotplug wrapper

This commit adds a number of fixes to the OpenVPN up/down hotplug command
wrapper which currently fails to actually invoke user defined up and down
commands for uci configurations not using external native configurations.

 - Use the `--setenv` to pass the user configured `up` and `down` commands
   as `user_up` and `user_down` environment variables respectively

 - Instead of attempting to scrape the `up` and `down` settings from the
   (possibly generated) native OpenVPN configuration in
   `/etc/hotplug.d/openvpn/01-user`, read them from the respective
   environment variables instead

 - Fix parsing of native configuration values in `get_openvpn_option()`;
   first try to parse a given setting as single quoted value, then as
   double quoted and finally as non-quoted, potentially white-space
   escaped one. This ensures that `up '/bin/foo'` is interpreted as
   `/bin/foo` and not `'/bin/foo'`

Ref: https://forum.openwrt.org/t/openvpn-up-down-configuration-ignored/91126
Supersedes: #15121, #15284
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
net/openvpn/Makefile
net/openvpn/files/etc/hotplug.d/openvpn/01-user
net/openvpn/files/lib/functions/openvpn.sh
net/openvpn/files/openvpn.init