/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-11-09 06:40:29 UTC
  • mto: (24.1.113 mandos)
  • mto: This revision was merged to the branch mainline in revision 238.
  • Revision ID: teddy@fukt.bsnet.se-20081109064029-df71jpoce308cq3v
First steps of a D-Bus interface to the server.

* mandos: Also import "dbus.service".
  (Client): Inherit from "dbus.service.Object", which is a new-style
            class, so inheriting from "object" is no longer necessary.
  (Client.interface): New temporary variable which only exists during
                     class definition.

  (Client.getName, Client.getFingerprint): New D-Bus getter methods.
  (Client.setSecret): New D-Bus setter method.
  (Client._set_timeout): Emit D-Bus signal "TimeoutChanged".
  (Client.getTimeout): New D-Bus getter method.
  (Client.TimeoutChanged): New D-Bus signal.
  (Client._set_interval): Emit D-Bus signal "IntervalChanged".
  (Client.getInterval): New D-Bus getter method.
  (Client.intervalChanged): New D-Bus signal.
  (Client.__init__): Also call "dbus.service.Object.__init__".
  (Client.started): New boolean attribute.
  (Client.start, Client.stop): Update "self.started", and emit D-Bus
                               signal "StateChanged".
  (Client.StateChanged): New D-Bus signal.
  (Client.stop): Use "self.started" instead of misusing "self.secret".
                 Also simplify code by using "getattr" instead of
                 "hasattr".
  (Client.checker_callback): Emit D-Bus signal "CheckerCompleted".
  (Client.CheckerCompleted): New D-Bus signal.
  (Client.bumpTimeout): D-Bus method name for "bump_timeout".
  (Client.start_checker): Emit D-Bus signal "CheckerStarted".
  (Client.CheckerStarted): New D-Bus signal.
  (Client.checkerIsRunning): New D-Bus method.
  (Client.StopChecker): D-Bus method name for "stop_checker".
  (Client.still_valid): First check "self.started".
  (Client.stillValid): D-Bus method name for "still_valid".

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