code wiki / _hdl_build / nx_capability_route_gate.nx
nx_capability_route_gate.nx source
↩ module page · 72 lines · 4767 B
1// nx_capability_route_gate.nx -- MEASURED unit gate for the global functionality split (nx_capability_route).
2// Pure/offline (crafted host strings, no socket): proves capabilities route to subdomains and visitor content to
3// the bare/www host, GLOBALLY (same rule every domain), with the leading-label dot required (no false matches).
4// T1 admin.<d> -> CR_ADMIN T2 mail.<d> -> CR_MAIL
5// T3 <d> -> CR_CONTENT T4 www.<d> -> CR_CONTENT
6// T5 GLOBAL: admin.<otherdomain> -> CR_ADMIN AND mail.<thirddomain> -> CR_MAIL (not per-domain)
7// T6 backend ports: ADMIN=8456 MAIL=8457 CONTENT=0
8// T7 neg-control: "administrative.com" -> CR_CONTENT (dot required) AND case-insensitive ADMIN.X -> CR_ADMIN
9// GREEN iff 7/7. Appends knowledge/status/capability_route_gate.log. license_tier: ORIGINAL
10import "nx_capability_route.nx"
11import "nx_g_puts_lib.nx"
12import "nx_syscalls.nx"
13
14func g_num(v: i64) -> i64 {
15 let bb: *u8 = sys_mmap(28); var m: i64 = v; if m < 0 { m = 0 - m; sys_write(1, "-" as *u8, 1) }
16 let t: *u8 = sys_mmap(28); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 }
17 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
18 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } sys_write(1, bb, k); return 0
19}
20func g_w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 }
21func g_wn(fd: i64, v: i64) -> i64 {
22 let bb: *u8 = sys_mmap(28); var m: i64 = v; if m < 0 { m = 0 - m }
23 let t: *u8 = sys_mmap(28); var k: i64 = 0; if m == 0 { t[0] = 48 as u8; k = 1 }
24 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
25 var i: i64 = 0; while i < k { bb[i] = t[k - 1 - i]; i = i + 1 } sys_write(fd, bb, k); return 0
26}
27func g_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
28func cap_of(h: *u8) -> i64 { return cr_capability(h, g_slen(h)) }
29
30func main() -> i64 {
31 g_puts("=== CAPABILITY ROUTE GATE (global functionality split: mail./admin. subdomains vs <d>/paths content) ===\n" as *u8)
32 var pass: i64 = 0
33
34 var t1: i64 = 0; if cap_of("admin.andelinwest.com" as *u8) == CR_ADMIN { t1 = 1 } pass = pass + t1
35 g_puts(" T1 admin.<d> -> ADMIN: "); if t1 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
36
37 var t2: i64 = 0; if cap_of("mail.andelinwest.com" as *u8) == CR_MAIL { t2 = 1 } pass = pass + t2
38 g_puts(" T2 mail.<d> -> MAIL: "); if t2 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
39
40 var t3: i64 = 0; if cap_of("andelinwest.com" as *u8) == CR_CONTENT { t3 = 1 } pass = pass + t3
41 g_puts(" T3 <d> -> CONTENT: "); if t3 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
42
43 var t4: i64 = 0; if cap_of("www.andelinwest.com" as *u8) == CR_CONTENT { t4 = 1 } pass = pass + t4
44 g_puts(" T4 www.<d> -> CONTENT: "); if t4 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
45
46 var t5: i64 = 0
47 if cap_of("admin.nishifamily.com" as *u8) == CR_ADMIN { if cap_of("mail.jasonewest.com" as *u8) == CR_MAIL { t5 = 1 } }
48 pass = pass + t5
49 g_puts(" T5 GLOBAL (same rule every domain): "); if t5 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
50
51 var t6: i64 = 0
52 if cr_backend_port(CR_ADMIN) == 8456 { if cr_backend_port(CR_MAIL) == 8457 { if cr_backend_port(CR_CONTENT) == 0 { t6 = 1 } } }
53 pass = pass + t6
54 g_puts(" T6 backend ports (admin=8456 mail=8457 content=0): "); if t6 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
55
56 var t7: i64 = 0
57 if cap_of("administrative.com" as *u8) == CR_CONTENT { if cap_of("ADMIN.X.COM" as *u8) == CR_ADMIN { t7 = 1 } }
58 pass = pass + t7
59 g_puts(" T7 neg-control (dot-required + case-insensitive): "); if t7 == 1 { g_puts("PASS\n" as *u8) } else { g_puts("FAIL\n" as *u8) }
60
61 g_puts("----\nCAPABILITY-ROUTE rows=7 pass="); g_num(pass); g_puts("\n" as *u8)
62 let lg: i64 = sys_openat_append("knowledge/status/capability_route_gate.log" as *u8, 0x1a4)
63 if lg >= 0 {
64 g_w(lg, "CAPABILITY-ROUTE admin_sub="); g_wn(lg, t1); g_w(lg, " mail_sub="); g_wn(lg, t2); g_w(lg, " content_bare="); g_wn(lg, t3)
65 g_w(lg, " content_www="); g_wn(lg, t4); g_w(lg, " global="); g_wn(lg, t5); g_w(lg, " ports="); g_wn(lg, t6); g_w(lg, " negctrl="); g_wn(lg, t7)
66 g_w(lg, " rows=7 pass="); g_wn(lg, pass)
67 if pass == 7 { g_w(lg, " verdict=GREEN\n" as *u8) } else { g_w(lg, " verdict=RED\n" as *u8) }
68 sys_close(lg)
69 }
70 if pass == 7 { g_puts("CAPABILITY-ROUTE GREEN (mail./admin. capability subdomains vs <d>/path content, global -- measured)\n" as *u8); sys_exit(0); return 0 }
71 g_puts("CAPABILITY-ROUTE RED\n" as *u8); sys_exit(1); return 1
72}