from twisted.python import threadpool from src.server.webserver import DjangoWebRoot, WSGIWebServer # start a thread pool and define the root url (/) as a wsgi resource # recognized by Django threads = threadpool.ThreadPool(minthreads=max(1, settings.WEBSERVER_THREADPOOL_LIMITS[0]), maxthreads=max(1, settings.WEBSERVER_THREADPOOL_LIMITS[1])) web_root = DjangoWebRoot(threads) # point our media resources to url /media web_root.putChild("media", static.File(settings.MEDIA_ROOT)) web_site = server.Site(web_root, logPath=settings.HTTP_LOG_FILE) for proxyport, serverport in WEBSERVER_PORTS: # create the webserver (we only need the port for this) webserver = WSGIWebServer(threads, serverport, web_site, interface='127.0.0.1') webserver.setName('EvenniaWebServer%s' % serverport) EVENNIA.services.addService(webserver) print " webserver: %s" % serverport ENABLED = [] if IRC_ENABLED: # IRC channel connections ENABLED.append('irc') if IMC2_ENABLED: # IMC2 channel connections ENABLED.append('imc2') if RSS_ENABLED:
webclientstr = "/client" web_site = server.Site(web_root, logPath=settings.HTTP_LOG_FILE) for interface in WEBSERVER_INTERFACES: if ":" in interface: print " iPv6 interfaces not yet supported" continue ifacestr = "" if interface != '0.0.0.0' or len(WEBSERVER_INTERFACES) > 1: ifacestr = "-%s" % interface for port in WEBSERVER_PORTS: pstring = "%s:%s" % (ifacestr, port) # create the webserver webserver = WSGIWebServer(threads, port, web_site, interface=interface) webserver.setName('EvenniaWebServer%s' % pstring) PORTAL.services.addService(webserver) print " webserver%s%s: %s" % (webclientstr, ifacestr, port) for plugin_module in PORTAL_SERVICES_PLUGIN_MODULES: # external plugin services to start plugin_module.start_plugin_services(PORTAL) print '-' * 50 # end of terminal output if os.name == 'nt': # Windows only: Set PID file manually f = open(os.path.join(settings.GAME_DIR, 'portal.pid'), 'w')