/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: 2008-06-21 00:53:32 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080621005332-s4scjdpevuso4lsd
* server.py: Bug fix: Do "from __future__ import division".
  (Client.__init__): Bug fix: parse interval string from config file.
  (Client.check_action): Take no arguments.  Print some debugging
  output.  Reset "checker" to None.
  (Client.start_checker): Sleep 10 seconds before pinging to alleviate
  debugging.
  (Client.next_stop): Bug fix: check if "last_seen" and/or "checker"
  is None.
  (Client.still_valid): Bug fix: check if "last_seen" is None.
  (Client.handle): When finding the right password to send, use a list
  comprehension and an index lookup instead of a generator expression to
  a dict.
  (IPv6_TCPServer.request_queue_size): Removed.
  (in6addr_any): Moved inside "main".
  (main): Changed "clients" to be a Set instead of a list.  Bug fix:
  Exit when/if all clients are removed.  Call "select" with all client
  checkers and a suitable timeout.  Add some debugging output.  Start
  new checkers when needed and delete clients which have timed out.

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 a bridge 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="$MANDOSNETHOOKDIR/bridge.conf"
17
 
 
18
 
# Read config file, which must set "BRIDGE", "PORTS", and optionally
19
 
# "IPADDRS" and "ROUTES".
20
 
if [ -e "$CONFIG" ]; then
21
 
    . "$CONFIG"
22
 
fi
23
 
 
24
 
if [ -z "$BRIDGE" -o -z "$PORTS" ]; then
25
 
    exit
26
 
fi
27
 
 
28
 
if [ -n "$DEVICE" -a "$DEVICE" != "$BRIDGE" ]; then
29
 
    exit
30
 
fi
31
 
 
32
 
case "$1" in
33
 
    start)
34
 
        brctl addbr "$BRIDGE"
35
 
        for port in $PORTS; do
36
 
            brctl addif "$BRIDGE" "$port"
37
 
        done
38
 
        ip link set up "$BRIDGE"
39
 
        if [ -n "$IPADDRS" ]; then
40
 
            for ipaddr in $IPADDRS; do
41
 
                ip addr add "$ipaddr" dev "$BRIDGE"
42
 
            done
43
 
        fi
44
 
        if [ -n "$ROUTES" ]; then
45
 
            for route in $ROUTES; do
46
 
                ip route add "$route" dev "$BRIDGE"
47
 
            done
48
 
        fi
49
 
        ;;
50
 
    stop)
51
 
        ip link set down "$BRIDGE"
52
 
        for port in $PORTS; do
53
 
            brctl delif "$BRIDGE" "$port"
54
 
        done
55
 
        brctl delbr "$BRIDGE"
56
 
        ;;
57
 
    files)
58
 
        echo /bin/ip
59
 
        echo /usr/bin/brctl
60
 
        ;;
61
 
esac