1
0

move start_session into wallet methods. replace get_servers with network dialog

This commit is contained in:
thomasv
2012-05-02 14:21:58 +02:00
parent 6c55410820
commit 505c1a3887
3 changed files with 52 additions and 62 deletions

View File

@@ -20,6 +20,8 @@
import random, socket, ast, re
import threading, traceback, sys, time, json, Queue
from version import ELECTRUM_VERSION
DEFAULT_TIMEOUT = 5
DEFAULT_SERVERS = [ 'ecdsa.org:50001:t', 'electrum.novit.ro:50001:t', 'electrum.bitcoins.sk:50001:t'] # list of default servers
@@ -93,31 +95,6 @@ class Interface(threading.Thread):
self.send(messages)
def get_servers(self, wallet):
# loop over default servers
# requesting servers could be an independent process
addresses = wallet.all_addresses()
version = wallet.electrum_version
for server in DEFAULT_SERVERS:
print "connecting to", server
try:
self.host = server
self.start_session(addresses, version)
wallet.host = self.host
break
except socket.timeout:
continue
except socket.error:
continue
except:
traceback.print_exc(file=sys.stdout)
def start_session(self, addresses, version):
#print "Starting new session: %s:%d"%(self.host,self.port)
self.send([('server.version', [version]), ('server.banner',[]), ('blockchain.numblocks.subscribe',[]), ('server.peers.subscribe',[])])
self.subscribe(addresses)
class PollingInterface(Interface):
@@ -240,6 +217,7 @@ class TcpStratumInterface(Interface):
try:
self.s.connect(( self.host, self.port))
self.is_connected = True
self.send([('server.version', [ELECTRUM_VERSION])])
except:
self.is_connected = False
print "not connected"
@@ -367,21 +345,12 @@ class WalletSynchronizer(threading.Thread):
InterfaceClass = TcpStratumInterface
self.interface = InterfaceClass(host, port)
self.interface.start()
self.wallet.interface = self.interface
with self.wallet.lock:
self.wallet.addresses_waiting_for_status = []
self.wallet.addresses_waiting_for_history = []
addresses = self.wallet.all_addresses()
version = self.wallet.electrum_version
for addr in addresses:
self.wallet.addresses_waiting_for_status.append(addr)
if self.interface.is_connected:
self.wallet.start_session(self.interface)
try:
self.interface.start()
self.interface.start_session(addresses,version)
except:
self.interface.is_connected = False
def run(self):