diff options
author | Marcel Hellkamp <marc@gsites.de> | 2022-05-26 14:52:43 +0200 |
---|---|---|
committer | Marcel Hellkamp <marc@gsites.de> | 2022-05-26 14:52:43 +0200 |
commit | 04b27f185412250f9389a6a14d1e1c516c87e13c (patch) | |
tree | ab6e3f0e28ce8c6e3fe0b49e80bebb885368c780 | |
parent | e140e1b54da721a660f2eb9d58a106b7b3ff2f00 (diff) | |
parent | 6e9c55ac25993e12eb9674c4b11c8673c55cfd54 (diff) | |
download | bottle-04b27f185412250f9389a6a14d1e1c516c87e13c.tar.gz |
Merge branch 'release-0.12+cheroot' of https://github.com/juergh/bottle into release-0.12
-rw-r--r-- | bottle.py | 30 |
1 files changed, 28 insertions, 2 deletions
@@ -2795,7 +2795,11 @@ class WSGIRefServer(ServerAdapter): class CherryPyServer(ServerAdapter): def run(self, handler): # pragma: no cover - from cherrypy import wsgiserver + depr(0, 13, "The wsgi server part of cherrypy was split into a new " + "project called 'cheroot'.", "Use the 'cheroot' server " + "adapter instead of cherrypy.") + from cherrypy import wsgiserver # This will fail for CherryPy >= 9 + self.options['bind_addr'] = (self.host, self.port) self.options['wsgi_app'] = handler @@ -2818,6 +2822,25 @@ class CherryPyServer(ServerAdapter): server.stop() +class CherootServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from cheroot import wsgi + from cheroot.ssl import builtin + self.options['bind_addr'] = (self.host, self.port) + self.options['wsgi_app'] = handler + certfile = self.options.pop('certfile', None) + keyfile = self.options.pop('keyfile', None) + chainfile = self.options.pop('chainfile', None) + server = wsgi.Server(**self.options) + if certfile and keyfile: + server.ssl_adapter = builtin.BuiltinSSLAdapter( + certfile, keyfile, chainfile) + try: + server.start() + finally: + server.stop() + + class WaitressServer(ServerAdapter): def run(self, handler): from waitress import serve @@ -2985,7 +3008,9 @@ class BjoernServer(ServerAdapter): class AutoServer(ServerAdapter): """ Untested. """ - adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] + adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, + CherootServer, WSGIRefServer] + def run(self, handler): for sa in self.adapters: try: @@ -2999,6 +3024,7 @@ server_names = { 'wsgiref': WSGIRefServer, 'waitress': WaitressServer, 'cherrypy': CherryPyServer, + 'cheroot': CherootServer, 'paste': PasteServer, 'fapws3': FapwsServer, 'tornado': TornadoServer, |