<spanid="evennia-server-webserver"></span><h1>evennia.server.webserver<aclass="headerlink"href="#module-evennia.server.webserver"title="Permalink to this headline">¶</a></h1>
<p>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).</p>
<p>The actual servers are started inside server.py as part of the Evennia
application.</p>
<p>(Lots of thanks to <aclass="reference external"href="http://github.com/clemesha/twisted-wsgi-django">http://github.com/clemesha/twisted-wsgi-django</a> for
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">LockableThreadPool</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lock</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.lock"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.lock"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">callInThread</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">func</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#LockableThreadPool.callInThread"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.LockableThreadPool.callInThread"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">HTTPChannelWithXForwardedFor</code><aclass="reference internal"href="../_modules/evennia/server/webserver.html#HTTPChannelWithXForwardedFor"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.HTTPChannelWithXForwardedFor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allHeadersReceived</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#HTTPChannelWithXForwardedFor.allHeadersReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.HTTPChannelWithXForwardedFor.allHeadersReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Check to see if this is a reverse proxied connection.</p>
<codeclass="sig-name descname">getChild</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">path</span></em>, <emclass="sig-param"><spanclass="n">request</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#EvenniaReverseProxyResource.getChild"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.EvenniaReverseProxyResource.getChild"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">render</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">request</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#EvenniaReverseProxyResource.render"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.EvenniaReverseProxyResource.render"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">DjangoWebRoot</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">pool</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">pool</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">empty_threadpool</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.empty_threadpool"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.empty_threadpool"title="Permalink to this definition">¶</a></dt>
<dd><p>Converts our _pending_requests list of deferreds into a DeferredList</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><em>deflist (DeferredList)</em>– Contains all deferreds of pending requests.</p>
<codeclass="sig-name descname">getChild</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">path</span></em>, <emclass="sig-param"><spanclass="n">request</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#DjangoWebRoot.getChild"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.DjangoWebRoot.getChild"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.webserver.Website.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#Website.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.Website.logPrefix"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">log</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">request</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#Website.log"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.Website.log"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.webserver.</code><codeclass="sig-name descname">WSGIWebServer</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">pool</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n">pool</span></em>, <emclass="sig-param"><spanclass="o">*</span><spanclass="n">args</span></em>, <emclass="sig-param"><spanclass="o">**</span><spanclass="n">kwargs</span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">startService</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.startService"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.startService"title="Permalink to this definition">¶</a></dt>
<dd><p>Start the pool after the service starts.</p>
<codeclass="sig-name descname">stopService</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#WSGIWebServer.stopService"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.WSGIWebServer.stopService"title="Permalink to this definition">¶</a></dt>
<dd><p>Safely stop the pool after the service stops.</p>
<codeclass="sig-name descname">directoryListing</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/webserver.html#PrivateStaticRoot.directoryListing"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.webserver.PrivateStaticRoot.directoryListing"title="Permalink to this definition">¶</a></dt>
<dd><p>Return a resource that generates an HTML listing of the
directory this path represents.</p>
<p>@return: A resource that renders the directory to HTML.