Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1826

Show
Ignore:
Timestamp:
11/12/07 15:39:36
Author:
fumanchu
Message:

Some bus/plugin improvements.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/__init__.py

    r1824 r1826  
    181181from cherrypy import restsrv 
    182182try: 
    183     from cherrypy.restsrv import win32 as restsrvwin 
    184     engine = restsrvwin.Win32Bus() 
     183    from cherrypy.restsrv import win32 as _restsrvwin 
     184    engine = _restsrvwin.Win32Bus() 
    185185except ImportError: 
    186186    engine = restsrv.bus 
  • trunk/cherrypy/_cptree.py

    r1769 r1826  
    5757         
    5858        self.config = {} 
     59     
     60    def __repr__(self): 
     61        return "%s.%s(%r, %r)" % (self.__module__, self.__class__.__name__, 
     62                                  self.root, self.script_name) 
    5963     
    6064    script_name__doc = """ 
  • trunk/cherrypy/restsrv/plugins.py

    r1824 r1826  
    108108    def __init__(self, bus): 
    109109        self.bus = bus 
     110        self.finalized = False 
    110111     
    111112    try: 
     
    123124            def start(self): 
    124125                """Drop privileges. Windows version (umask only).""" 
    125                 if umask is not None: 
    126                     old_umask = os.umask(umask) 
    127                     self.bus.log('umask old: %03o, new: %03o' % 
    128                                     (old_umask, umask)) 
     126                if self.finalized: 
     127                    self.bus.log('umask already set to: %03o' % umask) 
     128                else: 
     129                    if umask is None: 
     130                        self.bus.log('umask not set') 
     131                    else: 
     132                        old_umask = os.umask(umask) 
     133                        self.bus.log('umask old: %03o, new: %03o' % 
     134                                     (old_umask, umask)) 
     135                    self.finalized = True 
    129136    else: 
    130137        uid = None 
     
    134141        def start(self): 
    135142            """Drop privileges. UNIX version (uid, gid, and umask).""" 
    136             if not (uid is None and gid is None): 
     143            if uid is None and gid is None: 
     144                self.bus.log('uid/gid not set') 
     145            else: 
    137146                if uid is None: 
    138147                    uid = None 
     
    154163                    return name, group 
    155164                 
    156                 self.bus.log('Started as %r/%r' % names()) 
    157                 if gid is not None: 
    158                     os.setgid(gid) 
    159                 if uid is not None: 
    160                     os.setuid(uid) 
    161                 self.bus.log('Running as %r/%r' % names()) 
     165                if self.finalized: 
     166                    self.bus.log('Already running as: %r/%r' % names()) 
     167                else: 
     168                    self.bus.log('Started as %r/%r' % names()) 
     169                    if gid is not None: 
     170                        os.setgid(gid) 
     171                    if uid is not None: 
     172                        os.setuid(uid) 
     173                    self.bus.log('Running as %r/%r' % names()) 
    162174             
    163             if umask is not None: 
    164                 old_umask = os.umask(umask) 
    165                 self.bus.log('umask old: %03o, new: %03o' % 
    166                                 (old_umask, umask)) 
     175            if self.finalized: 
     176                self.bus.log('umask already set to: %03o' % umask) 
     177            else: 
     178                if umask is None: 
     179                    self.bus.log('umask not set') 
     180                else: 
     181                    old_umask = os.umask(umask) 
     182                    self.bus.log('umask old: %03o, new: %03o' % 
     183                                 (old_umask, umask)) 
     184                self.finalized = True 
    167185    start.priority = 75 
    168186 
     
    185203        self.stdout = stdout 
    186204        self.stderr = stderr 
     205        self.finalized = False 
    187206     
    188207    def start(self): 
     208        if self.finalized: 
     209            self.bus.log('Already deamonized.') 
     210         
    189211        # forking has issues with threads: 
    190212        # http://www.opengroup.org/onlinepubs/000095399/functions/fork.html 
     
    193215        # So we check for active threads: 
    194216        if threading.activeCount() != 1: 
    195             self.bus.log('There are more than one active threads. ' 
    196                          'Daemonizing now may cause strange failures.') 
    197             self.bus.log(str(threading.enumerate())) 
     217            self.bus.log('There are %r active threads. ' 
     218                         'Daemonizing now may cause strange failures.' % 
     219                         threading.enumerate()) 
    198220         
    199221        # See http://www.erlenstar.demon.co.uk/unix/faq_2.html#SEC16 
     
    247269         
    248270        self.bus.log('Daemonized to PID: %s' % os.getpid()) 
     271        self.finalized = True 
    249272    start.priority = 65 
    250273 
     
    256279        self.bus = bus 
    257280        self.pidfile = pidfile 
     281        self.finalized = False 
    258282     
    259283    def start(self): 
    260284        pid = os.getpid() 
    261         open(self.pidfile, "wb").write(str(pid)) 
    262         self.bus.log('PID %r written to %r.' % (pid, self.pidfile)) 
     285        if self.finalized: 
     286            self.bus.log('PID %r already written to %r.' % (pid, self.pidfile)) 
     287        else: 
     288            open(self.pidfile, "wb").write(str(pid)) 
     289            self.bus.log('PID %r written to %r.' % (pid, self.pidfile)) 
     290            self.finalized = True 
    263291    start.priority = 70 
    264292     
    265     def stop(self): 
     293    def exit(self): 
    266294        try: 
    267295            os.remove(self.pidfile) 
  • trunk/cherrypy/restsrv/wspbus.py

    r1824 r1826  
    109109        self.listeners = dict( 
    110110            [(channel, set()) for channel 
    111              in ('start', 'stop', 'exit', 'graceful')]) 
     111             in ('start', 'stop', 'exit', 'graceful', 'log')]) 
    112112        self._priorities = {} 
    113113     

Hosted by WebFaction

Log in as guest/cpguest to create tickets