Fix 'autostart localhost if needed' option
This commit is contained in:
parent
36e74e05ca
commit
6eee4fb31f
|
@ -299,9 +299,39 @@ Please see the details below for more information."), details=traceback.format_e
|
||||||
if self.config["autoconnect"]:
|
if self.config["autoconnect"]:
|
||||||
for host in self.connectionmanager.config["hosts"]:
|
for host in self.connectionmanager.config["hosts"]:
|
||||||
if host[0] == self.config["autoconnect_host_id"]:
|
if host[0] == self.config["autoconnect_host_id"]:
|
||||||
|
try_connect = True
|
||||||
|
# Check to see if we need to start the localhost daemon
|
||||||
|
if self.config["autostart_localhost"] and host[1] in ("localhost", "127.0.0.1"):
|
||||||
|
log.debug("Autostarting localhost:%s", host[2])
|
||||||
|
try_connect = client.start_daemon(host[2], deluge.configmanager.get_config_dir())
|
||||||
|
log.debug("Localhost started: %s", try_connect)
|
||||||
|
if not try_connect:
|
||||||
|
dialogs.ErrorDialog(
|
||||||
|
_("Error Starting Daemon"),
|
||||||
|
_("There was an error starting the daemon process. Try running it from a console to see if there is an error.")).run()
|
||||||
|
|
||||||
|
# We'll try 30 reconnects at 500ms intervals
|
||||||
|
try_counter = 30
|
||||||
|
|
||||||
def on_connect(connector):
|
def on_connect(connector):
|
||||||
component.start()
|
component.start()
|
||||||
client.connect(*host[1:]).addCallback(on_connect)
|
def on_connect_fail(result, try_counter):
|
||||||
|
log.error("Connection to host failed..")
|
||||||
|
# We failed connecting to the daemon, but lets try again
|
||||||
|
if try_counter:
|
||||||
|
log.info("Retrying connection.. Retries left: %s", try_counter)
|
||||||
|
try_counter -= 1
|
||||||
|
import time
|
||||||
|
time.sleep(0.5)
|
||||||
|
do_connect()
|
||||||
|
return result
|
||||||
|
|
||||||
|
def do_connect():
|
||||||
|
client.connect(*host[1:]).addCallback(on_connect).addErrback(on_connect_fail, try_counter)
|
||||||
|
|
||||||
|
if try_connect:
|
||||||
|
do_connect()
|
||||||
|
|
||||||
|
|
||||||
if self.config["show_connection_manager_on_start"]:
|
if self.config["show_connection_manager_on_start"]:
|
||||||
# XXX: We need to call a simulate() here, but this could be a bug in twisted
|
# XXX: We need to call a simulate() here, but this could be a bug in twisted
|
||||||
|
|
Loading…
Reference in New Issue