/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

working new feature: network-hooks - Enables user-scripts to take up
                     interfaces during bootup

Show diffs side-by-side

added added

removed removed

Lines of Context:
110
110
        return interface_index
111
111
 
112
112
 
113
 
def initlogger(debug, level=logging.WARNING):
 
113
def initlogger(level=logging.WARNING):
114
114
    """init logger and add loglevel"""
115
115
    
116
116
    syslogger.setFormatter(logging.Formatter
118
118
                            ' %(message)s'))
119
119
    logger.addHandler(syslogger)
120
120
    
121
 
    if debug:
122
 
        console = logging.StreamHandler()
123
 
        console.setFormatter(logging.Formatter('%(asctime)s %(name)s'
124
 
                                               ' [%(process)d]:'
125
 
                                               ' %(levelname)s:'
126
 
                                               ' %(message)s'))
127
 
        logger.addHandler(console)
 
121
    console = logging.StreamHandler()
 
122
    console.setFormatter(logging.Formatter('%(asctime)s %(name)s'
 
123
                                           ' [%(process)d]:'
 
124
                                           ' %(levelname)s:'
 
125
                                           ' %(message)s'))
 
126
    logger.addHandler(console)
128
127
    logger.setLevel(level)
129
128
 
130
129
 
142
141
        self.gnupg.options.meta_interactive = False
143
142
        self.gnupg.options.homedir = self.tempdir
144
143
        self.gnupg.options.extra_args.extend(['--force-mdc',
145
 
                                              '--quiet',
146
 
                                              '--no-use-agent'])
 
144
                                              '--quiet'])
147
145
    
148
146
    def __enter__(self):
149
147
        return self
2080
2078
                                     stored_state_file)
2081
2079
    
2082
2080
    if debug:
2083
 
        initlogger(debug, logging.DEBUG)
 
2081
        initlogger(logging.DEBUG)
2084
2082
    else:
2085
2083
        if not debuglevel:
2086
 
            initlogger(debug)
 
2084
            initlogger()
2087
2085
        else:
2088
2086
            level = getattr(logging, debuglevel.upper())
2089
 
            initlogger(debug, level)
 
2087
            initlogger(level)
2090
2088
    
2091
2089
    if server_settings["servicename"] != "Mandos":
2092
2090
        syslogger.setFormatter(logging.Formatter
2158
2156
        os.dup2(null, sys.stdin.fileno())
2159
2157
        if null > 2:
2160
2158
            os.close(null)
 
2159
    else:
 
2160
        # No console logging
 
2161
        logger.removeHandler(console)
2161
2162
    
2162
2163
    # Need to fork before connecting to D-Bus
2163
2164
    if not debug:
2164
2165
        # Close all input and output, do double fork, etc.
2165
2166
        daemon()
2166
2167
    
2167
 
    gobject.threads_init()
2168
 
    
2169
2168
    global main_loop
2170
2169
    # From the Avahi example code
2171
2170
    DBusGMainLoop(set_as_default=True )
2217
2216
                           .format(e))
2218
2217
            if e.errno != errno.ENOENT:
2219
2218
                raise
2220
 
        except EOFError as e:
2221
 
            logger.warning("Could not load persistent state: "
2222
 
                           "EOFError: {0}".format(e))
2223
2219
    
2224
2220
    with PGPEngine() as pgp:
2225
2221
        for client_name, client in clients_data.iteritems():
2404
2400
                del client_settings[client.name]["secret"]
2405
2401
        
2406
2402
        try:
2407
 
            tempfd, tempname = tempfile.mkstemp(suffix=".pickle",
2408
 
                                                prefix="clients-",
2409
 
                                                dir=os.path.dirname
2410
 
                                                (stored_state_path))
2411
 
            with os.fdopen(tempfd, "wb") as stored_state:
 
2403
            with os.fdopen(os.open(stored_state_path,
 
2404
                                   os.O_CREAT|os.O_WRONLY|os.O_TRUNC,
 
2405
                                   0600), "wb") as stored_state:
2412
2406
                pickle.dump((clients, client_settings), stored_state)
2413
 
            os.rename(tempname, stored_state_path)
2414
2407
        except (IOError, OSError) as e:
2415
2408
            logger.warning("Could not save persistent state: {0}"
2416
2409
                           .format(e))
2417
 
            if not debug:
2418
 
                try:
2419
 
                    os.remove(tempname)
2420
 
                except NameError:
2421
 
                    pass
2422
 
            if e.errno not in set((errno.ENOENT, errno.EACCES,
2423
 
                                   errno.EEXIST)):
2424
 
                raise e
 
2410
            if e.errno not in (errno.ENOENT, errno.EACCES):
 
2411
                raise
2425
2412
        
2426
2413
        # Delete all clients, and settings from config
2427
2414
        while tcp_server.clients: