Index: third_party/cherrypy/_cpwsgi_server.py |
=================================================================== |
--- third_party/cherrypy/_cpwsgi_server.py (revision 0) |
+++ third_party/cherrypy/_cpwsgi_server.py (revision 0) |
@@ -0,0 +1,63 @@ |
+"""WSGI server interface (see PEP 333). This adds some CP-specific bits to |
+the framework-agnostic wsgiserver package. |
+""" |
+import sys |
+ |
+import cherrypy |
+from cherrypy import wsgiserver |
+ |
+ |
+class CPWSGIServer(wsgiserver.CherryPyWSGIServer): |
+ """Wrapper for wsgiserver.CherryPyWSGIServer. |
+ |
+ wsgiserver has been designed to not reference CherryPy in any way, |
+ so that it can be used in other frameworks and applications. Therefore, |
+ we wrap it here, so we can set our own mount points from cherrypy.tree |
+ and apply some attributes from config -> cherrypy.server -> wsgiserver. |
+ """ |
+ |
+ def __init__(self, server_adapter=cherrypy.server): |
+ self.server_adapter = server_adapter |
+ self.max_request_header_size = self.server_adapter.max_request_header_size or 0 |
+ self.max_request_body_size = self.server_adapter.max_request_body_size or 0 |
+ |
+ server_name = (self.server_adapter.socket_host or |
+ self.server_adapter.socket_file or |
+ None) |
+ |
+ self.wsgi_version = self.server_adapter.wsgi_version |
+ s = wsgiserver.CherryPyWSGIServer |
+ s.__init__(self, server_adapter.bind_addr, cherrypy.tree, |
+ self.server_adapter.thread_pool, |
+ server_name, |
+ max = self.server_adapter.thread_pool_max, |
+ request_queue_size = self.server_adapter.socket_queue_size, |
+ timeout = self.server_adapter.socket_timeout, |
+ shutdown_timeout = self.server_adapter.shutdown_timeout, |
+ ) |
+ self.protocol = self.server_adapter.protocol_version |
+ self.nodelay = self.server_adapter.nodelay |
+ |
+ if sys.version_info >= (3, 0): |
+ ssl_module = self.server_adapter.ssl_module or 'builtin' |
+ else: |
+ ssl_module = self.server_adapter.ssl_module or 'pyopenssl' |
+ if self.server_adapter.ssl_context: |
+ adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module) |
+ self.ssl_adapter = adapter_class( |
+ self.server_adapter.ssl_certificate, |
+ self.server_adapter.ssl_private_key, |
+ self.server_adapter.ssl_certificate_chain) |
+ self.ssl_adapter.context = self.server_adapter.ssl_context |
+ elif self.server_adapter.ssl_certificate: |
+ adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module) |
+ self.ssl_adapter = adapter_class( |
+ self.server_adapter.ssl_certificate, |
+ self.server_adapter.ssl_private_key, |
+ self.server_adapter.ssl_certificate_chain) |
+ |
+ self.stats['Enabled'] = getattr(self.server_adapter, 'statistics', False) |
+ |
+ def error_log(self, msg="", level=20, traceback=False): |
+ cherrypy.engine.log(msg, level, traceback) |
+ |
Property changes on: third_party/cherrypy/_cpwsgi_server.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |