コード例 #1
0
ファイル: __init__.py プロジェクト: Rayman/iToetsnbord
    def start(self):
        self.info('   STARTING SERVER')

        config = self.__config
        
        handle_request = self.__application.handle_request
                
        hostname = config.get_string('hostname', False, 'localhost')
        
        port = config.get_int('port', False, 7001)
        self.info('   HOSTNAME   %s' % hostname)
        self.info('   PORT       %d' % port)

        use_proxy = config.get_boolean('proxy', False, True)
        proxy_port = config.get_int('proxy.port', False, 7000)
        proxy_hostname = config.get_string('proxy.hostname', False, 'localhost')
        
        if self.__internal_server is None:
            self.__internal_server = make_server(
                              hostname, 
                              port, 
                              handle_request,
                              handler_class=LoggingWSGIRequestHandler)
            
        self.__watch_request_loop_id = gobject.io_add_watch(self.__internal_server.socket,
                                                 gobject.IO_IN,
                                                 self.__idle_request_loop)
        
        self.__running = True
        self.info('   SERVER STARTED')
        
        if use_proxy == True:
            self.info('   STARTING PROXY')
            self.info('   PROXY_HOSTNAME %s' % proxy_hostname)
            self.info('   PROXY_PORT     %d' % proxy_port)
            
            self.__proxy_server = BufferProxyServer(proxy_hostname, proxy_port, hostname, port)
            self.__proxy_server.start()
            
            self.info('   PROXY STARTED')
コード例 #2
0
ファイル: __init__.py プロジェクト: Rayman/iToetsnbord
class CGIServer(Loggable):
    
    __application = None
    __config = None
    __running = False

    __internal_server = None
    __proxy_server = None
    
    def __init__(self, application, config):
        
        if config is None:
            raise Exception('Required component \'config\' not found in components')
        
        self.__config = config
        self.__application = application
        
    
    def start(self):
        self.info('   STARTING SERVER')

        config = self.__config
        
        handle_request = self.__application.handle_request
                
        hostname = config.get_string('hostname', False, 'localhost')
        
        port = config.get_int('port', False, 7001)
        self.info('   HOSTNAME   %s' % hostname)
        self.info('   PORT       %d' % port)

        use_proxy = config.get_boolean('proxy', False, True)
        proxy_port = config.get_int('proxy.port', False, 7000)
        proxy_hostname = config.get_string('proxy.hostname', False, 'localhost')
        
        if self.__internal_server is None:
            self.__internal_server = make_server(
                              hostname, 
                              port, 
                              handle_request,
                              handler_class=LoggingWSGIRequestHandler)
            
        self.__watch_request_loop_id = gobject.io_add_watch(self.__internal_server.socket,
                                                 gobject.IO_IN,
                                                 self.__idle_request_loop)
        
        self.__running = True
        self.info('   SERVER STARTED')
        
        if use_proxy == True:
            self.info('   STARTING PROXY')
            self.info('   PROXY_HOSTNAME %s' % proxy_hostname)
            self.info('   PROXY_PORT     %d' % proxy_port)
            
            self.__proxy_server = BufferProxyServer(proxy_hostname, proxy_port, hostname, port)
            self.__proxy_server.start()
            
            self.info('   PROXY STARTED')
        
        

    def stop(self):
        self.info('   STOPPING SERVER')
        gobject.source_remove(self.__watch_request_loop_id)
        if self.__internal_server is None:
            return
        
        if not self.__proxy_server is None:
            self.info('   STOPPING PROXY SERVER')
            self.__proxy_server.stop()
        
        self.__internal_server = None
        self.__proxy_server = None
        self.__running = False
        self.info('   SERVER STOPPED')
    
    
    def __idle_request_loop(self, source, cb_condition):
        if not self.__running:
            return False
        self.__internal_server.handle_request()
        return True