summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2022-05-26 14:52:43 +0200
committerMarcel Hellkamp <marc@gsites.de>2022-05-26 14:52:43 +0200
commit04b27f185412250f9389a6a14d1e1c516c87e13c (patch)
treeab6e3f0e28ce8c6e3fe0b49e80bebb885368c780
parente140e1b54da721a660f2eb9d58a106b7b3ff2f00 (diff)
parent6e9c55ac25993e12eb9674c4b11c8673c55cfd54 (diff)
downloadbottle-04b27f185412250f9389a6a14d1e1c516c87e13c.tar.gz
Merge branch 'release-0.12+cheroot' of https://github.com/juergh/bottle into release-0.12
-rw-r--r--bottle.py30
1 files changed, 28 insertions, 2 deletions
diff --git a/bottle.py b/bottle.py
index 035f99e..4dc8921 100644
--- a/bottle.py
+++ b/bottle.py
@@ -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,