def run(self):
        import Hooks

        #now make sure that the kids can't setuid back to root
        groupToRunAs=getattr(Configuration, 'groupToRunAs', None)
        userToRunAs=getattr(Configuration, 'userToRunAs', None)
        if groupToRunAs is not None or userToRunAs is not None:
            # in case we are seteuid something else, which would
            # cause setuid or getuid to fail, undo any existing
            # seteuid. (The only reason to do this is for the case
            # os.getuid()==0, AFAIK).
            try:
                seteuid=os.seteuid
            except AttributeError:
                # the OS may not support seteuid, in which
                # case everything is hotsy-totsy.
                pass
            else:
                seteuid(os.getuid())
            if groupToRunAs is not None:
                gid = grp.getgrnam(groupToRunAs)[2]
                os.setgid(gid)

            if userToRunAs is not None:
                uid = pwd.getpwnam(userToRunAs)[2]
                os.setuid(uid)
            
        Hooks.ChildStart()
        SocketMan.run(self)
    def __init__(self):
        SocketMan.__init__(self, Configuration.maxRequests,
                           Configuration.numProcs, Configuration.maxKillTime,
                           Configuration.pidFile, Configuration.pollPeriod,
                           LogObj)

        signal.signal(signal.SIGINT, self._SIGTERMHandler)
Exemple #3
0
    def run(self):
        import Hooks

        #now make sure that the kids can't setuid back to root
        groupToRunAs = getattr(Configuration, 'groupToRunAs', None)
        userToRunAs = getattr(Configuration, 'userToRunAs', None)
        if groupToRunAs is not None or userToRunAs is not None:
            # in case we are seteuid something else, which would
            # cause setuid or getuid to fail, undo any existing
            # seteuid. (The only reason to do this is for the case
            # os.getuid()==0, AFAIK).
            try:
                seteuid = os.seteuid
            except AttributeError:
                # the OS may not support seteuid, in which
                # case everything is hotsy-totsy.
                pass
            else:
                seteuid(os.getuid())
            if groupToRunAs is not None:
                gid = grp.getgrnam(groupToRunAs)[2]
                os.setgid(gid)

            if userToRunAs is not None:
                uid = pwd.getpwnam(userToRunAs)[2]
                os.setuid(uid)

        Hooks.ChildStart()
        SocketMan.run(self)
    def __init__(self):
        SocketMan.__init__(self,
                           Configuration.maxRequests,
                           Configuration.numProcs,
                           Configuration.maxKillTime,
                           Configuration.pidFile,
                           Configuration.pollPeriod,
                           LogObj)

        signal.signal(signal.SIGINT, self._SIGTERMHandler)
    def run(self):
        import Hooks

        #now make sure that the kids can't setuid back to root
        if hasattr(Configuration, 'groupToRunAs'):
            gid = grp.getgrnam(Configuration.groupToRunAs)[2]
            os.setgid(gid)

        if hasattr(Configuration, 'userToRunAs'):
            uid = pwd.getpwnam(Configuration.userToRunAs)[2]
            if hasattr(os, 'seteuid'):
                os.seteuid(os.getuid())
            os.setuid(uid)

        Hooks.ChildStart()
        SocketMan.run(self)
    def run(self):
        import Hooks

        #now make sure that the kids can't setuid back to root
        if hasattr(Configuration, 'groupToRunAs'):
            gid = grp.getgrnam(Configuration.groupToRunAs)[2]
            os.setgid(gid)

        if hasattr(Configuration, 'userToRunAs'):
            uid = pwd.getpwnam(Configuration.userToRunAs)[2]
            if hasattr(os, 'seteuid'):
                os.seteuid(os.getuid())
            os.setuid(uid)
            
        Hooks.ChildStart()
        SocketMan.run(self)
    def reload(self):
        # extract what we need from configuration, and wipe it out
        global Configuration
        ver, cf, sr= (Configuration.SkunkWebVersion,
                      Configuration._config_files_,
                      Configuration.SkunkRoot)
        SocketMan.reload(self)
        del Configuration
        
        global LogObj
        del LogObj
        
        sm = ['ConfigAdditives',
              'Configuration',
              'Hooks',
              'KickStart',
              'ServiceRegistry',
              'LogObj']
        for i in sm:
            del sys.modules['SkunkWeb.%s' % i]
        
        f = sys.modules.keys(); f.sort()
        f = sys.modules['SkunkWeb']
        for i in sm:
            delattr(f, i)
            
        import bootloader
        bootloader.init(cf, sr)
        import LogObj
        # replace the previous (massacred) LogObj with the new one
        self.logInterface=LogObj
        bootloader.load()

        #global Configuration
        import Configuration
        _setConfigDefaults()
            
        self.userModuleCleanup = Configuration.userModuleCleanup
        self.maxRequests = Configuration.maxRequests
        self.numProcs = Configuration.numProcs
        self.pidFile = Configuration.pidFile
        self.pollPeriod = Configuration.pollPeriod
        self.maxKillTime = Configuration.maxKillTime
        self.foreground=Configuration.runInForeground
    def reload(self):
        # extract what we need from configuration, and wipe it out
        global Configuration
        ver, cf, sr = (Configuration.SkunkWebVersion,
                       Configuration._config_files_, Configuration.SkunkRoot)
        SocketMan.reload(self)
        del Configuration

        global LogObj
        del LogObj

        sm = [
            'ConfigAdditives', 'Configuration', 'Hooks', 'KickStart',
            'ServiceRegistry', 'LogObj'
        ]
        for i in sm:
            del sys.modules['SkunkWeb.%s' % i]

        f = sys.modules.keys()
        f.sort()
        f = sys.modules['SkunkWeb']
        for i in sm:
            delattr(f, i)

        import bootloader
        bootloader.init(cf, sr)
        import LogObj
        # replace the previous (massacred) LogObj with the new one
        self.logInterface = LogObj
        bootloader.load()

        #global Configuration
        import Configuration
        _setConfigDefaults()

        self.userModuleCleanup = Configuration.userModuleCleanup
        self.maxRequests = Configuration.maxRequests
        self.numProcs = Configuration.numProcs
        self.pidFile = Configuration.pidFile
        self.pollPeriod = Configuration.pollPeriod
        self.maxKillTime = Configuration.maxKillTime
        self.foreground = Configuration.runInForeground
 def run(self):
     import Hooks
     Hooks.ChildStart()
     SocketMan.run(self)
 def run(self):
     import Hooks
     Hooks.ChildStart()
     SocketMan.run(self)