From a365162086a08c4f595a76e54e4ff4dd8c349955 Mon Sep 17 00:00:00 2001 From: nolash Date: Wed, 5 Aug 2020 01:04:20 +0200 Subject: [PATCH] Add socket server stub --- scripts/server.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 scripts/server.py diff --git a/scripts/server.py b/scripts/server.py new file mode 100644 index 0000000..8228764 --- /dev/null +++ b/scripts/server.py @@ -0,0 +1,44 @@ +import socket +import json +import logging + +from jsonrpc.exceptions import JSONRPCParseError + +logging.basicConfig(level=logging.DEBUG) +logg = logging.getLogger() + + +def jsonrpc_error(id, err): + return { + 'json-rpc': '2.0', + 'error': { + 'code': err.CODE, + 'message': err.MESSAGE, + }, + } + + +def jsonrpc_ok(rpc_id, response): + return { + 'json-rpc': '2.0', + 'id': rpc_id, + 'response': response, + } + + +s = socket.socket(family = socket.AF_UNIX, type = socket.SOCK_STREAM) +s.bind('/tmp/foo.ipc') +s.listen(10) +while True: + (csock, caddr) = s.accept() + d = csock.recv(4096) + try: + logg.debug('{}'.format(d.decode('utf-8'))) + json.loads(d) + csock.send(json.dumps(jsonrpc_ok(0, [])).encode('utf-8')) + except: + csock.send(json.dumps(jsonrpc_error(None, JSONRPCParseError)).encode('utf-8')) + csock.close() +s.close() + +os.unlink('/tmp/foo.ipc')