⬢ DragonFlyBSD Kernel Audit
DF-5730 / drive3.py
← back to finding ↓ download raw
#!/usr/bin/env python3
"""Control: enter DDB via sysctl, touch NOTHING, immediately continue."""
import os, socket, sys, threading, time

SOCK  = os.environ.get("SOCK", "/tmp/opencode/df-5730-ser.sock")
DRAIN = os.environ.get("DRAIN", "/tmp/opencode/df-5730-drain3.log")

def main():
    while True:
        try:
            s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM); s.connect(SOCK); break
        except (FileNotFoundError, ConnectionRefusedError) as e:
            print(f"connect failed: {e}; retrying...", flush=True); time.sleep(2)
    def drainer(sock):
        with open(DRAIN, "ab", buffering=0) as d:
            while True:
                try: b = sock.recv(65536)
                except OSError: return
                if not b: return
                d.write(b); sys.stdout.write(b.decode("latin1")); sys.stdout.flush()
    threading.Thread(target=drainer, args=(s,), daemon=True).start()
    time.sleep(2)
    for line, w in [("x/x db_active", 4), ("c", 4)]:
        print(f"\n>>> {line!r}", flush=True)
        for i in range(0, len(line)+1, 8):
            s.sendall(line.encode()[i:i+8]); time.sleep(0.15)
        s.sendall(b"\n"); time.sleep(w)
    print("\n>>> control session complete", flush=True)

if __name__ == "__main__":
    main()