docs: audit file server console-control stubs

This commit is contained in:
OpenAI
2026-06-02 19:08:17 +00:00
committed by Mario Fetka
parent 8f95e256b5
commit dda6dd8b7e
3 changed files with 60 additions and 4 deletions

21
AI.md
View File

@@ -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`.

23
TODO.md
View File

@@ -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.

View File

@@ -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;