| 331 | | |
|---|
| 332 | | |
|---|
| 333 | | # Server components # |
|---|
| 334 | | |
|---|
| 335 | | |
|---|
| 336 | | class CPHTTPRequest(wsgiserver.HTTPRequest): |
|---|
| 337 | | |
|---|
| 338 | | def __init__(self, sendall, environ, wsgi_app): |
|---|
| 339 | | s = _cherrypy.server |
|---|
| 340 | | self.max_request_header_size = s.max_request_header_size or 0 |
|---|
| 341 | | self.max_request_body_size = s.max_request_body_size or 0 |
|---|
| 342 | | wsgiserver.HTTPRequest.__init__(self, sendall, environ, wsgi_app) |
|---|
| 343 | | |
|---|
| 344 | | |
|---|
| 345 | | class CPHTTPConnection(wsgiserver.HTTPConnection): |
|---|
| 346 | | |
|---|
| 347 | | RequestHandlerClass = CPHTTPRequest |
|---|
| 348 | | |
|---|
| 349 | | |
|---|
| 350 | | class CPWSGIServer(wsgiserver.CherryPyWSGIServer): |
|---|
| 351 | | """Wrapper for wsgiserver.CherryPyWSGIServer. |
|---|
| 352 | | |
|---|
| 353 | | wsgiserver has been designed to not reference CherryPy in any way, |
|---|
| 354 | | so that it can be used in other frameworks and applications. Therefore, |
|---|
| 355 | | we wrap it here, so we can set our own mount points from cherrypy.tree |
|---|
| 356 | | and apply some attributes from config -> cherrypy.server -> wsgiserver. |
|---|
| 357 | | """ |
|---|
| 358 | | |
|---|
| 359 | | ConnectionClass = CPHTTPConnection |
|---|
| 360 | | |
|---|
| 361 | | def __init__(self): |
|---|
| 362 | | server = _cherrypy.server |
|---|
| 363 | | sockFile = server.socket_file |
|---|
| 364 | | if sockFile: |
|---|
| 365 | | bind_addr = sockFile |
|---|
| 366 | | else: |
|---|
| 367 | | bind_addr = (server.socket_host, server.socket_port) |
|---|
| 368 | | |
|---|
| 369 | | s = wsgiserver.CherryPyWSGIServer |
|---|
| 370 | | s.__init__(self, bind_addr, _cherrypy.tree, |
|---|
| 371 | | server.thread_pool, |
|---|
| 372 | | server.socket_host, |
|---|
| 373 | | request_queue_size = server.socket_queue_size, |
|---|
| 374 | | timeout = server.socket_timeout, |
|---|
| 375 | | shutdown_timeout = server.shutdown_timeout, |
|---|
| 376 | | ) |
|---|
| 377 | | self.protocol = server.protocol_version |
|---|
| 378 | | self.nodelay = server.nodelay |
|---|
| 379 | | self.ssl_certificate = server.ssl_certificate |
|---|
| 380 | | self.ssl_private_key = server.ssl_private_key |
|---|
| 381 | | |
|---|