From dda6dd8b7ea82568b4c2eefa3a82c1349ac4a811 Mon Sep 17 00:00:00 2001 From: OpenAI Date: Tue, 2 Jun 2026 19:08:17 +0000 Subject: [PATCH] docs: audit file server console-control stubs --- AI.md | 21 +++++++++++++++++++++ TODO.md | 23 +++++++++++++++++++++++ src/nwbind.c | 20 ++++++++++++++++---- 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/AI.md b/AI.md index 160353c..30c66d5 100644 --- a/AI.md +++ b/AI.md @@ -973,3 +973,24 @@ Latest endpoint audit checkpoint from patch 0246: `23/242`. Next patch number should be `0247`. + +Latest endpoint audit checkpoint from patch 0247: + +- Continued the NDK-first File Server Environment pass after `23/242` by + skipping the already implemented `23/243` Map Directory Number to Path and + `23/244` Convert Path to Dir Entry helpers, then tightening the existing + disabled `23/253` and `23/254` tail cases in `src/nwbind.c`. +- `23/253` / wire `0xfd` Send Console Broadcast now has a case-local Request + summary for NumberOfStations, StationList long[] and BroadcastMessage, plus a + Response summary covering status-only success/error returns. +- `23/254` / wire `0xfe` Clear Connection Number now has a case-local Request + summary for the long ConnectionNumber variant and a Response summary covering + status-only success/error returns. +- These endpoints must not be implemented from approximations. They require + real console/supervisor privilege checks, broadcast disabled/delivery state, + valid target connection handling, and full logout/resource-release semantics. +- The next NDK-first pass should continue outside this `23/xx` tail with the + next documented NetWare 1.x/2.x/3.x endpoint or planned 4.x endpoint, while + skipping unlisted gaps and ignoring 5.x-only endpoints. + +Next patch number should be `0248`. diff --git a/TODO.md b/TODO.md index cabee88..1143b6b 100644 --- a/TODO.md +++ b/TODO.md @@ -1597,3 +1597,26 @@ Follow-up: - Continue NDK-first with the next documented NetWare 1.x/2.x/3.x selector or planned 4.x selector after `23/242`, skipping unlisted gaps and ignoring 5.x-only endpoints. + +### File Server Environment console-control stubs 23/253..254 + +Current status: + +- Patch `0247` continues the NDK-first `23/xx` pass after skipping the already + implemented `23/243` and `23/244` path/directory helpers. +- It tightens the existing disabled `src/nwbind.c` cases for the in-scope + NetWare 3.x/4.x console-control selectors: + - `23/253` / wire `0xfd` Send Console Broadcast + - `23/254` / wire `0xfe` Clear Connection Number +- Each selector now has its own case-local Request/Response summary matching + the post-0244 endpoint-audit formatting rule. +- Future implementation requires real console privilege checks, broadcast + disable/delivery state, valid target connection handling, and full logout/ + resource-release semantics. Do not fake broadcast success or clear only a + partial in-memory connection slot. + +Follow-up: + +- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x selector or + planned 4.x selector outside this `23/xx` tail, skipping unlisted gaps and + ignoring 5.x-only endpoints. diff --git a/src/nwbind.c b/src/nwbind.c index dd2943a..e595dd0 100644 --- a/src/nwbind.c +++ b/src/nwbind.c @@ -3347,15 +3347,27 @@ static void handle_fxx(int gelen, int func) break; case 0xfd : /* SDK 23/253 / wire 0xfd Send Console Broadcast */ /* - * Newer variant of SDK 23/209: StationList is long[] and - * SubFuncStrucLen = 3 + NumberOfStations * 4 + MessageLen. + * Request: SubFuncStrucLen=3+(NumberOfStations*4)+MessageLen, + * SubFunctionCode=253, NumberOfStations, StationList + * long[NumberOfStations], MessageLen, BroadcastMessage. + * Response: no data; status only. Returns No Console Rights + * or Bad Station Number when the caller lacks privileges or a + * target connection is invalid. + * Requires real broadcast delivery/disable state and console + * privilege checks; do not fake delivery success. */ return(-1); /* nicht erkannt */ break; case 0xfe : /* SDK 23/254 / wire 0xfe Clear Connection Number */ /* - * Newer variant of SDK 23/210: request carries a long - * ConnectionNumber instead of the old byte value. + * Request: SubFuncStrucLen=5, SubFunctionCode=254, + * ConnectionNumber long LO-HI. + * Response: no data; status only. Returns No Console Rights + * or Bad Station Number when the caller lacks privileges or the + * target connection is invalid. + * Requires real supervisor privilege checks and connection + * teardown/resource-release semantics; do not clear a partial + * in-memory slot without full logout cleanup. */ return(-1); break;