Source

CherryPy / cherrypy / _cpwsgi.py

Author Commit Message Labels Comments Date
Robert Brewer avatarRobert Brewer
New engine.release method, which decouples request and engine. Also new server.base method, which simplifies cherrypy.url. Finally, cherrypy._serving is promoted to cherrypy.serving, and has a new "load" method.
Robert Brewer avatarRobert Brewer
IR now sets Content-Length and closes nextapp.
Robert Brewer avatarRobert Brewer
Blurg. Horrible late rewrite of WSGI stack due to missing close calls (one test fails still: IR with HTTP/1.0).
Robert Brewer avatarRobert Brewer
Renamed {{{_cpwsgiserver.py}}} to {{{wsgiserver.py}}}, to make it more clear that it's a public, reusable module. Also renamed {{{_cpwsgi.WSGIServer}}} to {{{_cpwsgi.CPWSGIServer}}}, to match the naming convention of the other subclasses in that module.
Robert Brewer avatarRobert Brewer
Doc tweaks.
Robert Brewer avatarRobert Brewer
InternalRedirect changes:
Robert Brewer avatarRobert Brewer
Transformed _cptree.wsgi_handler function into _cpwsgi.CPWSGIApp class (a delegate for the Application object), and merged in the wsgi.pipeline functionality. This removes the need to call wsgi.pipeline(app) before tree.mount.
Sylvain Hellegouarch avatarSylvain Hellegouarch
SSL certificates and HTTP protocol attached to the instance of the WSGI server not to its class. Allow several instances of the WSGIServer to be created and bound at different (host, port)
Robert Brewer avatarRobert Brewer
SSL support for _cpwsgiserver. One test fails immaterially. Run "test.py --ssl" to test.
Robert Brewer avatarRobert Brewer
Fix for #559 (allow config of WSGI middleware) via cherrypy.wsgi.pipeline. Includes tests.
Robert Brewer avatarRobert Brewer
Moved _wsgi_callable to _cptree, and we now import _cpwsgi as cherrypy.wsgi. Also made {{{App.__call__}}} route to {{{App.wsgiapp}}} so the latter can be replaced by user code (i.e. it's not a special method).
Robert Brewer avatarRobert Brewer
More (final?) config overhaul work:
Robert Brewer avatarRobert Brewer
Overhaul of config system:
Robert Brewer avatarRobert Brewer
Default ACTUAL_SERVER_PROTOCOL to "HTTP/1.1". If None, then Request.run fails with "unsubscriptable object".
Robert Brewer avatarRobert Brewer
Fixed the HTTP/1.0 test suite. This involved moving wsgi SERVER_PROTOCOL back (to what the spec says!) and adding a new non-standard ACTUAL_SERVER_PROTOCOL entry.
Robert Brewer avatarRobert Brewer
Fix for #553 (pure WSGI apps on the tree). Request.app now MUST be a cherrypy.Application instance (not None) before Request.run() is called.
Robert Brewer avatarRobert Brewer
Support for max_request_body_size when decoding chunked request body (also fixes a long-standing bug when max header size exceeded).
Robert Brewer avatarRobert Brewer
Better support for Expect/100 Continue.
Robert Brewer avatarRobert Brewer
Fix for #551 (_cpwsgiserver should handle persistent connections). All of CP should now default to HTTP/1.1. Some tests still need to be written, and 1.0 support reviewed throughout, but the basics work.
Robert Brewer avatarRobert Brewer
Cosmetics.
Robert Brewer avatarRobert Brewer
WSGI improvements from Christian's cp3-wsgi-remix branch:
Robert Brewer avatarRobert Brewer
Missing call to request.close() on KeyboardInterrupt, SystemExit within buffered page handler.
Robert Brewer avatarRobert Brewer
New server.socket_timeout config entry, thanks to Albert Visagie. See http://groups.google.com/group/cherrypy-devel/browse_frm/thread/ef761a8063cdc72b
Robert Brewer avatarRobert Brewer
Replaced request.remote_addr, remote_port, and remote_host with a single "remote" attribute, an instance of lib.http.Host, which has "ip", "port" and "name" attributes. Added a similar request.local attribute. Changed request() signature to (local, remote, scheme). This allows requests run behind multiple HTTP servers to know the address info for their particular connection.
Robert Brewer avatarRobert Brewer
WSGI-related changes:
Robert Brewer avatarRobert Brewer
If we assume all incoming request header names are uppercase, we get a big speedup. If anyone ever complains about this, it's easy enough to revert.
Robert Brewer avatarRobert Brewer
Optimized {{{_cpwsgi.translate_headers}}}.
Robert Brewer avatarRobert Brewer
benchmark still needed socket-error suppression.
Robert Brewer avatarRobert Brewer
New _cpwsgi.make_app function for creating isolated WSGI application callables. You should only need to use it if two WSGI apps share the same script_name, or if you use a WSGI tool which expects a separate callable for each app.
Robert Brewer avatarRobert Brewer
Renamed httptools to "http" to reduce confusion with new cherrypy.tools. Moved non-Tool-related code from cptools to {{{lib/__init__}}}. Added docstrings.
  1. Prev
  2. 1
  3. 2
  4. 3
  5. 4
  6. Next
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.