summaryrefslogtreecommitdiffstats
path: root/deluge/ui/web/server.py
diff options
context:
space:
mode:
authorbendikro <bro.devel+deluge@gmail.com>2016-04-13 21:01:27 +0200
committerCalum Lind <calumlind+deluge@gmail.com>2016-04-18 12:01:02 +0100
commit64c67a07ddbe89d8f8af3dbecfe7860909420da7 (patch)
tree3ec88d0fbd4e32dd5abb9fbba4525669b3acb148 /deluge/ui/web/server.py
parent092d496944378d939d141534c843c77becd2c671 (diff)
downloaddeluge-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.py25
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__":