From 5038823aba1350879e8c2debb7f7eed0eb60fc03 Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Tue, 2 Jun 2026 17:39:27 +0000 Subject: [PATCH] docs: audit server information media stubs --- AI.md | 21 +++++++++++++++++++++ TODO.md | 12 ++++++++---- src/nwconn.c | 31 +++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/AI.md b/AI.md index abd5000..bfc7e09 100644 --- a/AI.md +++ b/AI.md @@ -746,3 +746,24 @@ Latest endpoint audit checkpoint from patch 0234: include/WebSDK material surfaced the surrounding `nwfse` structs more clearly. Next patch number should be `0235`. + +Latest endpoint audit checkpoint from patch 0235: + +- SDK `0x2222/123` / wire `0x7b` server information/statistics now records the + next Media Manager / volume selector run behind `MARS_NWE_4` in + `src/nwconn.c`: `123/30` Get Media Manager Object Information, `123/31` Get + Media Manager Objects List, `123/32` Get Media Manager Object Children's List, + `123/33` Get Volume Segment List, and `123/34` Get Volume Information by + Level. +- This block was checked against the local NDK/Core Protocols PDF plus the + uploaded WebSDK/include `nwfse` material. `123/34` has an internal + `InfoLevelNumber` payload selector for the returned volume-information + structure; do not treat those levels as separate wire subfunctions. +- Future ownership remains the `servermgmt`/information provider boundary, with + filesystem/namespace/volume-provider input for real volume/media state. Do + not invent a separate NetWare Media Manager database and do not route these + data-plane requests through `nwserv`. +- Remaining `123/40` and higher protocol-stack, router/SAP, server/set-command, + and compression information selectors still need later follow-up auditing. + +Next patch number should be `0236`. diff --git a/TODO.md b/TODO.md index 5593d11..882a404 100644 --- a/TODO.md +++ b/TODO.md @@ -277,10 +277,14 @@ SDK-listed blocks that do not currently show a top-level handler in Information, `123/25` LSL Information, and `123/26` LSL Logical Board Statistics. Patch 0234 completes the adjacent LAN/LSL/MLID selector run with `123/24` LAN Name Information and `123/27` MLID Board Information after - rechecking the local NDK/Core Protocols PDF entries. The remaining `123/30` - and higher media-manager, protocol-stack, router/SAP, set-command, volume, - and compression information selectors still need follow-up auditing before - any additional stubs are added. + rechecking the local NDK/Core Protocols PDF entries. Patch 0235 adds the + Media Manager / volume selector run: `123/30` Get Media Manager Object + Information, `123/31` Get Media Manager Objects List, `123/32` Get Media + Manager Object Children's List, `123/33` Get Volume Segment List, and + `123/34` Get Volume Information by Level. The remaining `123/40` and higher + protocol-stack, router/SAP, set-command, server/source, 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 381083d..3643348 100644 --- a/src/nwconn.c +++ b/src/nwconn.c @@ -7693,6 +7693,37 @@ static int handle_ncp_serv(void) * Current MARS_NWE_4 scope should model the * 4.x layout only if this is ever enabled. */ + case 0x1e: /* 123/30 Get Media Manager Object Information. + * Request selects ObjectNumber. + * Reply carries GenericInfoDef-style media + * manager object information. Future owner + * is servermgmt plus the filesystem/volume + * provider; do not invent a parallel media + * manager object graph. + */ + case 0x1f: /* 123/31 Get Media Manager Objects List. + * Request carries StartNumber and ObjectType. + * Reply carries nextStartNum, ObjectCount, + * and a list of media manager object IDs. + */ + case 0x20: /* 123/32 Get Media Manager Object Children's + * List. Request carries StartNumber, + * ObjectType, and ParentObjectNumber; reply + * uses the same list-window shape as 123/31. + */ + case 0x21: /* 123/33 Get Volume Segment List. + * Request selects VolumeNumber. + * Reply carries NumOfSegments followed by + * VolumeSegment records. Future work should + * bridge to the real namespace/volume layout. + */ + case 0x22: /* 123/34 Get Volume Information by Level. + * Request selects VolumeNumber plus + * InfoLevelNumber (0=VolInfo, 1=VolInfoDef, + * 2=VolInfo2Def in the NDK/include material). + * Treat InfoLevelNumber as a payload selector, + * not a separate wire subfunction. + */ completition = 0xfb; break; default: completition = 0xfb;