diff options
author | bendikro <bro.devel+deluge@gmail.com> | 2016-04-13 21:01:27 +0200 |
---|---|---|
committer | Calum Lind <calumlind+deluge@gmail.com> | 2016-04-18 12:01:02 +0100 |
commit | 64c67a07ddbe89d8f8af3dbecfe7860909420da7 (patch) | |
tree | 3ec88d0fbd4e32dd5abb9fbba4525669b3acb148 /deluge/ui/web/server.py | |
parent | 092d496944378d939d141534c843c77becd2c671 (diff) | |
download | deluge-64c67a07ddbe89d8f8af3dbecfe7860909420da7.tar.gz deluge-64c67a07ddbe89d8f8af3dbecfe7860909420da7.tar.bz2 deluge-64c67a07ddbe89d8f8af3dbecfe7860909420da7.zip |
[WebUI] Fix #2798: WebUI plugin fails to start
Diffstat (limited to 'deluge/ui/web/server.py')
-rw-r--r-- | deluge/ui/web/server.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/deluge/ui/web/server.py b/deluge/ui/web/server.py index 31546401d..a6c8abdd9 100644 --- a/deluge/ui/web/server.py +++ b/deluge/ui/web/server.py @@ -544,7 +544,7 @@ class DelugeWeb(component.Component): self.base = self.config["base"] self.web_api = WebApi() self.auth = Auth(self.config) - + self.standalone = True # Initalize the plugins self.plugins = PluginManager() @@ -567,15 +567,31 @@ class DelugeWeb(component.Component): return 1 SetConsoleCtrlHandler(win_handler) - def start(self): + def start(self, standalone=True): + """ + Start the DelugeWeb server + + When running WebUI plugin, the server must not try to start + the twisted reactor. + + Args: + standalone (bool): Whether the server runs as a standalone process + If standalone, start twisted reactor. + + Returns: + Deferred + """ log.info("%s %s.", _("Starting server in PID"), os.getpid()) + self.standalone = standalone if self.https: self.start_ssl() else: self.start_normal() component.get("Web").enable() - reactor.run() + + if self.standalone: + reactor.run() def start_normal(self): self.socket = reactor.listenTCP(self.port, self.site, interface=self.interface) @@ -613,7 +629,8 @@ class DelugeWeb(component.Component): def shutdown(self, *args): self.stop() - reactor.stop() + if self.standalone: + reactor.stop() if __name__ == "__builtin__": |