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 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_close ssh_open_session sys_socket sys_mmap ↻ ssh_sockaddr nx_connect_bounded nx_fcntl sys_connect sys_mmap ↻ sys_poll ssh_kex sys_write ↻ sys_mmap ↻ ssh_read_line sys_read ↻ ssh_read_packet sys_mmap ↻ ssh_read_full sys_read ↻ ssh_u32be ssh_put_bytes ssh_put_byte ssh_put_bytes ↻ ssh_put_str

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