electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

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:
Melectrum | 5+++++
Mlib/daemon.py | 3++-
Mlib/network.py | 2+-
Mlib/network_proxy.py | 5++++-
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]