electrum

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

commit 583d36a763090e175d720138d42def0e51411980
parent 3b357b6a6de7ff02c99328ec2a91679ca71c1788
Author: ThomasV <electrumdev@gmail.com>
Date:   Tue,  5 May 2015 14:35:03 +0200

Merge pull request #1193 from kyuupichan/if-cleanup4

Move ping functionality into its own function.
Diffstat:
Mlib/interface.py | 27+++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/lib/interface.py b/lib/interface.py @@ -63,6 +63,7 @@ class TcpInterface(threading.Thread): self.unanswered_requests = {} # are we waiting for a pong? self.is_ping = False + self.ping_time = 0 # parse server self.server = server self.host, self.port, self.protocol = self.server.split(':') @@ -276,6 +277,17 @@ class TcpInterface(threading.Thread): self.connected = False self.print_error("stopped") + def maybe_ping(self): + # ping the server with server.version? + if time.time() - self.ping_time > 60: + if self.is_ping: + self.print_error("ping timeout") + self.stop() + else: + self.send_request({'method':'server.version', 'params':[ELECTRUM_VERSION, PROTOCOL_VERSION]}) + self.is_ping = True + self.ping_time = time.time() + def run(self): self.s = self.get_socket() if self.s: @@ -288,21 +300,12 @@ class TcpInterface(threading.Thread): if not self.connected: return - # ping timer - ping_time = 0 # request timer request_time = False while self.connected: - # ping the server with server.version - if time.time() - ping_time > 60: - if self.is_ping: - self.print_error("ping timeout") - self.connected = False - break - else: - self.send_request({'method':'server.version', 'params':[ELECTRUM_VERSION, PROTOCOL_VERSION]}) - self.is_ping = True - ping_time = time.time() + self.maybe_ping() + if not self.connected: + break try: response = self.pipe.get() except util.timeout: