From c7ed10a29082c0a50e1b867f90f83a69c42e275c Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 2 Jun 2026 17:48:18 +0000 Subject: [PATCH] docs: audit server information router stubs --- AI.md | 31 +++++++++++++++---------------- TODO.md | 11 ++++++++--- src/nwconn.c | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 19 deletions(-) diff --git a/AI.md b/AI.md index 5202fd9..4c75639 100644 --- a/AI.md +++ b/AI.md @@ -766,25 +766,24 @@ Latest endpoint audit checkpoint from patch 0235: - Remaining `123/40` and higher protocol-stack, router/SAP, server/set-command, and compression information selectors still need later follow-up auditing. -Latest endpoint audit checkpoint from patch 0236: +Latest endpoint audit checkpoint from patch 0237: - SDK `0x2222/123` / wire `0x7b` server information/statistics now records the - protocol-stack/media selector run behind `MARS_NWE_4` in `src/nwconn.c`: - `123/40` Active Protocol Stacks, `123/41` Get Protocol Stack Configuration - Information, `123/42` Get Protocol Stack Statistics Information, `123/43` - Get Protocol Stack Custom Information, `123/44` Get Protocol Stack Numbers - by Media Number, `123/45` Get Protocol Stack Numbers by LAN Board Number, - `123/46` Get Media Name by Media Number, and `123/47` Get Loaded Media - Number. + router/SAP/server/source selector run behind `MARS_NWE_4` in `src/nwconn.c`: + `123/50` Get General Router and SAP Information, `123/51` Get Network + Router Information, `123/52` Get Network Routers Information, `123/53` Get + Known Networks Information, `123/54` Get Server Information, `123/55` Get + Server Sources Information, and `123/56` Get Known Servers Information. - This block was checked against the local NDK/Core Protocols PDF plus the uploaded WebSDK/include `nwfse` material. PDF/WebSDK/includes jump from - `123/47` to the router/SAP group at `123/50`; do not invent `123/48` or - `123/49` selector slots unless a new primary source is found. + `123/56` to the server set-command group at `123/60`; do not invent + `123/57`..`123/59` selector slots unless a new primary source is found. - Future ownership remains the `servermgmt`/information provider boundary with - transport/provider input for real protocol-stack/media binding state. Do not - synthesize fake protocol stacks, LAN bindings, or loaded media types, and do - not route these read-only data-plane requests through `nwserv`. -- Remaining `123/50` and higher router/SAP, server/source/set-command, and - compression information selectors still need later follow-up auditing. + IPX/SAP/RIP transport/provider input for real routing and advertised-server + state. Do not synthesize fake routers, known networks, SAP server lists, or + server-source records, and do not route these read-only data-plane requests + through `nwserv`. +- Remaining `123/60` and higher server set-command and compression information + selectors still need later follow-up auditing. -Next patch number should be `0237`. +Next patch number should be `0238`. diff --git a/TODO.md b/TODO.md index a0a4c12..dd62b32 100644 --- a/TODO.md +++ b/TODO.md @@ -287,9 +287,14 @@ SDK-listed blocks that do not currently show a top-level handler in Statistics Information, `123/43` Get Protocol Stack Custom Information, `123/44` Get Protocol Stack Numbers by Media Number, `123/45` Get Protocol Stack Numbers by LAN Board Number, `123/46` Get Media Name by Media Number, - and `123/47` Get Loaded Media Number. The remaining `123/50` and higher - router/SAP, set-command, server/source, and compression information selectors - still need follow-up auditing before any additional stubs are added. + and `123/47` Get Loaded Media Number. Patch 0237 adds the router/SAP and + server/source selector run: `123/50` Get General Router and SAP Information, + `123/51` Get Network Router Information, `123/52` Get Network Routers + Information, `123/53` Get Known Networks Information, `123/54` Get Server + Information, `123/55` Get Server Sources Information, and `123/56` Get Known + Servers Information. The remaining `123/60` and higher set-command and + compression information selectors still need follow-up auditing before any + additional stubs are added. Follow-up: diff --git a/src/nwconn.c b/src/nwconn.c index 7f3a6ea..9e94362 100644 --- a/src/nwconn.c +++ b/src/nwconn.c @@ -7768,6 +7768,46 @@ static int handle_ncp_serv(void) * Keep this with the protocol-stack/provider * model; do not synthesize fake media types. */ + case 0x32: /* 123/50 Get General Router and SAP + * Information. + * Reply carries RIP/SAP socket and router/SAP + * flags. Future owner is servermgmt plus the + * IPX/SAP/RIP transport state; do not expose + * guessed router status. + */ + case 0x33: /* 123/51 Get Network Router Information. + * Request selects a NetworkNumber. Reply + * returns one router information structure for + * that network from provider-backed RIP state. + */ + case 0x34: /* 123/52 Get Network Routers Information. + * Request selects NetworkNumber and carries + * StartNumber. Reply returns a window of + * RoutersInfo records. + */ + case 0x35: /* 123/53 Get Known Networks Information. + * Request carries StartNumber. Reply returns + * a window of KnownRoutes entries from real + * routing state. + */ + case 0x36: /* 123/54 Get Server Information. + * Request selects a server by name/type. + * Reply returns SAP-style server information; + * source of truth must be servermgmt plus SAP + * advertisements/registry state. + */ + case 0x37: /* 123/55 Get Server Sources Information. + * Request carries StartNumber and selects + * ServerType plus ServerName. Reply carries + * source records for matching servers. + * Requires real SAP/source state. + */ + case 0x38: /* 123/56 Get Known Servers Information. + * Request carries StartNumber and ServerType. + * Reply returns a window of KnownServStruc + * entries. Do not synthesize a server list + * merely to satisfy this compatibility call. + */ completition = 0xfb; break; default: completition = 0xfb;