def __init__(self, session, audio_buffer, host='localhost', try_ports=range(8080, 8090), allowed_ips=['127.0.0.1'], allow_ranges=True): port = self._find_free_port(host, try_ports) self.__audio_buffer = audio_buffer sess_ref = weakref.proxy(session) self.__base_token = create_base_token() self.__allowed_ips = allowed_ips self.__cb_stream_ended = DynamicCallback() self.__root = Root(sess_ref, audio_buffer, self.__base_token, self.__allowed_ips, self.__cb_stream_ended, allow_ranges) app = cherrypy.tree.mount(self.__root, '/') #Don't log to the screen by default log = cherrypy.log log.access_file = '' log.error_file = '' log.screen = False log.access_log.addHandler(NullLogHandler()) log.error_log.addHandler(NullLogHandler()) self.__server = wsgiserver.CherryPyWSGIServer((host, port), app) threading.Thread.__init__(self)
def __init__(self, session, audio_buffer, host='localhost', try_ports=range(8080,8090), allowed_ips=['127.0.0.1'], allow_ranges=True): port = self._find_free_port(host, try_ports) self.__audio_buffer = audio_buffer sess_ref = weakref.proxy(session) self.__base_token = create_base_token() self.__allowed_ips = allowed_ips self.__cb_stream_ended = DynamicCallback() self.__root = Root( sess_ref, audio_buffer, self.__base_token, self.__allowed_ips, self.__cb_stream_ended, allow_ranges ) app = cherrypy.tree.mount(self.__root, '/') #Don't log to the screen by default log = cherrypy.log log.access_file = '' log.error_file = '' log.screen = False log.access_log.addHandler(NullLogHandler()) log.error_log.addHandler(NullLogHandler()) self.__server = wsgiserver.CherryPyWSGIServer((host, port), app) threading.Thread.__init__(self)
class ProxyRunner(threading.Thread): __server = None __audio_buffer = None __base_token = None __allowed_ips = None __cb_stream_ended = None __root = None def _find_free_port(self, host, port_list): for port in port_list: try: servers.check_port(host, port, .1) return port except: pass list_str = ','.join([str(item) for item in port_list]) raise HTTPProxyError("Cannot find a free port. Tried: %s" % list_str) def __init__(self, session, audio_buffer, host='localhost', try_ports=range(8080, 8090), allowed_ips=['127.0.0.1'], allow_ranges=True): port = self._find_free_port(host, try_ports) self.__audio_buffer = audio_buffer sess_ref = weakref.proxy(session) self.__base_token = create_base_token() self.__allowed_ips = allowed_ips self.__cb_stream_ended = DynamicCallback() self.__root = Root(sess_ref, audio_buffer, self.__base_token, self.__allowed_ips, self.__cb_stream_ended, allow_ranges) app = cherrypy.tree.mount(self.__root, '/') #Don't log to the screen by default log = cherrypy.log log.access_file = '' log.error_file = '' log.screen = False log.access_log.addHandler(NullLogHandler()) log.error_log.addHandler(NullLogHandler()) self.__server = wsgiserver.CherryPyWSGIServer((host, port), app) threading.Thread.__init__(self) def set_stream_end_callback(self, callback): self.__cb_stream_ended.set_callback(callback) def clear_stream_end_callback(self): self.__cb_stream_ended.clear_callback() def run(self): self.__server.start() def get_port(self): return self.__server.bind_addr[1] def get_host(self): return self.__server.bind_addr[0] def get_user_token(self, user_agent): return create_user_token(self.__base_token, user_agent) def ready_wait(self): while not self.__server.ready: time.sleep(.1) def stop(self): self.__audio_buffer.stop() self.__server.stop() self.join(10) self.__root.cleanup()
class ProxyRunner(threading.Thread): __server = None __audio_buffer = None __base_token = None __allowed_ips = None __cb_stream_ended = None __root = None def _find_free_port(self, host, port_list): for port in port_list: try: servers.check_port(host, port, .1) return port except: pass list_str = ','.join([str(item) for item in port_list]) raise HTTPProxyError("Cannot find a free port. Tried: %s" % list_str) def __init__(self, session, audio_buffer, host='localhost', try_ports=range(8080,8090), allowed_ips=['127.0.0.1'], allow_ranges=True): port = self._find_free_port(host, try_ports) self.__audio_buffer = audio_buffer sess_ref = weakref.proxy(session) self.__base_token = create_base_token() self.__allowed_ips = allowed_ips self.__cb_stream_ended = DynamicCallback() self.__root = Root( sess_ref, audio_buffer, self.__base_token, self.__allowed_ips, self.__cb_stream_ended, allow_ranges ) app = cherrypy.tree.mount(self.__root, '/') #Don't log to the screen by default log = cherrypy.log log.access_file = '' log.error_file = '' log.screen = False log.access_log.addHandler(NullLogHandler()) log.error_log.addHandler(NullLogHandler()) self.__server = wsgiserver.CherryPyWSGIServer((host, port), app) threading.Thread.__init__(self) def set_stream_end_callback(self, callback): self.__cb_stream_ended.set_callback(callback) def clear_stream_end_callback(self): self.__cb_stream_ended.clear_callback(); def run(self): self.__server.start() def get_port(self): return self.__server.bind_addr[1] def get_host(self): return self.__server.bind_addr[0] def get_user_token(self, user_agent): return create_user_token(self.__base_token, user_agent) def ready_wait(self): while not self.__server.ready: time.sleep(.1) def stop(self): self.__audio_buffer.stop() self.__server.stop() self.join(10) self.__root.cleanup()