commit 2120b1a573f1c0298f6814eebc7a6fc9e0a0b20c
parent 3e6f903da3b49548f5775266e56e5cebebf84c34
Author: ThomasV <thomasv@gitorious>
Date: Fri, 25 Jul 2014 13:30:27 +0200
command line: wait until daemon is connected
Diffstat:
4 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/electrum b/electrum
@@ -113,6 +113,11 @@ def run_command(cmd, password=None, args=None):
s = daemon_socket()
network = NetworkProxy(s, config)
network.start()
+ while network.is_connecting():
+ time.sleep(0.1)
+ if not network.is_connected():
+ print_msg("daemon is not connected")
+ sys.exit(1)
if wallet:
wallet.start_threads(network)
wallet.update()
diff --git a/lib/daemon.py b/lib/daemon.py
@@ -125,7 +125,8 @@ class ClientThread(threading.Thread):
try:
new_id = self.network.interface.send([(method, params)], cb) [0]
except Exception as e:
- self.queue.put(out = {'id':_id, 'error':str(e)})
+ self.queue.put({'id':_id, 'error':str(e)})
+ print_error("network interface error", str(e))
return
self.unanswered_requests[new_id] = _id
diff --git a/lib/network.py b/lib/network.py
@@ -117,7 +117,7 @@ class Network(threading.Thread):
self.subscriptions[self.on_peers] = [('server.peers.subscribe',[])]
self.pending_transactions_for_notifications = []
- self.connection_status = 'disconnected'
+ self.connection_status = 'connecting'
def set_status(self, status):
self.connection_status = status
diff --git a/lib/network_proxy.py b/lib/network_proxy.py
@@ -54,7 +54,7 @@ class NetworkProxy(threading.Thread):
self.daemon = True
# status variables
- self.status = 'disconnected'
+ self.status = 'connecting'
self.servers = {}
self.banner = ''
self.height = 0
@@ -181,6 +181,9 @@ class NetworkProxy(threading.Thread):
def is_connected(self):
return self.status == 'connected'
+ def is_connecting(self):
+ return self.status == 'connecting'
+
def is_up_to_date(self):
return self.synchronous_get([('network.is_up_to_date',[])])[0]