persistent

This commit is contained in:
ThomasV 2012-03-17 02:46:23 +03:00
parent fca7158a4c
commit ac8ed610e7
1 changed files with 6 additions and 6 deletions

View File

@ -446,7 +446,7 @@ def do_update_address(addr):
# the address can be subscribed in several sessions; the cache should ensure that we don't do redundant requests # the address can be subscribed in several sessions; the cache should ensure that we don't do redundant requests
for session_id in sessions.keys(): for session_id in sessions.keys():
session = sessions[session_id] session = sessions[session_id]
if session.get('type') != 'subscribe': continue if session.get('type') != 'persistent': continue
addresses = session['addresses'].keys() addresses = session['addresses'].keys()
if addr in addresses: if addr in addresses:
@ -487,7 +487,6 @@ def subscribe_to_numblocks(session_id, message_id):
def subscribe_to_address(session_id, message_id, address): def subscribe_to_address(session_id, message_id, address):
status = get_address_status(address) status = get_address_status(address)
sessions[session_id]['type'] = 'subscribe'
sessions[session_id]['addresses'][address] = (message_id, status) sessions[session_id]['addresses'][address] = (message_id, status)
sessions[session_id]['last_time'] = time.time() sessions[session_id]['last_time'] = time.time()
send_status(session_id, message_id, address, status) send_status(session_id, message_id, address, status)
@ -695,7 +694,7 @@ def tcp_client_thread(ipaddr,conn):
global sessions global sessions
session_id = random_string(10) session_id = random_string(10)
sessions[session_id] = { 'conn':conn, 'addresses':{}, 'version':'unknown' } sessions[session_id] = { 'conn':conn, 'addresses':{}, 'version':'unknown', 'type':'persistent' }
ipaddr = ipaddr[0] ipaddr = ipaddr[0]
msg = '' msg = ''
@ -761,9 +760,10 @@ def process_input_queue():
address = data[0] address = data[0]
out = { 'result':store.get_history( address ) } out = { 'result':store.get_history( address ) }
elif method == 'transaction.broadcast': elif method == 'transaction.broadcast':
txo = send_tx(data) postdata = dumps({"method": 'importtransaction', 'params': [data], 'id':'jsonrpc'})
txo = urllib.urlopen(bitcoind_url, postdata).read()
print "sent tx:", txo print "sent tx:", txo
out = { 'result':txo } out = json.loads(txo)
else: else:
print "unknown command", method print "unknown command", method
if out: if out:
@ -824,7 +824,7 @@ def clean_session_thread():
time.sleep(30) time.sleep(30)
t = time.time() t = time.time()
for k,s in sessions.items(): for k,s in sessions.items():
if s.get('type') == 'subscribe': continue if s.get('type') == 'persistent': continue
t0 = s['last_time'] t0 = s['last_time']
if t - t0 > 5*60: if t - t0 > 5*60:
sessions.pop(k) sessions.pop(k)