Browse Source

openconnect: openconnect-wrapper: rewrite

- use exec directly to eliminate a level in the process tree
 - use "$@" instead of "$*" to pass arguments to openconnect

According to openconnect(8), openconnect will call vpnc-script to
cleanup before quit when it received SIGINT(2) and will quit immediately
when it received SIGTERM (the default signal by kill command)

Before and after the change, openconnect process will be killed first
with SIGINT sent from netifd.  This was decided by the
'proto_kill_command "$config" 2' notify call in the proto script.

SIGKILL is the only other signal that can be sent from netifd when the
process did not quit on SIGINT on time.  There should be no need to trap
on signal 1 3 6 9 (HUP QUIT ABRT KILL)

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
lilik-openwrt-22.03
Yousong Zhou 8 years ago
parent
commit
dbc36c3092
2 changed files with 2 additions and 30 deletions
  1. +1
    -1
      net/openconnect/Makefile
  2. +1
    -29
      net/openconnect/files/openconnect-wrapper

+ 1
- 1
net/openconnect/Makefile View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openconnect PKG_NAME:=openconnect
PKG_VERSION:=7.08 PKG_VERSION:=7.08
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_USE_MIPS16:=0 PKG_USE_MIPS16:=0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz


+ 1
- 29
net/openconnect/files/openconnect-wrapper View File

@ -10,32 +10,4 @@ test -z "$1" && exit 1
pwfile=$1 pwfile=$1
shift shift
pidfile=/var/run/ocwrap-$$.pid
cleanup()
{
if ! test -z "$pid";then
kill $pid
wait $pid
fi
exit 0
}
cleanup2()
{
if ! test -z "$pid";then
kill -2 $pid
wait $pid
fi
exit 0
}
trap cleanup2 2
trap cleanup 1 3 6 15
rm -f "$pidfile"
/usr/sbin/openconnect $* <$pwfile &
pid=$!
wait $pid
exec /usr/sbin/openconnect "$@" <$pwfile

Loading…
Cancel
Save