summaryrefslogtreecommitdiff
path: root/net/openvpn
diff options
context:
space:
mode:
authorjlam <jlam>2005-09-18 03:11:39 +0000
committerjlam <jlam>2005-09-18 03:11:39 +0000
commit954074f5609c488a6ddf3755d3827eb3ef0e14c8 (patch)
tree4a65f46a26a49f8f054d8d758dd5518f3e852017 /net/openvpn
parentba3a038ddad3161ea9c504650cb9a50e233619e3 (diff)
downloadpkgsrc-954074f5609c488a6ddf3755d3827eb3ef0e14c8.tar.gz
Add a "reset" action to the openvpn rc.d script which triggers a
SIGUSR1 reset of the openvpn process. This is useful for simplifying dhclient-exit-hooks hook scripts that need to tell the openvpn process to reset and re-run its "up" script. Bump the PKGREVISION of net/openvpn to 1.
Diffstat (limited to 'net/openvpn')
-rw-r--r--net/openvpn/Makefile3
-rw-r--r--net/openvpn/files/openvpn.sh32
2 files changed, 32 insertions, 3 deletions
diff --git a/net/openvpn/Makefile b/net/openvpn/Makefile
index 22ab7727f54..3d7097ebb84 100644
--- a/net/openvpn/Makefile
+++ b/net/openvpn/Makefile
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.9 2005/09/01 03:40:42 jlam Exp $
+# $NetBSD: Makefile,v 1.10 2005/09/18 03:11:39 jlam Exp $
#
DISTNAME= openvpn-2.0.2
PKGNAME= ${DISTNAME:S/_//}
+PKGREVISION= 1
CATEGORIES= net
MASTER_SITES= http://openvpn.net/release/ \
http://openvpn.net/release/old/
diff --git a/net/openvpn/files/openvpn.sh b/net/openvpn/files/openvpn.sh
index f1d55fdb08b..dfb8a5d3f2d 100644
--- a/net/openvpn/files/openvpn.sh
+++ b/net/openvpn/files/openvpn.sh
@@ -1,6 +1,6 @@
#!@RCD_SCRIPTS_SHELL@
#
-# $NetBSD: openvpn.sh,v 1.1 2005/08/17 19:55:57 jlam Exp $
+# $NetBSD: openvpn.sh,v 1.2 2005/09/18 03:11:40 jlam Exp $
#
# PROVIDE: openvpn
# REQUIRE: NETWORKING
@@ -20,6 +20,9 @@
# # a process is started for all
# # *.conf files.
#
+# The "reset" action will trigger a SIGUSR1 restart of the OpenVPN
+# process. Please read the openvpn(8) man page for more details.
+#
# For information on how to write an OpenVPN config file, please read the
# openvpn(8) man page or check the website at:
#
@@ -33,10 +36,11 @@ rcvar=$name
sysconfdir="@PKG_SYSCONFDIR@"
command="@PREFIX@/sbin/openvpn"
command_args="--cd $sysconfdir --daemon"
-extra_commands="reload"
+extra_commands="reload reset"
required_dirs="$sysconfdir"
start_cmd="openvpn_start"
+reset_cmd="openvpn_reset"
openvpn_start()
{
@@ -71,5 +75,29 @@ openvpn_start()
cd $savewd
}
+openvpn_reset()
+{
+ if [ -z "$rc_pid" ]; then
+ if [ -n "$pidfile" ]; then
+ echo 1>&2 \
+ "${name} not running? (check $pidfile)."
+ else
+ echo 1>&2 "${name} not running?"
+ fi
+ exit 1
+ fi
+ echo "Triggering SIGUSR1 restart of ${name}."
+ if ! eval $_precmd && [ -z "$rc_force" ]; then
+ return 1
+ fi
+ _doit="kill -${sig_reload:-USR1} $rc_pid"
+ if [ -n "$_user" ]; then
+ _doit="su -m $_user -c 'sh -c \"$_doit\"'"
+ fi
+ if ! eval $_doit && [ -z "$rc_force" ]; then
+ return 1
+ fi
+}
+
load_rc_config $name
run_rc_command "$1"