/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/bridge

  • Committer: Teddy Hogeborn
  • Date: 2019-03-12 20:13:34 UTC
  • Revision ID: teddy@recompile.se-20190312201334-my3htrprewjosuw5
mandos-ctl: Refactor

* mandos-ctl: Reorder everything into logical order; put main() first,
              and put every subsequent definition as soon as possible
              after its first use, except superclasses which need to
              be placed before the classes inheriting from them.
              Reorder all tests to match.

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 © 2011 Teddy Hogeborn
10
 
# Copyright © 2011 Björn Påhlsson
 
9
# Copyright © 2012-2018 Teddy Hogeborn
 
10
# Copyright © 2012-2018 Björn Påhlsson
11
11
12
12
# Copying and distribution of this file, with or without modification,
13
13
# are permitted in any medium without royalty provided the copyright
29
29
    . "$CONFIG"
30
30
fi
31
31
 
32
 
if [ -z "$BRIDGE" -o -z "$PORT_ADDRESSES" ]; then
 
32
if [ -z "$BRIDGE" ] || [ -z "$PORT_ADDRESSES" ]; then
33
33
    exit
34
34
fi
35
35
 
36
 
if [ -n "$DEVICE" -a "$DEVICE" != "$BRIDGE" ]; then
37
 
    exit
 
36
if [ -n "$DEVICE" ]; then
 
37
    case "$DEVICE" in
 
38
        *,"$BRIDGE"|*,"$BRIDGE",*|"$BRIDGE",*|"$BRIDGE") :;;
 
39
        *) exit;;
 
40
    esac
38
41
fi
39
42
 
40
43
brctl="/sbin/brctl"
45
48
    fi
46
49
done
47
50
 
48
 
case "$1" in
49
 
    start)
50
 
        "$brctl" addbr "$BRIDGE"
51
 
        for address in $PORT_ADDRESSES; do
52
 
            interface=`addrtoif "$address"`
53
 
            "$brctl" addif "$BRIDGE" "$interface"
54
 
            ip link set dev "$interface" up
55
 
        done
56
 
        ip link set dev "$BRIDGE" up
57
 
        sleep "${DELAY%%.*}"
58
 
        if [ -n "$IPADDRS" ]; then
59
 
            for ipaddr in $IPADDRS; do
60
 
                ip addr add "$ipaddr" dev "$BRIDGE"
61
 
            done
62
 
        fi
63
 
        if [ -n "$ROUTES" ]; then
64
 
            for route in $ROUTES; do
65
 
                ip route add "$route" dev "$BRIDGE"
66
 
            done
67
 
        fi
68
 
        ;;
69
 
    stop)
70
 
        ip link set dev "$BRIDGE" down
71
 
        for address in $PORT_ADDRESSES; do
72
 
            interface=`addrtoif "$address"`
73
 
            ip link set dev "$interface" down
74
 
            "$brctl" delif "$BRIDGE" "$interface"
75
 
        done
76
 
        "$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}"
77
85
        ;;
78
86
    files)
79
87
        echo /bin/ip