#!/usr/bin/env python3
import json,os,pathlib,resource,subprocess,sys,hashlib
here=pathlib.Path(__file__).resolve().parent
live=dict(p.split(b'=',1) for p in pathlib.Path('/proc/53772/environ').read_bytes().split(b'\0') if b'=' in p)
env={k:v for k,v in os.environ.items() if not k.startswith(('POC_','SHADOW_','DM_PROBE_'))}
for key in ('LD_LIBRARY_PATH','DM_SVC_PATH'):
    if key.encode() in live:env[key]=live[key.encode()].decode()
for key in ('HOST','PORT','SCHEMA','USER','PASSWORD'):env['SHADOW_'+key]=live[('POC_AI_'+key).encode()].decode()
if (env['SHADOW_HOST'],env['SHADOW_PORT'],env['SHADOW_SCHEMA'])!=('127.0.0.1','5238','AIZHCT_APP'):raise SystemExit('target rejected')
env['METADATA_RUNTIME_HELPER']='/tmp/cdx-shadow-fetch-20261010.75qQz1/ProbeRuntime.php'
def core0():resource.setrlimit(resource.RLIMIT_CORE,(0,0))
p=subprocess.run(['/www/server/php/74/bin/php','-n','-d','extension=/home/dmdba/dmdbms/drivers/php_pdo/libphp74_dm.so','-d','extension=/home/dmdba/dmdbms/drivers/php_pdo/php74_pdo_dm.so',str(here/'MetadataRead.php'),'C'],env=env,cwd=str(here),stdout=subprocess.PIPE,stderr=subprocess.PIPE,preexec_fn=core0,timeout=30)
try: report=json.loads(p.stdout)
except ValueError:report={'status':'invalid_output','stdout_sha256':hashlib.sha256(p.stdout).hexdigest()}
print(json.dumps({'exit_code':p.returncode,'stderr_bytes':len(p.stderr),'report':report},ensure_ascii=False,sort_keys=True))
raise SystemExit(0 if p.returncode==0 and not p.stderr and report.get('status')=='pass' else 1)
