| 2792 | |
| 2793 | class CherryPyServer(ServerAdapter): |
| 2794 | def run(self, handler): # pragma: no cover |
| 2795 | from cherrypy import wsgiserver |
| 2796 | self.options['bind_addr'] = (self.host, self.port) |
| 2797 | self.options['wsgi_app'] = handler |
| 2798 | |
| 2799 | certfile = self.options.get('certfile') |
| 2800 | if certfile: |
| 2801 | del self.options['certfile'] |
| 2802 | keyfile = self.options.get('keyfile') |
| 2803 | if keyfile: |
| 2804 | del self.options['keyfile'] |
| 2805 | |
| 2806 | server = wsgiserver.CherryPyWSGIServer(**self.options) |
| 2807 | if certfile: |
| 2808 | server.ssl_certificate = certfile |
| 2809 | if keyfile: |
| 2810 | server.ssl_private_key = keyfile |
| 2811 | |
| 2812 | try: |
| 2813 | server.start() |
| 2814 | finally: |
| 2815 | server.stop() |
| 2816 | |
| 2817 | |
| 2818 | class WaitressServer(ServerAdapter): |