def start_http(address, port): import sys from ZServer import asyncore from ZServer import zhttp_server, zhttp_handler import socket import Zope # Sigh, make product initialization happen try: Zope.startup() except: # Zope > 2.6 pass from ZServer import setNumberOfThreads setNumberOfThreads(4) try: hs = zhttp_server( ip=address, port=port, resolver=None, logger_object=None) except socket.error, why: if why[0] == 98: # address in use raise port_err % {'port':port, 'socktype':'TCP', 'protocol':'HTTP', 'switch':'-w'} raise
def setUpServer(self): """Create a ZServer server instance and save it in self.zserver """ from ZServer import zhttp_server, zhttp_handler, logger from StringIO import StringIO log = self.log if log is None: log = StringIO() zopeLog = logger.file_logger(log) server = zhttp_server( ip=self.host, port=self.port, resolver=None, logger_object=zopeLog, ) # If we dynamically set the host/port, we want to reset it to localhost # Otherwise this will depend on, for example, the local network setup if self.host in ( '', '0.0.0.0', '127.0.0.1', ): server.server_name = 'localhost' # Refresh the hostname and port in case we dynamically picked them self['host'] = self.host = server.server_name self['port'] = self.port = server.server_port zhttpHandler = zhttp_handler(module='Zope2', uri_base='') server.install_handler(zhttpHandler) self.zserver = server
def setUpServer(self): """Create a ZServer server instance and save it in self.zserver """ from ZServer import zhttp_server, zhttp_handler, logger from StringIO import StringIO log = self.log if log is None: log = StringIO() zopeLog = logger.file_logger(log) server = zhttp_server( ip=self.host, port=self.port, resolver=None, logger_object=zopeLog, ) # If we dynamically set the host/port, we want to reset it to localhost # Otherwise this will depend on, for example, the local network setup if self.host in ('', '0.0.0.0', '127.0.0.1', ): server.server_name = 'localhost' # Refresh the hostname and port in case we dynamically picked them self['host'] = self.host = server.server_name self['port'] = self.port = server.server_port zhttpHandler = zhttp_handler(module='Zope2', uri_base='') server.install_handler(zhttpHandler) self.zserver = server
def zserverRunner(host, port, log=None): '''Runs an HTTP ZServer on host:port.''' from ZServer import logger, asyncore from ZServer import zhttp_server, zhttp_handler if log is None: log = dummyLOG lg = logger.file_logger(log) hs = zhttp_server(ip=host, port=port, resolver=None, logger_object=lg) zh = zhttp_handler(module='Zope2', uri_base='') hs.install_handler(zh) asyncore.loop()
def setUpServer(self): """Create a ZServer server instance and save it in self.zserver """ from ZServer import zhttp_server, zhttp_handler, logger from StringIO import StringIO log = self.log if log is None: log = StringIO() zopeLog = logger.file_logger(log) server = zhttp_server(ip=self.host, port=self.port, resolver=None, logger_object=zopeLog) zhttpHandler = zhttp_handler(module='Zope2', uri_base='') server.install_handler(zhttpHandler) self.zserver = server
def setUpZServerThread(self): """Create a ZServer server instance and its thread Save them, respectively, in self.zserver and self.thread """ from ZServer import zhttp_server, zhttp_handler, logger from cStringIO import StringIO zlog = logger.file_logger(StringIO()) zserver = zhttp_server(ip=self.host, port=self.port, resolver=None, logger_object=zlog) zhandler = zhttp_handler(module=bobo_app_name, uri_base='') zserver.install_handler(zhandler) self.zserver = zserver name = self.__class__.__name__ self.zthread = ZServerThread(name="%s server" % name) self.zthread.start()
sys.__lg = lg port_err=('\n\nZope wants to use %(socktype)s port %(port)s for its ' '%(protocol)s service, but it is already in use by another ' 'application on this machine. Either shut the application down ' 'which is using this port, or start Zope with a different ' '%(protocol)s port via the "%(switch)s" command-line switch.\n') # HTTP Server if HTTP_PORT: if isinstance(HTTP_PORT, IntType): HTTP_PORT=((IP_ADDRESS, HTTP_PORT),) for address, port in HTTP_PORT: try: hs = zhttp_server( ip=address, port=port, resolver=rs, logger_object=lg) except socket.error, why: if why[0] == 98: # address in use raise port_err % {'port':port, 'socktype':'TCP', 'protocol':'HTTP', 'switch':'-w'} raise # Handler for a published module. zhttp_handler takes 3 arguments: # The name of the module to publish, and optionally the URI base # which is basically the SCRIPT_NAME, and optionally a dictionary # with CGI environment variables which override default # settings. The URI base setting is useful when you want to # publish more than one module with the same HTTP server. The CGI