/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to network-hooks.d/openvpn

  • Committer: Teddy Hogeborn
  • Date: 2011-12-31 20:07:11 UTC
  • mfrom: (535.1.9 wireless-network-hook)
  • Revision ID: teddy@recompile.se-20111231200711-6dli3r8drftem57r
Merge new wireless network hook.  Fix bridge network hook to use
hardware addresses instead of interface names.  Implement and document
new "CONNECT" environment variable for network hooks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
#
 
3
# This is an example of a Mandos client network hook.  This hook
 
4
# brings up an OpenVPN interface as specified in a separate
 
5
# configuration file.  To be used, this file and any needed
 
6
# configuration file(s) should be copied into the
 
7
# /etc/mandos/network-hooks.d directory.
 
8
 
9
# Copying and distribution of this file, with or without modification,
 
10
# are permitted in any medium without royalty provided the copyright
 
11
# notice and this notice are preserved.  This file is offered as-is,
 
12
# without any warranty.
 
13
 
 
14
set -e
 
15
 
 
16
CONFIG="openvpn.conf"
 
17
 
 
18
# Extract the "dev" setting from the config file
 
19
VPNDEVICE=`sed -n -e 's/[[:space:]]#.*//' \
 
20
    -e 's/^[[:space:]]*dev[[:space:]]\+//p' \
 
21
    "$MANDOSNETHOOKDIR/$CONFIG"`
 
22
 
 
23
PIDFILE=/run/openvpn-mandos.pid
 
24
 
 
25
# Exit if no device set in config
 
26
if [ -z "$VPNDEVICE" ]; then
 
27
    exit
 
28
fi
 
29
 
 
30
# Exit if DEVICE is set and it doesn't match the VPN interface
 
31
if [ -n "$DEVICE" -a "$DEVICE" = "${DEVICE#$VPNDEVICE}" ]; then
 
32
    exit
 
33
fi
 
34
 
 
35
openvpn=/usr/sbin/openvpn
 
36
 
 
37
case "$1" in
 
38
    start)
 
39
        "$openvpn" --cd "$MANDOSNETHOOKDIR" \
 
40
            --daemon 'openvpn(Mandos)' --writepid "$PIDFILE" \
 
41
            --config "$CONFIG"
 
42
        sleep "$DELAY"
 
43
        ;;
 
44
    stop)
 
45
        PID="`cat \"$PIDFILE\"`"
 
46
        if [ "$PID" -gt 0 ]; then
 
47
            kill "$PID"
 
48
        fi
 
49
        ;;
 
50
    files)
 
51
        echo "$openvpn"
 
52
        ;;
 
53
    modules)
 
54
        echo tun
 
55
        ;;
 
56
esac