/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: Björn Påhlsson
  • Date: 2011-12-25 10:33:25 UTC
  • Revision ID: belorn@recompile.se-20111225103325-wlbwm89iy21c7mg0
renamed some foomax values to what they actually represent
fixed a very small exitstatus bug in plugin-runner

Show diffs side-by-side

added added

removed removed

Lines of Context:
110
110
        return interface_index
111
111
 
112
112
 
113
 
def initlogger(level=logging.WARNING):
 
113
def initlogger(debug, 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
 
    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)
 
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)
127
128
    logger.setLevel(level)
128
129
 
129
130
 
2078
2079
                                     stored_state_file)
2079
2080
    
2080
2081
    if debug:
2081
 
        initlogger(logging.DEBUG)
 
2082
        initlogger(debug, logging.DEBUG)
2082
2083
    else:
2083
2084
        if not debuglevel:
2084
 
            initlogger()
 
2085
            initlogger(debug)
2085
2086
        else:
2086
2087
            level = getattr(logging, debuglevel.upper())
2087
 
            initlogger(level)
 
2088
            initlogger(debug, level)
2088
2089
    
2089
2090
    if server_settings["servicename"] != "Mandos":
2090
2091
        syslogger.setFormatter(logging.Formatter
2156
2157
        os.dup2(null, sys.stdin.fileno())
2157
2158
        if null > 2:
2158
2159
            os.close(null)
2159
 
    else:
2160
 
        # No console logging
2161
 
        logger.removeHandler(console)
2162
2160
    
2163
2161
    # Need to fork before connecting to D-Bus
2164
2162
    if not debug:
2165
2163
        # Close all input and output, do double fork, etc.
2166
2164
        daemon()
2167
2165
    
 
2166
    gobject.threads_init()
 
2167
    
2168
2168
    global main_loop
2169
2169
    # From the Avahi example code
2170
2170
    DBusGMainLoop(set_as_default=True )
2216
2216
                           .format(e))
2217
2217
            if e.errno != errno.ENOENT:
2218
2218
                raise
 
2219
        except EOFError as e:
 
2220
            logger.warning("Could not load persistent state: "
 
2221
                           "EOFError: {0}".format(e))
2219
2222
    
2220
2223
    with PGPEngine() as pgp:
2221
2224
        for client_name, client in clients_data.iteritems():
2400
2403
                del client_settings[client.name]["secret"]
2401
2404
        
2402
2405
        try:
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:
 
2406
            tempfd, tempname = tempfile.mkstemp(suffix=".pickle",
 
2407
                                                prefix="clients-",
 
2408
                                                dir=os.path.dirname
 
2409
                                                (stored_state_path))
 
2410
            with os.fdopen(tempfd, "wb") as stored_state:
2406
2411
                pickle.dump((clients, client_settings), stored_state)
 
2412
            os.rename(tempname, stored_state_path)
2407
2413
        except (IOError, OSError) as e:
2408
2414
            logger.warning("Could not save persistent state: {0}"
2409
2415
                           .format(e))
2410
 
            if e.errno not in (errno.ENOENT, errno.EACCES):
2411
 
                raise
 
2416
            if not debug:
 
2417
                try:
 
2418
                    os.remove(tempname)
 
2419
                except NameError:
 
2420
                    pass
 
2421
            if e.errno not in set((errno.ENOENT, errno.EACCES,
 
2422
                                   errno.EEXIST)):
 
2423
                raise e
2412
2424
        
2413
2425
        # Delete all clients, and settings from config
2414
2426
        while tcp_server.clients: