summaryrefslogtreecommitdiff
path: root/debian/postinst
blob: 648e6718a9b956af91f723dd528558271b0acc1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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: