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

  • Committer: Teddy Hogeborn
  • Date: 2011-12-31 23:05:34 UTC
  • Revision ID: teddy@recompile.se-20111231230534-o5w0uhwx30gwhmk7
Updated year in copyright notices.

Show diffs side-by-side

added added

removed removed

Lines of Context:
85
85
    except ImportError:
86
86
        SO_BINDTODEVICE = None
87
87
 
88
 
version = "1.5.1"
 
88
version = "1.4.1"
89
89
stored_state_file = "clients.pickle"
90
90
 
91
91
logger = logging.getLogger()
422
422
    secret:     bytestring; sent verbatim (over TLS) to client
423
423
    timeout:    datetime.timedelta(); How long from last_checked_ok
424
424
                                      until this client is disabled
425
 
    extended_timeout:   extra long timeout when secret has been sent
 
425
    extended_timeout:   extra long timeout when password has been sent
426
426
    runtime_expansions: Allowed attributes for runtime expansion.
427
427
    expires:    datetime.datetime(); time (UTC) when a client will be
428
428
                disabled, or None
850
850
            # signatures other than "ay".
851
851
            if prop._dbus_signature != "ay":
852
852
                raise ValueError
853
 
            value = dbus.ByteArray(b''.join(chr(byte)
854
 
                                            for byte in value))
 
853
            value = dbus.ByteArray(''.join(unichr(byte)
 
854
                                           for byte in value))
855
855
        prop(value)
856
856
    
857
857
    @dbus.service.method(dbus.PROPERTIES_IFACE, in_signature="s",
1049
1049
    def __init__(self, bus = None, *args, **kwargs):
1050
1050
        self.bus = bus
1051
1051
        Client.__init__(self, *args, **kwargs)
 
1052
        self._approvals_pending = 0
 
1053
        
 
1054
        self._approvals_pending = 0
1052
1055
        # Only now, when this client is initialized, can it show up on
1053
1056
        # the D-Bus
1054
1057
        client_object_name = unicode(self.name).translate(
1224
1227
        "D-Bus signal"
1225
1228
        return self.need_approval()
1226
1229
    
1227
 
    # NewRequest - signal
 
1230
    # NeRwequest - signal
1228
1231
    @dbus.service.signal(_interface, signature="s")
1229
1232
    def NewRequest(self, ip):
1230
1233
        """D-Bus signal
1231
 
        Is sent after a client request a secret.
 
1234
        Is sent after a client request a password.
1232
1235
        """
1233
1236
        pass
1234
1237
    
1546
1549
                
1547
1550
                if self.server.use_dbus:
1548
1551
                    # Emit D-Bus signal
1549
 
                    client.NewRequest(unicode(self.client_address)[0])
 
1552
                    client.NewRequest(str(self.client_address))
1550
1553
                
1551
1554
                if client.approval_delay:
1552
1555
                    delay = client.approval_delay
2247
2250
            
2248
2251
            # Clients who has passed its expire date can still be
2249
2252
            # enabled if its last checker was successful.  Clients
2250
 
            # whose checker succeeded before we stored its state is
2251
 
            # assumed to have successfully run all checkers during
2252
 
            # downtime.
 
2253
            # whose checker failed before we stored its state is
 
2254
            # assumed to have failed all checkers during downtime.
2253
2255
            if client["enabled"]:
2254
2256
                if datetime.datetime.utcnow() >= client["expires"]:
2255
2257
                    if not client["last_checked_ok"]:
2256
2258
                        logger.warning(
2257
2259
                            "disabling client {0} - Client never "
2258
 
                            "performed a successful checker"
2259
 
                            .format(client_name))
 
2260
                            "performed a successfull checker"
 
2261
                            .format(client["name"]))
2260
2262
                        client["enabled"] = False
2261
2263
                    elif client["last_checker_status"] != 0:
2262
2264
                        logger.warning(
2263
2265
                            "disabling client {0} - Client "
2264
2266
                            "last checker failed with error code {1}"
2265
 
                            .format(client_name,
 
2267
                            .format(client["name"],
2266
2268
                                    client["last_checker_status"]))
2267
2269
                        client["enabled"] = False
2268
2270
                    else:
2271
2273
                                             + client["timeout"])
2272
2274
                        logger.debug("Last checker succeeded,"
2273
2275
                                     " keeping {0} enabled"
2274
 
                                     .format(client_name))
 
2276
                                     .format(client["name"]))
2275
2277
            try:
2276
2278
                client["secret"] = (
2277
2279
                    pgp.decrypt(client["encrypted_secret"],
2293
2295
                        - set(old_client_settings)):
2294
2296
        clients_data[client_name] = client_settings[client_name]
2295
2297
 
2296
 
    # Create all client objects
 
2298
    # Create clients all clients
2297
2299
    for client_name, client in clients_data.iteritems():
2298
2300
        tcp_server.clients[client_name] = client_class(
2299
2301
            name = client_name, settings = client)