code wiki / _hdl_build / nx_vroom_daemon.nx
nx_vroom_daemon.nx
buildroot/runtime/_hdl_build/nx_vroom_daemon.nx
about
nx_vroom_daemon.nx -- sovereign video-room daemon, PLAIN HTTP on loopback :8446,
fronted by nginx (the Synology edge terminates the family TLS; operator chose the clean
nishifamily.com/video URL). nginx->TLS-backend failed (OpenSSL rejects nx_tls13's
ServerHello with "unsolicited extension"), so the daemon speaks plain HTTP to nginx.
The media logic stays 100% sovereign: vr_handle (nx_vroom) + nx_room_relay over
shared-mmap, server-relay = no WebRTC/STUN/TURN/WebSocket. Built nx_cc->nxasm (no gcc/.sh).
Build: _offc/nx_sov_build_run.elf nx_vroom_daemon
license_tier: ORIGINAL
dependencies 5 imports · 0 importers
imports: nx_syscalls.nxnx_http_server.nxnx_room_relay.nxnx_vroom.nxnx_room_stream.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 14 | const VR_MAGIC_8192: i64 = 8192 |
| 15 | const VR_MAGIC_54000: i64 = 54000 |
| 16 | const VR_MAGIC_131072: i64 = 131072 |
| 18 | const VR_PORT: i64 = 8446 |
| 19 | const VR_CLIENT: *u8 = "/volume1/homes/elderwesto/nishihost/vroom_client.html" as *u8 |
| 20 | const VR_PLAINCAP: i64 = 131072 |
| 21 | const VR_OUTCAP: i64 = 262144 |
| 22 | const VR_MAXCHILD: i64 = 64 |
| 23 | const VR_MAXREQ: i64 = 512 |
| 24 | const VR_N: i64 = 16 |
| 25 | const VR_SB: i64 = 65536 |
| 26 | const VR_TTL: i64 = 8000 |
| 27 | const VR_BUDGET: i64 = 1000000000 |
| 28 | const CHAT_CAP: i64 = 128 |
| 29 | const CHAT_TEXTMAX: i64 = 256 |
| 30 | const CHAT_SLOT: i64 = 288 |
| 31 | const VR_PAGE_BODY: *u8 = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Nishi Family Video</title></head><body style=\"font-family:system-ui;background:#0a0a0c;color:#e6e6ec;text-align:center;padding:8vh\"><h1>Nishi Family Video</h1><p>sovereign daemon live (client file missing)</p></body></html>" as *u8 |
functions
| 33 | func vd_strlen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n } |
| 34 | func vd_app(dst: *u8, off: i64, src: *u8, n: i64) -> i64 { var i: i64=0; while i<n { dst[off+i]=src[i]; i=i+1 } return off+n } |
| 35 | func vd_apps(dst: *u8, off: i64, s: *u8) -> i64 { return vd_app(dst, off, s, vd_strlen(s)) } |
| 36 | func vd_wdec(dst: *u8, off: i64, v: i64) -> i64 |
| 44 | func vd_build_resp(out: *u8, ctype: *u8, body: *u8, body_len: i64) -> i64 |
| 55 | func vd_recv(cfd: i64, buf: *u8, cap: i64) -> i64 |
| 80 | func vd_write_all(cfd: i64, buf: *u8, n: i64) -> i64 |
| 95 | func vd_stream(cfd: i64, rr_st: *i64, rr_arena: *u8, rm: i64, pr: i64, ttl: i64, |
| 153 | func vd_apost(cfd: i64, plain: *u8, pn: i64, rr_st: *i64, rr_arena: *u8, now: i64) -> i64 |
| 168 | func vd_rd_i64(b: *u8, o: i64) -> i64 { var v: i64=0; var i: i64=0; while i<8 { v = v | ((b[o+i] as i64) << (i*8)); i=i+1 } return v } called by 1: vd_chat_log |
| 170 | func vd_qparam_int(req: *u8, n: i64, key: *u8, keyn: i64) -> i64 called by 1: vd_chat_log |
| 185 | func vd_chat_post(cfd: i64, plain: *u8, pn: i64, meta: *i64, ring: *u8) -> i64 |
| 209 | func vd_chat_log(cfd: i64, plain: *u8, pn: i64, meta: *i64, ring: *u8, out: *u8) -> i64 |
| 246 | func main() -> i64 |