#!/usr/bin/env python3 """Validate the proposed minimal XIE 2.3 client sequence on one connection: INIT_SESSION(1) -> QUERY_OP_DEFAULTS(3) -> QUERY_EVENTS(6) -> TERM_SESSION(2) """ import os, sys, struct sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "evidence")) import xie_raw as X s = X.socket.create_connection((X.HOST, X.PORT), timeout=5) s.settimeout(5.0) try: X.setup(s) present, opcode, ev, er = X.query_extension(s, "Xie") print("extension present=%d opcode=%d first_event=%d first_error=%d" % (present, opcode, ev, er)) def send(minor, payload=b"", words=None): if words is None: words = 1 + len(payload) // 4 data = payload.ljust((words * 4) - 4, b"\0") s.sendall(struct.pack("