From 625508f5c6587f527efd4eb19ec9451cc466f63e Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sat, 3 Dec 2016 10:56:55 +0900 Subject: [PATCH] Send no ID for batch request errors Fixes #54 --- lib/jsonrpc.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/jsonrpc.py b/lib/jsonrpc.py index 6329a83..5688f84 100644 --- a/lib/jsonrpc.py +++ b/lib/jsonrpc.py @@ -211,16 +211,17 @@ class JSONRPC(asyncio.Protocol, LoggedClass): if self.transport.is_closing(): return + id_ = payload.get('id') if isinstance(payload, dict) else None try: data = (json.dumps(payload) + '\n').encode() except TypeError: msg = 'JSON encoding failure: {}'.format(payload) self.logger.error(msg) - self.send_json_error(msg, self.INTERNAL_ERROR, payload.get('id')) + self.send_json_error(msg, self.INTERNAL_ERROR, id_) else: if len(data) > max(1000, self.max_send): - self.send_json_error('request too large', self.INVALID_REQUEST, - payload.get('id')) + self.send_json_error('request too large', + self.INVALID_REQUEST, id_) raise self.LargeRequestError else: self.send_count += 1