code wiki / _hdl_build / nx_cms_booking.nx

nx_cms_booking.nx

buildroot/runtime/_hdl_build/nx_cms_booking.nx

5090 B82 linesdepth 4pulls 7 transitivereach 1 importersview sourcekind tooltopic cms
docsdependenciesstructsconstsfunctions

about

nx_cms_booking.nx -- the consultation-booking BACKEND that finishes the "scheduler that works with the email systems" (the crash-interrupted rung). Composes existing organs, no reinvention: nx_cms_store -- persists the booking as a sovereign record (@name/@phone/@email/@matter/@date/@time/@status) nx_cms_email -- email_addr_valid() gates the client address nx_email_mime -- (format reference) RFC 5322 confirmation message nx_cron -- registers a same-day reminder job (fires once) Defensive at the boundary (Cardinal 12): every web-supplied value is SANITIZED (control chars incl CR/LF stripped) before it enters a record field OR an email header -> header-injection / record-format-break safe. Pure logic (mmap only) -> fully gateable offline; the LIVE rung (daemon POST /schedule -> bk_book + real MTA send via nx_email_send) wires this to andelinwest.com next. license_tier: ORIGINAL

dependencies 4 imports · 1 importers

nx_syscalls.nx nx_cms_store.nx nx_cms_email.nx nx_cron.nx nx_cms_booking.nx nx_cms_booking_gate.nx

imports: nx_syscalls.nxnx_cms_store.nxnx_cms_email.nxnx_cron.nx

imported by: nx_cms_booking_gate.nx

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

main sys_mmap bk_store bk_cat bk_san bk_puts sys_write sys_write ↻ bk_confirm bk_cat ↻ bk_san ↻ bk_reminder sys_mmap ↻ nx_cron_register_job nx_cron_init sys_mmap ↻ nx_cron_schedule_ok nx_cron_kind_race_mode nx_race_timing_is_valid nx_cron_name_hash nx_cron_find nx_cron_init ↻ nx_cron_rec nx_cron_rec ↻ nx_cron_recurring sys_exit

structs

none

consts

15const K_MAGIC_8192: i64 = 8192
16const K_MAGIC_2000000000: i64 = 2000000000

functions

18func bk_slen(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} return n }
19func bk_cat(dst: *u8, off: i64, s: *u8) -> i64 { var i: i64=0; while s[i]!=(0 as u8){ dst[off+i]=s[i]; i=i+1 } return off+i }
called by 2: bk_storebk_confirm
22func bk_san(dst: *u8, off: i64, s: *u8) -> i64
called by 2: bk_storebk_confirm
27func bk_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 1: main calls 1: sys_write
30func bk_store(name: *u8, phone: *u8, email: *u8, matter: *u8, date: *u8, time: *u8, out: *u8) -> i64
called by 2: mainmain calls 2: bk_catbk_san
43func bk_confirm(name: *u8, email: *u8, matter: *u8, date: *u8, time: *u8, out: *u8) -> i64
called by 2: mainmain calls 2: bk_catbk_san
55func bk_reminder(name: *u8, namelen: i64, fire_at: i64) -> i64
69func main() -> i64