mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Django WSGIHandler is deprecated. Port webserver for Py3.
This commit is contained in:
parent
7477cc56e0
commit
eabdf27565
1 changed files with 14 additions and 11 deletions
|
|
@ -1,15 +1,16 @@
|
|||
"""
|
||||
This implements resources for twisted webservers using the wsgi
|
||||
interface of django. This alleviates the need of running e.g. an
|
||||
apache server to serve Evennia's web presence (although you could do
|
||||
This implements resources for Twisted webservers using the WSGI
|
||||
interface of Django. This alleviates the need of running e.g. an
|
||||
Apache server to serve Evennia's web presence (although you could do
|
||||
that too if desired).
|
||||
|
||||
The actual servers are started inside server.py as part of the Evennia
|
||||
application.
|
||||
|
||||
(Lots of thanks to http://githup.com/clemensha/twisted-wsgi-django for
|
||||
(Lots of thanks to http://github.com/clemesha/twisted-wsgi-django for
|
||||
a great example/aid on how to do this.)
|
||||
|
||||
|
||||
"""
|
||||
import urllib.parse
|
||||
from urllib.parse import quote as urlquote
|
||||
|
|
@ -23,7 +24,8 @@ from twisted.internet import defer
|
|||
|
||||
from twisted.web.wsgi import WSGIResource
|
||||
from django.conf import settings
|
||||
from django.core.handlers.wsgi import WSGIHandler
|
||||
from django.core.wsgi import get_wsgi_application
|
||||
|
||||
|
||||
from evennia.utils import logger
|
||||
|
||||
|
|
@ -119,9 +121,10 @@ class EvenniaReverseProxyResource(ReverseProxyResource):
|
|||
request.content.seek(0, 0)
|
||||
qs = urllib.parse.urlparse(request.uri)[4]
|
||||
if qs:
|
||||
rest = self.path + '?' + qs
|
||||
rest = self.path + '?' + qs.decode()
|
||||
else:
|
||||
rest = self.path
|
||||
rest = rest.encode()
|
||||
clientFactory = self.proxyClientFactoryClass(
|
||||
request.method, rest, request.clientproto,
|
||||
request.getAllHeaders(), request.content.read(), request)
|
||||
|
|
@ -156,8 +159,8 @@ class DjangoWebRoot(resource.Resource):
|
|||
self.pool = pool
|
||||
self._echo_log = True
|
||||
self._pending_requests = {}
|
||||
resource.Resource.__init__(self)
|
||||
self.wsgi_resource = WSGIResource(reactor, pool, WSGIHandler())
|
||||
super().__init__()
|
||||
self.wsgi_resource = WSGIResource(reactor, pool, get_wsgi_application())
|
||||
|
||||
def empty_threadpool(self):
|
||||
"""
|
||||
|
|
@ -242,14 +245,14 @@ class WSGIWebServer(internet.TCPServer):
|
|||
|
||||
"""
|
||||
self.pool = pool
|
||||
internet.TCPServer.__init__(self, *args, **kwargs)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def startService(self):
|
||||
"""
|
||||
Start the pool after the service starts.
|
||||
|
||||
"""
|
||||
internet.TCPServer.startService(self)
|
||||
super().startService()
|
||||
self.pool.start()
|
||||
|
||||
def stopService(self):
|
||||
|
|
@ -257,5 +260,5 @@ class WSGIWebServer(internet.TCPServer):
|
|||
Safely stop the pool after the service stops.
|
||||
|
||||
"""
|
||||
internet.TCPServer.stopService(self)
|
||||
super().stopService()
|
||||
self.pool.stop()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue