/mandos/release

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

« back to all changes in this revision

Viewing changes to network-hooks.d/bridge

  • Committer: Teddy Hogeborn
  • Date: 2014-07-25 22:44:20 UTC
  • mto: (237.7.272 trunk)
  • mto: This revision was merged to the branch mainline in revision 321.
  • Revision ID: teddy@recompile.se-20140725224420-4a5ct2ptt0hsc92z
Require Python 2.7.

This is in preparation for the eventual move to Python 3, which will
happen as soon as all Python modules required by Mandos are available.
The mandos-ctl and mandos-monitor programs are already portable
between Python 2.6 and Python 3 without changes; this change will
bring the requirement up to Python 2.7.

* INSTALL (Prerequisites/Libraries/Mandos Server): Document
                                                   requirement of
                                                   Python 2.7; remove
                                                   Python-argparse
                                                   which is in the
                                                   Python 2.7 standard
                                                   library.
* debian/control (Source: mandos/Build-Depends-Indep): Depend on
                                                       exactly the
                                                       python2.7
                                                       package and all
                                                       the Python 2.7
                                                       versions of the
                                                       python modules.
  (Package: mandos/Depends): - '' - but still depend on python (<=2.7)
                            and the generic versions of the Python
                            modules; this is for mandos-ctl and
                            mandos-monitor, both of which are
                            compatible with Python 3, and use
                            #!/usr/bin/python.
* mandos: Use #!/usr/bin/python2.7 instead of #!/usr/bin/python.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
# configuration file(s) should be copied into the
7
7
# /etc/mandos/network-hooks.d directory.
8
8
 
9
# Copyright © 2012 Teddy Hogeborn
 
10
# Copyright © 2012 Björn Påhlsson
 
11
9
12
# Copying and distribution of this file, with or without modification,
10
13
# are permitted in any medium without royalty provided the copyright
11
14
# notice and this notice are preserved.  This file is offered as-is,
17
20
 
18
21
addrtoif(){
19
22
    grep -liFe "$1" /sys/class/net/*/address \
20
 
        | sed -e 's,.*/\([^/]*\)/[^/]*,\1,'
 
23
        | sed -e 's,.*/\([^/]*\)/[^/]*,\1,' -e "/^${BRIDGE}\$/d"
21
24
}
22
25
 
23
26
# Read config file, which must set "BRIDGE", "PORT_ADDRESSES", and
30
33
    exit
31
34
fi
32
35
 
33
 
if [ -n "$DEVICE" -a "$DEVICE" != "$BRIDGE" ]; then
34
 
    exit
 
36
if [ -n "$DEVICE" ]; then
 
37
    case "$DEVICE" in
 
38
        *,"$BRIDGE"|*,"$BRIDGE",*|"$BRIDGE",*|"$BRIDGE") :;;
 
39
        *) exit;;
 
40
    esac
35
41
fi
36
42
 
37
 
for b in /sbin/brctl /usr/sbin/brctl; do
 
43
brctl="/sbin/brctl"
 
44
for b in "$brctl" /usr/sbin/brctl; do
38
45
    if [ -e "$b" ]; then
39
46
        brctl="$b"
40
47
        break
41
48
    fi
42
49
done
43
50
 
44
 
case "$1" in
45
 
    start)
46
 
        "$brctl" addbr "$BRIDGE"
47
 
        for address in $PORT_ADDRESSES; do
48
 
            interface=`addrtoif "$address"`
49
 
            "$brctl" addif "$BRIDGE" "$interface"
50
 
            ip link set dev "$interface" up
51
 
        done
52
 
        ip link set dev "$BRIDGE" up
53
 
        sleep "$DELAY"
54
 
        if [ -n "$IPADDRS" ]; then
55
 
            for ipaddr in $IPADDRS; do
56
 
                ip addr add "$ipaddr" dev "$BRIDGE"
57
 
            done
58
 
        fi
59
 
        if [ -n "$ROUTES" ]; then
60
 
            for route in $ROUTES; do
61
 
                ip route add "$route" dev "$BRIDGE"
62
 
            done
63
 
        fi
64
 
        ;;
65
 
    stop)
66
 
        ip link set dev "$BRIDGE" down
67
 
        for address in $PORT_ADDRESSES; do
68
 
            interface=`addrtoif "$address"`
69
 
            ip link set dev "$interface" down
70
 
            "$brctl" delif "$BRIDGE" "$interface"
71
 
        done
72
 
        "$brctl" delbr "$BRIDGE"
 
51
do_start(){
 
52
    "$brctl" addbr "$BRIDGE"
 
53
    for address in $PORT_ADDRESSES; do
 
54
        interface=`addrtoif "$address"`
 
55
        "$brctl" addif "$BRIDGE" "$interface"
 
56
        ip link set dev "$interface" up
 
57
    done
 
58
    ip link set dev "$BRIDGE" up
 
59
    sleep "${DELAY%%.*}"
 
60
    if [ -n "$IPADDRS" ]; then
 
61
        for ipaddr in $IPADDRS; do
 
62
            ip addr add "$ipaddr" dev "$BRIDGE"
 
63
        done
 
64
    fi
 
65
    if [ -n "$ROUTES" ]; then
 
66
        for route in $ROUTES; do
 
67
            ip route add "$route" dev "$BRIDGE"
 
68
        done
 
69
    fi
 
70
}
 
71
 
 
72
do_stop(){
 
73
    ip link set dev "$BRIDGE" down
 
74
    for address in $PORT_ADDRESSES; do
 
75
        interface=`addrtoif "$address"`
 
76
        ip link set dev "$interface" down
 
77
        "$brctl" delif "$BRIDGE" "$interface"
 
78
    done
 
79
    "$brctl" delbr "$BRIDGE"
 
80
}
 
81
 
 
82
case "${MODE:-$1}" in
 
83
    start|stop)
 
84
        do_"${MODE:-$1}"
73
85
        ;;
74
86
    files)
75
87
        echo /bin/ip