Show
Ignore:
Timestamp:
10/26/07 05:48:32 (1 year ago)
Author:
amcgregor
Message:

TurboMail 3.0 is now usable: the smtp and debug providers are working, immediate and demand managers are good-to-go, and S/MIME signatures work, too\!

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/3.0/turbomail/control.py

    r40 r52  
    6767                # Load the requested pool manager. 
    6868                manager = turbomail.config.get("mail.manager", "immediate") 
    69                 turbomail.manager = self.load_single_entry("turbomail.managers", manager).load() 
    70                 if not turbomail.manager: 
    71                         turbomail.config.set("mail.on", False) 
     69                controller = self.load_single_entry("turbomail.managers", manager) 
     70                if not controller: 
     71                        turbomail.config.update({"mail.on": False}) 
    7272                        log.error("Unable to locate %s manager, TurboMail disabled." % manager) 
     73                        self.stop(force=True) 
    7374                        return 
     75                turbomail.manager = controller.load() 
    7476                turbomail.manager.start() 
    7577                 
    7678                # Load the requested mail provider. 
    7779                provider = turbomail.config.get("mail.provider", "debug") 
    78                 turbomail.provider = self.load_single_entry("turbomail.providers", provider).load() 
    79                 if not turbomail.provider: 
    80                         turbomail.config.set("mail.on", False) 
     80                controller = self.load_single_entry("turbomail.providers", provider) 
     81                if not controller: 
     82                        turbomail.config.update({"mail.on": False}) 
    8183                        log.error("Unable to locate %s provider, TurboMail disabled." % provider) 
     84                        self.stop(force=True) 
    8285                        return 
     86                turbomail.provider = controller.load() 
    8387                turbomail.provider.start() 
    8488                 
     
    9498                self.running = True 
    9599         
    96         def stop(self): 
    97                 if not self.running: return 
     100        def stop(self, force=False): 
     101                if not self.running and not force: return 
    98102                 
    99103                log.info("TurboMail extension shutting down.") 
     
    104108                        if turbomail.config.get("mail." + entrypoint.name + ".on", False): 
    105109                                ext = entrypoint.load() 
    106                                 if hasattr(ext, "unload"): ext.unload() 
     110                                if hasattr(ext, "stop"): ext.stop() 
    107111                 
    108112                # Unload the provider and manager. 
    109                 turbomail.provider.stop() 
    110                 turbomail.manager.stop() 
     113                if turbomail.provider and hasattr(turbomail.provider, "stop"): turbomail.provider.stop() 
     114                if turbomail.manager and hasattr(turbomail.manager, "stop"): turbomail.manager.stop() 
     115                 
     116                turbomail.provider = None 
     117                turbomail.manager = None 
    111118                 
    112119                self.running = False