Browse Source

interface: forward errors

283
ThomasV 11 years ago
parent
commit
dd849964d1
  1. 9
      lib/interface.py
  2. 13
      lib/network_proxy.py

9
lib/interface.py

@ -82,10 +82,6 @@ class TcpInterface(threading.Thread):
error = response.get('error') error = response.get('error')
result = response.get('result') result = response.get('result')
if error:
print_error("received error:", response)
return
if msg_id is not None: if msg_id is not None:
with self.lock: with self.lock:
method, params, _id, queue = self.unanswered_requests.pop(msg_id) method, params, _id, queue = self.unanswered_requests.pop(msg_id)
@ -114,7 +110,10 @@ class TcpInterface(threading.Thread):
self.is_ping = False self.is_ping = False
return return
queue.put((self, {'method':method, 'params':params, 'result':result, 'id':_id})) if error:
queue.put((self, {'method':method, 'params':params, 'error':error, 'id':_id}))
else:
queue.put((self, {'method':method, 'params':params, 'result':result, 'id':_id}))
def get_socket(self): def get_socket(self):

13
lib/network_proxy.py

@ -109,6 +109,7 @@ class NetworkProxy(threading.Thread):
msg_id = response.get('id') msg_id = response.get('id')
result = response.get('result') result = response.get('result')
error = response.get('error')
if msg_id is not None: if msg_id is not None:
with self.lock: with self.lock:
method, params, callback = self.unanswered_requests.pop(msg_id) method, params, callback = self.unanswered_requests.pop(msg_id)
@ -125,7 +126,7 @@ class NetworkProxy(threading.Thread):
return return
r = {'method':method, 'params':params, 'result':result, 'id':msg_id} r = {'method':method, 'params':params, 'result':result, 'id':msg_id, 'error':error}
callback(r) callback(r)
@ -171,11 +172,11 @@ class NetworkProxy(threading.Thread):
while ids: while ids:
r = queue.get(True, timeout) r = queue.get(True, timeout)
_id = r.get('id') _id = r.get('id')
if _id in ids: ids.remove(_id)
ids.remove(_id) if r.get('error'):
res[_id] = r.get('result') return BaseException(r.get('error'))
else: result = r.get('result')
raise res[_id] = r.get('result')
out = [] out = []
for _id in id2: for _id in id2:
out.append(res[_id]) out.append(res[_id])

Loading…
Cancel
Save