INNER CODE UNIT · Python

serve

oneclickvirt/ecs · agent/server.py:291

def serve(adapter, input_stream=sys.stdin, output_stream=sys.stdout):
    for line in input_stream:
        if len(line) > LIMIT:
            error = {"jsonrpc": "2.0", "id": None, "error": {"code": -32600, "message": "Message exceeds 1 MiB"}}
            output_stream.write(json.dumps(error) + "\n")
            output_stream.flush()
            continue
        try:
            message = json.loads(line)
        except ValueError:
            output_stream.write(json.dumps({"jsonrpc": "2.0", "id": None, "error": {"code": -32700, "message": "Parse error"}}) + "\n")
            output_stream.flush()
            continue
        if not isinstance(message, dict) or message.get("jsonrpc") != "2.0" or not isinstance(message.get("method"), str):
            output_stream.write(json.dumps({"jsonrpc": "2.0", "id": message.get("id") if isinstance(message, dict) else None,
                                           "error": {"code": -32600, "message": "Invalid request"}}) + "\n")
            output_stream.flush()
            continue

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…