code wiki / (root) / nx_host_recover2.nx

nx_host_recover2.nx

buildroot/runtime/nx_host_recover2.nx

6116 B114 linesdepth 10pulls 22 transitivereach 0 importersview sourcekind tooltopic host
docsdependenciesstructsconstsfunctions

about

nx_host_recover2.nx -- run the PROVEN root recovery (reconcile2.sh) on the NAS via our sovereign SSH, bringing the dead nx_hostctl supervisor (and thus sites.elf) back. The script-FILE + setsid idiom survives the channel teardown where an inline launch dies. The sudo password is streamed as the remote command's STDIN (sudo -S) so it never appears in any cmdline. Reuses the vault preamble + ssh_put_file stdin-stream from nx_aw_push. license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_ssh_lib.nx nx_host_recover2.nx

imports: nx_syscalls.nxnx_ssh_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main p_run sys_fork sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ sys_execve sys_exit ↻ sys_wait4 ssh_puts sys_write ↻ p_unlink sys_mmap ↻ sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_munmap sys_close ssh_open_session sys_socket sys_mmap ↻ ssh_sockaddr nx_connect_bounded nx_fcntl sys_connect sys_mmap ↻

structs

none

consts

9const P_MAGIC_65536: i64 = 65536
10const P_MAGIC_1048576: i64 = 1048576
11const P_MAGIC_16384: i64 = 16384
12const P_MAGIC_1024: i64 = 1024
14const P_SECRET_OUT: *u8 = "/tmp/nxsecret.out" as *u8
15const P_VAULT_NV: *u8 = "/home/elderwesto/.nishi/secrets/nas.nv" as *u8

functions

17func p_run(path: *u8, a1: *u8, a2: *u8) -> i64
36func slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 1: main
40func ssh_drain(st: *SshState) -> i64
48func ssh_put_file(st: *SshState, wcmd: *u8, wcmdlen: i64, data: *u8, datalen: i64) -> i64
88func main() -> i64