| 102 | return cast(webaddons.WebAuth, self.addons.get("webauth")).web_url |
| 103 | |
| 104 | async def running(self): |
| 105 | # Register tornado with the current event loop |
| 106 | tornado.ioloop.IOLoop.current() |
| 107 | |
| 108 | # Add our web app. |
| 109 | http_server = tornado.httpserver.HTTPServer( |
| 110 | self.app, max_buffer_size=2**32 |
| 111 | ) # 4GB |
| 112 | try: |
| 113 | http_server.listen(self.options.web_port, self.options.web_host) |
| 114 | except OSError as e: |
| 115 | message = f"Web server failed to listen on {self.options.web_host or '*'}:{self.options.web_port} with {e}" |
| 116 | if e.errno == errno.EADDRINUSE: |
| 117 | message += f"\nTry specifying a different port by using `--set web_port={self.options.web_port + 2}`." |
| 118 | raise OSError(e.errno, message, e.filename) from e |
| 119 | |
| 120 | logger.info(f"Web server listening at {self.web_url}") |
| 121 | |
| 122 | return await super().running() |