code wiki / (root) / nx_https_post_complete.nx

nx_https_post_complete.nx

buildroot/runtime/nx_https_post_complete.nx

9961 B187 linesdepth 12pulls 41 transitivereach 41 importersview sourcekind tooltopic https
docsdependenciesstructsconstsfunctions

about

nx_https_post_complete.nx -- HTTPS POST companion to nx_https_get_complete. Sends an HTTP/1.1 POST request with a caller-supplied body (typically application/jose+json for ACME) over a CONNECTED TLS 1.3 session, then drains the encrypted response into out_buf. Composes: nx_http_client_build_request_post -- POST line + headers + body nx_tls13_record_encrypt_v2 -- AEAD wrap (one or more request records) nx_tls13_read_record_from_fd -- partial-read framer nx_tls13_record_decrypt_v2 -- AEAD unwrap per response rec Body size: UNBOUNDED by this module (2026-09-04). The old 8 KB ceiling was not a statement about bodies -- it was an under-approximation of the TLS record limit, needed while the request was written as a SINGLE record. nx_https_req_complete now fragments across records and the request buffer is derived from body_len, so neither constraint remains. The instruction this paragraph used to give -- 'caller should fragment larger payloads explicitly' -- was never followed by any caller: they inherited the ceiling as a hand-picked constant instead, which is how the sovereign content shipper spent eleven days unable to send the chunks its own server offered. Verdict mirrors NX_HTTPS_GC_* with a PC prefix; same sealed-enum shape (positive bytes on success, negative -verdict on failure). Per Cardinals 9 (single-responsibility -- ONE round trip), 22 (composition of shipped primitives), 25 (build intelligence, don't strip features -- adds POST capability without weakening GET). license_tier: INDEPENDENT_REDERIVE genealogy_id: international-research-sources/ietf/rfc_8446 + rfc_9112 + rfc_8555 lineage_id: nishi_https_post_complete_q1

dependencies 7 imports · 11 importers

nx_syscalls.nx nx_tls13.nx nx_tls13_record.nx nx_tls13_read_record_from_fd.nx nx_tls13_client_session.nx nx_http_client.nx nx_https_get_complete.nx nx_https_post_complete.nx nx_acme_http.nx nx_cam_chaturbate_probe.nx nx_connect_live_verify.nx nx_crew_live_verify.nx nx_edge_probe.nx nx_funcheck.nx nx_https_post_complete_test.nx nx_https_post_lib.nx nx_office_live_verify.nx nx_porkbun_ping_probe.nx

diagram shows first 10 each side; +0 more imports, +1 more importers in the complete lists below.

imports: nx_syscalls.nxnx_tls13.nxnx_tls13_record.nxnx_tls13_read_record_from_fd.nxnx_tls13_client_session.nxnx_http_client.nxnx_https_get_complete.nx

imported by: nx_acme_http.nxnx_cam_chaturbate_probe.nxnx_connect_live_verify.nxnx_crew_live_verify.nxnx_edge_probe.nxnx_funcheck.nxnx_https_post_complete_test.nxnx_https_post_lib.nxnx_office_live_verify.nxnx_porkbun_ping_probe.nxnx_survey_live_verify.nx

structs

none

consts

40const NX_HTTPS_PC_OK: i64 = 1
41const NX_HTTPS_PC_BAD_STATE: i64 = 2
42const NX_HTTPS_PC_BUILD_FAIL: i64 = 3
43const NX_HTTPS_PC_ENCRYPT_FAIL: i64 = 4
44const NX_HTTPS_PC_WRITE_FAIL: i64 = 5
45const NX_HTTPS_PC_READ_FAIL: i64 = 6
46const NX_HTTPS_PC_DECRYPT_FAIL: i64 = 7
47const NX_HTTPS_PC_BUF_OVERFLOW: i64 = 8
48const NX_HTTPS_PC_BODY_TOO_BIG: i64 = 9
49const NX_HTTPS_PC_VERDICT_N: i64 = 10
51const NX_HTTPS_PC_REQ_BUF_BYTES: i64 = 16384 // header (~512) + body (<= 8 KB) + slack
52const NX_HTTPS_PC_BODY_BYTES: i64 = 8192
53const NX_HTTPS_PC_RESP_RECORD_BYTES: i64 = 16645
54const NX_HTTPS_PC_POST_HDR_SLACK: i64 = 128 // Content-Type: + Content-Length: <n> + CRLFs

functions

56func nx_https_pc_verdict_is_valid(v: i64) -> i64
called by 1: main
62func _pc_write_n(fd: i64, buf: *u8, n: i64) -> i64
calls 1: sys_write
72func nx_https_post_complete(
139func nx_https_post_complete_xhdr(
185func main() -> i64