docs: recheck ncp22 websdk coverage without 4x moves
This commit is contained in:
1
AI.md
1
AI.md
@@ -33,6 +33,7 @@ use, the current project status that the user pasted into the chat.
|
||||
- NetWare 4.x/OES/MOAB-only endpoints are not part of the default implementation target. Already implemented compatibility code must not be removed or wrapped just because it is 4.x-era; only new, not-yet-implemented 4.x stubs should be placed behind `#if MARS_NWE_4`. `MARS_NWE_4` is currently hard-disabled in `include/config.h.cmake` and should stay `0` unless the user explicitly asks to start that work.
|
||||
- When a `0x2222` group is forwarded out of `nwconn.c`, document both layers: `nwconn.c` should explain the group handoff/header, and the destination file (for example `nwbind.c`) should document concrete subfunction request/reply layouts.
|
||||
- For documentation-only endpoint patches, do not change parser offsets, byte order, reply layout, or completion behavior. Always compare the code parser/reply layout against the applicable SDK/WebSDK/PDF request format and, when available, the uploaded SDK include prototypes. If the code differs from the SDK layout, document the concrete difference inline and mirror it in `TODO.md` for later testing. If it matches, say so in the patch summary so the audit trail is clear.
|
||||
- When an SDK/WebSDK/PDF endpoint number is written in decimal notation, convert it carefully to the wire `case` value before adding inline documentation. Example: Directory Services `0x2222/22/12` in the PDF means SubFunctionCode decimal 12, i.e. wire `case 0x0c`; it is not the existing `case 0x12` / decimal 18 Allocate Permanent Directory Handle. Place disabled stubs directly at the correct numeric slot inside the dispatcher, never appended at the end of the function.
|
||||
- Keep `TODO.md` endpoint audit notes grouped by endpoint family and NetWare generation instead of as one long flat list.
|
||||
- The rejected `0152-docs-note-message-control-subfunction.patch` must not be applied: it documented `0x2222/21/0x0c Connection Message Control`, which is outside the default NetWare 1.x/2.x/3.x MARS-NWE target scope.
|
||||
|
||||
|
||||
23
TODO.md
23
TODO.md
@@ -245,6 +245,11 @@ Current status:
|
||||
- No NetWare 1.x/2.x/3.x SDK/PDF entries were found for direct `22/07`,
|
||||
`22/08`, or `22/09` during this audit. The next documented direct directory
|
||||
calls continue at `22/0a`.
|
||||
- The next WebSDK/PDF recheck found `22/12` in the old documentation, but
|
||||
that number is decimal notation: the wire subfunction is `0x0c`, not the
|
||||
already implemented `case 0x12` below. `22/12` / `0x0c` Scan Directory for
|
||||
Trustees is documented for NetWare 2.x/3.x and has only a disabled inline
|
||||
stub for now.
|
||||
- `22/0a` Create Directory, `22/0b` Delete Directory, `22/0d` Add Trustee to
|
||||
Directory, `22/0e` Delete Trustee from Directory, and `22/0f` Rename
|
||||
Directory now have inline request-layout documentation.
|
||||
@@ -294,6 +299,11 @@ Current status:
|
||||
Directory for Extended Trustees, `22/27` Add Extended Trustee to Directory or
|
||||
File, `22/28` Scan Directory Disk Space, and `22/29` Get Object Disk Usage
|
||||
and Restrictions now have inline request/reply layout documentation.
|
||||
- WebSDK/PDF also documents `22/35` / wire `0x23` Get Directory Disk Space
|
||||
Restriction and `22/36` / wire `0x24` Set Directory Disk Space Restriction
|
||||
as NetWare 3.x-compatible directory quota calls. They are not active cases
|
||||
in this dispatcher yet; disabled inline stubs now sit at their numeric slots
|
||||
between `22/22` and `22/25`.
|
||||
- `22/21` and `22/22` are forwarded to `nwbind.c` for quota prehandling; both
|
||||
layers are documented. The shared `nwbind` prehandler reads ObjectID from
|
||||
the documented payload position.
|
||||
@@ -327,6 +337,12 @@ Current status:
|
||||
|
||||
Follow-up:
|
||||
|
||||
- Implement or intentionally reject `22/12` / wire `0x0c` Scan Directory for
|
||||
Trustees. Do not confuse the SDK decimal subfunction number 12 with the
|
||||
already implemented wire `case 0x12` / decimal 18 directory-handle call.
|
||||
- Implement or intentionally reject `22/35` / wire `0x23` Get Directory Disk
|
||||
Space Restriction and `22/36` / wire `0x24` Set Directory Disk Space
|
||||
Restriction. Both are NetWare 3.x-compatible, not `MARS_NWE_4` work.
|
||||
- Verify the documented `22/00` source-handle interpretation against an old
|
||||
requester or direct test caller before changing behavior.
|
||||
- Decide whether `22/0a` and `22/0b` should apply or validate the documented
|
||||
@@ -364,9 +380,10 @@ Follow-up:
|
||||
- Verify `22/30` DOSSequence byte order against an old requester or direct test
|
||||
caller; current code uses `GET_32()` and the PDF table does not spell out the
|
||||
order for that field.
|
||||
- The NetWare 1.x/2.x/3.x-compatible `0x2222/22` endpoint layout pass is now
|
||||
complete through the documented `22/48` namespace call. Continue with the
|
||||
next non-4.x/OES-only group after this block.
|
||||
- The NetWare 1.x/2.x/3.x-compatible `0x2222/22` endpoint layout pass is
|
||||
covered through the documented `22/48` namespace call, with the newly found
|
||||
`22/12`, `22/35`, and `22/36` gaps tracked as disabled stubs/TODO items.
|
||||
Continue with the next non-4.x/OES-only group after this block.
|
||||
|
||||
|
||||
### Extended volume information field mapping
|
||||
|
||||
92
src/nwconn.c
92
src/nwconn.c
@@ -3572,6 +3572,47 @@ static int handle_ncp_serv(void)
|
||||
}
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case 0x0c : { /* Scan Directory for Trustees */
|
||||
/*
|
||||
* NCP 0x2222/22/12 Scan Directory for Trustees.
|
||||
*
|
||||
* Important notation note: the SDK/PDF writes this as
|
||||
* "22 12" using decimal subfunction notation. The wire
|
||||
* SubFunctionCode byte is therefore 12 decimal, i.e. 0x0c.
|
||||
* Do not confuse it with active case 0x12 below, which is
|
||||
* decimal 18 / Alloc Permanent Directory Handle.
|
||||
*
|
||||
* SDK/WebSDK/include context:
|
||||
* NetWare servers: 2.x, 3.x, 4.x, 5.x
|
||||
* APIs: NWScanDirectoryForTrustees,
|
||||
* NWScanDirectoryForTrustees2,
|
||||
* NWIntScanForTrustees
|
||||
*
|
||||
* SDK request payload after the NCP 22 group header:
|
||||
* byte DirectoryHandle
|
||||
* byte TrusteeSetNumber
|
||||
* byte DirectoryPathLen
|
||||
* byte DirectoryPath[DirectoryPathLen]
|
||||
*
|
||||
* SDK reply payload:
|
||||
* byte DirectoryPath[16]
|
||||
* word CreationDate (Hi-Lo)
|
||||
* word CreationTime (Hi-Lo)
|
||||
* long DirectoryOwnerID (Hi-Lo)
|
||||
* long TrusteeIDSet[5] (Hi-Lo)
|
||||
* byte TrusteeAccessMask[5]
|
||||
*
|
||||
* Status: NetWare 2.x/3.x compatibility endpoint, not
|
||||
* NetWare-4-only. Leave disabled until implemented; it
|
||||
* belongs in the default compatibility TODO bucket, not
|
||||
* behind MARS_NWE_4.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 0xd : { /* Add Trustees to DIR */
|
||||
/******** AddTrustesstoDir ***************/
|
||||
/*
|
||||
@@ -4295,6 +4336,57 @@ static int handle_ncp_serv(void)
|
||||
}
|
||||
return(-2); /* nwbind must do prehandling */
|
||||
|
||||
#if 0
|
||||
case 0x23 : { /* Get Directory Disk Space Restriction */
|
||||
/*
|
||||
* NCP 0x2222/22/35 Get Directory Disk Space Restriction.
|
||||
*
|
||||
* SDK/WebSDK/include context:
|
||||
* NetWare servers: 3.x, 4.x, 5.x
|
||||
* APIs: NWGetDirSpaceLimitList, NWGetDirSpaceInfo
|
||||
*
|
||||
* SDK request payload after the NCP 22 group header:
|
||||
* byte DirHandle
|
||||
*
|
||||
* SDK reply payload:
|
||||
* byte NumberOfEntries
|
||||
* repeated entries:
|
||||
* byte Level
|
||||
* long Max (Lo-Hi)
|
||||
* long Current (Lo-Hi)
|
||||
*
|
||||
* Status: documented NetWare 3.x/default compatibility
|
||||
* endpoint. No active case exists here yet, so keep this
|
||||
* disabled stub next to its numeric slot until implemented.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x24 : { /* Set Directory Disk Space Restriction */
|
||||
/*
|
||||
* NCP 0x2222/22/36 Set Directory Disk Space Restriction.
|
||||
*
|
||||
* SDK/WebSDK/include context:
|
||||
* NetWare servers: 3.x, 4.x, 5.x
|
||||
* APIs: NWSetDirSpaceLimit
|
||||
*
|
||||
* SDK request payload after the NCP 22 group header:
|
||||
* byte DirHandle
|
||||
* long DiskSpaceLimit (Lo-Hi, 4K blocks)
|
||||
*
|
||||
* SDK completion: 0x00 success, 0x01 invalid space limit,
|
||||
* 0x8c no set privileges, 0xbf invalid name space.
|
||||
*
|
||||
* Status: documented NetWare 3.x/default compatibility
|
||||
* endpoint. No active case exists here yet, so keep this
|
||||
* disabled stub next to its numeric slot until implemented.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 0x25 : { /* Set Directory Entry Information */
|
||||
/*
|
||||
* NCP 0x2222/22/37 Set Directory Entry Information.
|
||||
|
||||
Reference in New Issue
Block a user