docs: tighten sdk90 tree reference selector notes
This commit is contained in:
24
AI.md
24
AI.md
@@ -1088,4 +1088,26 @@ Latest endpoint audit checkpoint from patch 0249:
|
||||
- Do not regroup these two direct create-file cases in a later cleanup; keep the
|
||||
per-case Request/Response audit rule intact.
|
||||
|
||||
Next patch number should be `0252`.
|
||||
## 2026-06-02 - Patch 0252 SDK 90 tree/reference/compression selector notes
|
||||
|
||||
- Continued NDK-first after the direct create-file split. The NDK Enhanced
|
||||
NCP `89/xx` chapter is not taken as the next implementation target here
|
||||
because the `89/01` page is marked `NetWare Servers: 6.5, SP2 and later`;
|
||||
keep those 5.x+/6.x-only enhanced namespace endpoints out of this 1.x-4.x
|
||||
audit unless project scope changes.
|
||||
- Audited the first NetWare-4.x-relevant SDK `90/xx` block in `src/nwconn.c`:
|
||||
- `90/00` Parse Tree
|
||||
- `90/10` Get Reference Count from Dir Entry Number
|
||||
- `90/11` Get Reference Count from Dir Handle
|
||||
- `90/12` Set Compressed File Size
|
||||
- Each selector already had its own `switch` case; patch `0252` tightens those
|
||||
case-local comments with exact NDK `SubFuncStrucLen`, request fields and
|
||||
response fields.
|
||||
- Runtime behavior remains unchanged: all four selectors still return `0xfb`
|
||||
until a real namespace tree/reference-count/compression metadata provider
|
||||
exists.
|
||||
- Do not synthesize reference counts or compressed-size replies from partial
|
||||
Unix `stat(2)` state. These replies require NetWare directory-base identity,
|
||||
namespace handles, reference tracking and compression metadata.
|
||||
|
||||
Next patch number should be `0253`.
|
||||
|
||||
21
TODO.md
21
TODO.md
@@ -1731,8 +1731,25 @@ Current status:
|
||||
- Runtime behavior is unchanged; both cases still call `nw_creat_open_file()`
|
||||
and return the old file-handle plus `NW_FILE_INFO` response layout.
|
||||
|
||||
### SDK 90 tree/reference/compression selector notes
|
||||
|
||||
Current status:
|
||||
|
||||
- Patch `0252` audits the first NetWare-4.x-relevant SDK `90/xx` block in
|
||||
`src/nwconn.c`:
|
||||
- `90/00` Parse Tree
|
||||
- `90/10` Get Reference Count from Dir Entry Number
|
||||
- `90/11` Get Reference Count from Dir Handle
|
||||
- `90/12` Set Compressed File Size
|
||||
- The `89/xx` Enhanced NCP chapter is skipped for this pass because the NDK
|
||||
marks `89/01` as `NetWare Servers: 6.5, SP2 and later`; keep 5.x+/6.x-only
|
||||
enhanced namespace endpoints out of the 1.x-4.x endpoint audit.
|
||||
- Runtime behavior is unchanged; the `90/00`, `90/10`, `90/11`, and `90/12`
|
||||
cases still return `0xfb` until a real provider exists.
|
||||
|
||||
Follow-up:
|
||||
|
||||
- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x endpoint or
|
||||
planned 4.x endpoint that still has grouped or missing case-local
|
||||
Request/Response audit notes. Skip 5.x-only endpoints.
|
||||
planned 4.x endpoint after `90/12`, likely the Data Migration selector block
|
||||
`90/128..136`, and keep one case-local Request/Response comment per selector.
|
||||
Skip 5.x-only endpoints.
|
||||
|
||||
27
src/nwconn.c
27
src/nwconn.c
@@ -7328,31 +7328,34 @@ static int handle_ncp_serv(void)
|
||||
? (int)requestdata[0] : -1;
|
||||
|
||||
switch (dm_sub) {
|
||||
case 0x00: /* Parse Tree.
|
||||
* Request: InformationMask, InformationMask2,
|
||||
* reserved, limbCount, limbStruct[].
|
||||
case 0x00: /* SDK 90/00 Parse Tree.
|
||||
* Request: SubFuncStrucLen = 17 + limbStruct,
|
||||
* InformationMask, InformationMask2, reserved,
|
||||
* limbCount, then limbStruct[].
|
||||
* Reply: limbCompletedCnt, ItemsCount,
|
||||
* nextLimbScanNum, InfoBlock[].
|
||||
* nextLimbScanNum, then InfoBlock[].
|
||||
* Future owner: namespace tree scanner.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
case 0x0a: /* Get Reference Count from Dir Entry Number.
|
||||
* Request: Volume, DirBase, NameSpace.
|
||||
case 0x0a: /* SDK 90/10 Get Reference Count from Dir Entry Number.
|
||||
* Request: SubFuncStrucLen = 13, Volume,
|
||||
* DirBase, NameSpace.
|
||||
* Reply: ReferenceCount.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
case 0x0b: /* Get Reference Count from Dir Handle.
|
||||
* Request: DirectoryHandle.
|
||||
case 0x0b: /* SDK 90/11 Get Reference Count from Dir Handle.
|
||||
* Request: SubFuncStrucLen = 5,
|
||||
* DirectoryHandle.
|
||||
* Reply: ReferenceCount.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
case 0x0c: /* Set Compressed File Size.
|
||||
* Request: file identity plus compressed size
|
||||
* fields as documented for SDK 90/12.
|
||||
* Reply: no payload; Completion reports status.
|
||||
case 0x0c: /* SDK 90/12 Set Compressed File Size.
|
||||
* Request: SubFuncStrucLen = 11,
|
||||
* NetWareFileHandle, SuggestedFileSize.
|
||||
* Reply: OldFileSize, NewFileSize.
|
||||
* Future owner: filesystem/compression metadata.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
|
||||
Reference in New Issue
Block a user