diff options
Diffstat (limited to 'src/jarabe/model/network.py')
-rw-r--r-- | src/jarabe/model/network.py | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py index 10b73ab..b3c30d9 100644 --- a/src/jarabe/model/network.py +++ b/src/jarabe/model/network.py @@ -29,6 +29,7 @@ from sugar import env DEVICE_TYPE_802_3_ETHERNET = 1 DEVICE_TYPE_802_11_WIRELESS = 2 +DEVICE_TYPE_802_11_OLPC_MESH = 6 DEVICE_STATE_UNKNOWN = 0 DEVICE_STATE_UNMANAGED = 1 @@ -103,6 +104,8 @@ class WirelessSecurity(object): return wireless_security class Wireless(object): + nm_name = "802-11-wireless" + def __init__(self): self.ssid = None self.security = None @@ -119,6 +122,25 @@ class Wireless(object): wireless['band'] = self.band return wireless + +class OlpcMesh(object): + nm_name = "802-11-olpc-mesh" + + def __init__(self, channel, anycast_addr): + self.channel = channel + self.anycast_addr = anycast_addr + + def get_dict(self): + ret = { + "ssid": dbus.ByteArray("olpc-mesh"), + "channel": self.channel, + } + + if self.anycast_addr: + ret["dhcp-anycast-address"] = dbus.ByteArray(self.anycast_addr) + return ret + + class Connection(object): def __init__(self): self.id = None @@ -147,16 +169,20 @@ class IP4Config(object): return ip4_config class Settings(object): - def __init__(self): + def __init__(self, wireless_cfg=None): self.connection = Connection() - self.wireless = Wireless() self.ip4_config = None self.wireless_security = None + if wireless_cfg is not None: + self.wireless = wireless_cfg + else: + self.wireless = Wireless() + def get_dict(self): settings = {} settings['connection'] = self.connection.get_dict() - settings['802-11-wireless'] = self.wireless.get_dict() + settings[self.wireless.nm_name] = self.wireless.get_dict() if self.wireless_security is not None: settings['802-11-wireless-security'] = \ self.wireless_security.get_dict() |