def process(self, request):
pass
+ def add_request(self, request):
+ self.queue.put(request)
+
def push_response(self, response):
#print "response", response
self.dispatcher.request_dispatcher.push_response(response)
method = request['method']
params = request.get('params',[])
suffix = method.split('.')[-1]
+
+ is_new = session.protocol_version >= 0.5
+
+ if is_new and method == 'blockchain.address.get_history':
+ method = 'blockchain.address.get_history2'
+ request['method'] = method
+
if suffix == 'subscribe':
+ if is_new and method == 'blockchain.address.subscribe':
+ method = 'blockchain.address.subscribe2'
+ request['method'] = method
+
session.subscribe_to_service(method, params)
# store session and id locally
print "error: no processor for", prefix
return
- p.queue.put(request)
+ p.add_request(request)
if method in ['server.version']:
session.version = params[0]
+ try:
+ session.protocol_version = float(params[1])
+ except:
+ pass
def get_sessions(self):
with self.lock:
self.address = ''
self.name = ''
self.version = 'unknown'
+ self.protocol_version = 0.
self.time = time.time()
threading.Timer(2, self.info).start()
return method,
elif method == "blockchain.headers.subscribe":
return method,
- elif method == "blockchain.address.subscribe":
+ elif method in ["blockchain.address.subscribe", "blockchain.address.subscribe2"]:
if not params:
return None
else:
if session.stopped():
continue
if session.contains_subscription(subdesc):
+ if response.get('method') == "blockchain.address.subscribe2":
+ response['method'] = "blockchain.address.subscribe"
session.send_response(response)
def send_response(self, internal_id, response):