diff options
Diffstat (limited to 'debian/postinst')
-rw-r--r-- | debian/postinst | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..648e671 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,69 @@ +#!/bin/sh +# Copyright 2001 Alberto Gonzalez Iniesta <agi@agi.as> +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. +# +set -e +test $DEBIAN_SCRIPT_DEBUG && set -v -x + +# use debconf +. /usr/share/debconf/confmodule + +# +# POSIX-compliant shell function +# to check for the existence of a command +# Return 0 if found +# +pathfind() { + OLDIFS="$IFS" + IFS=: + for p in $PATH; do + if [ -x "$p/$*" ]; then + IFS="$OLDIFS" + return 0 + fi + done + IFS="$OLDIFS" + return 1 +} + + +case "$1" in + configure) + db_get openvpn/create_tun || RET="false" + if [ "$RET" = "true" ]; then + [ -e /dev/net ] || mkdir -m 755 /dev/net + [ -d /dev/net -a ! -e /dev/net/tun ] && mknod /dev/net/tun c 10 200 + fi + # move /run/openvpn.foo.pid to (subdir) /run/openvpn/foo.pid + if [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.3.2-6 ; then + mkdir -p /run/openvpn + for f in $(ls /var/run/openvpn.*.pid /var/run/openvpn.*.status 2>/dev/null); do + mv "$f" "/run/openvpn/$(basename $f | sed 's/^openvpn\.//')" + done + fi + for f in /run/sendsigs.omit.d/openvpn.*.pid; do + [ -e "$f" ] && continue + b="$(basename $f|sed 's/openvpn\.//')" + # make sure is a vpn name, not *.pid (#730679) + echo "$b" | grep -q '\*' && continue + ln -sf "/run/openvpn/$b" "/run/sendsigs.omit.d/openvpn.$b" + done + ;; +esac + +if [ -x "/etc/init.d/openvpn" ]; then + pathfind invoke-rc.d + if [ $? = 0 ]; then + invoke-rc.d openvpn cond-restart || invoke-rc.d openvpn restart + else + /etc/init.d/openvpn cond-restart || /etc/init.d/openvpn restart + fi +fi + +db_stop + +#DEBHELPER# + +exit 0 +# vim:set ai et sts=2 sw=2 tw=0: |