docs: audit print spool endpoint stubs
This commit is contained in:
39
AI.md
39
AI.md
@@ -11,18 +11,18 @@ When the user says this is a new chat or asks to continue mars-nwe work, first
|
||||
read this file before proposing patches or making assumptions. Then ask for, or
|
||||
use, the current project status that the user pasted into the chat.
|
||||
|
||||
## Current handoff status after patch 0217
|
||||
## Current handoff status after patch 0218
|
||||
|
||||
The current accepted patch line in this chat is expected to include:
|
||||
|
||||
- endpoint-audit/documentation patches through `0176-docs-audit-direct-lifecycle-buffer-endpoints.patch`;
|
||||
- redesign documentation patches `0177` through `0198`;
|
||||
- endpoint-audit/documentation patches `0199` through `0217`;
|
||||
- latest expected patch name: `0217-docs-audit-nds-fragger-stubs.patch`.
|
||||
- endpoint-audit/documentation patches `0199` through `0218`;
|
||||
- latest expected patch name: `0218-docs-audit-print-spool-stubs.patch`.
|
||||
|
||||
When continuing in a new chat, first ask the user which patch was actually last
|
||||
applied. If they confirm `0217`, build the next patch as `0218-...` against a
|
||||
tree that already contains `0217`. If any patch failed or was skipped, rebuild
|
||||
applied. If they confirm `0218`, build the next patch as `0219-...` against a
|
||||
tree that already contains `0218`. If any patch failed or was skipped, rebuild
|
||||
against the last confirmed applied patch instead of assuming the file in
|
||||
`/mnt/data` was accepted.
|
||||
|
||||
@@ -198,24 +198,21 @@ Schema/import direction:
|
||||
|
||||
Latest endpoint audit note:
|
||||
|
||||
- Patch `0217` audits the planned NetWare-4.x NDS/NCP Fragger family
|
||||
`0x2222/104` / wire `0x68` in `src/nwconn.c`. The top-level source case was
|
||||
already present and still returns `0xfb` at runtime. Patch `0217` adds
|
||||
disabled `MARS_NWE_4` source-stub selector documentation for `104/01` Ping for
|
||||
NDS NCP, `104/02` Send NDS Fragmented Request/Reply, `104/03` Fragment Close,
|
||||
`104/04` Return Bindery Context, `104/05` Monitor NDS Connection, `104/06`
|
||||
Return NDS Statistics, `104/07` Clear Statistics, and `104/08` Reload NDS
|
||||
Software.
|
||||
- Remember that `104/02` is a nested-selector path: the NDS `Verb` is a 32-bit
|
||||
payload field after the NDS subfunction, so future docs should write paths
|
||||
like `0x2222/104/02 verb=<n>` instead of inventing one-byte `zz` cases.
|
||||
Future implementation belongs to `nwnds`/`libdirectory`; `nwserv` remains
|
||||
control plane only.
|
||||
- Patch `0218` audits SDK `0x2222/17` / wire `0x11` Print/Spool as a
|
||||
NetWare 2.x/3.x/4.x compatibility family. No active top-level source
|
||||
handler exists, so the documented selector slots `17/00` Write To Spool
|
||||
File, `17/01` Close Spool File, `17/02` Set Spool File Flags, `17/03`
|
||||
Spool A Disk File, `17/06` Get Printer Status, `17/09` Create Spool File,
|
||||
and `17/10` Get Printer's Queue are recorded as a disabled `#if 0` source
|
||||
stub in `src/nwconn.c`.
|
||||
- Future implementation belongs to a print/spool compatibility provider,
|
||||
probably sharing queue provider concepts for queued output, but not to
|
||||
`nwnds`. The stub is intentionally inactive and has no runtime effect.
|
||||
|
||||
The next patch number should be `0218` if `0217` was applied. Likely next
|
||||
The next patch number should be `0219` if `0218` was applied. Likely next
|
||||
blocks are deeper `0x2222/23` bindery/property/admin subfunction coverage,
|
||||
SDK `0x2222/36`/`37` NCP Extension scope, SDK `0x2222/17` Print/Spool, or
|
||||
another user-selected endpoint family.
|
||||
SDK `0x2222/36`/`37` NCP Extension scope, SDK `0x2222/90` scope, or another
|
||||
user-selected endpoint family.
|
||||
|
||||
## Patch workflow
|
||||
|
||||
|
||||
11
TODO.md
11
TODO.md
@@ -206,14 +206,17 @@ Present in the code but not yet fully endpoint-audited:
|
||||
planned NetWare-4.x/NDS work. The top-level source case remains active as
|
||||
unsupported (`0xfb`), while the documented 104/01..104/08 selector slots are
|
||||
recorded behind `#if MARS_NWE_4` in `src/nwconn.c`.
|
||||
- SDK `0x2222/17` / wire `0x11` Print/Spool is source-stub-audited
|
||||
as a NetWare 2.x/3.x/4.x compatibility family. There is no active
|
||||
top-level handler, so patch 0218 records the documented selector slots
|
||||
`17/00`, `17/01`, `17/02`, `17/03`, `17/06`, `17/09`, and `17/10` as a
|
||||
disabled `#if 0` stub in `src/nwconn.c`. Future implementation belongs to
|
||||
a print/spool compatibility provider, likely integrated with queue handling,
|
||||
not to `nwnds`.
|
||||
|
||||
SDK-listed blocks that do not currently show a top-level handler in
|
||||
`src/nwconn.c`:
|
||||
|
||||
- SDK `0x2222/17` / wire `0x11` Print/Spool group. The PDF lists old print
|
||||
calls such as Write To Spool File, Close Spool File, Set Spool File Flags,
|
||||
Spool A Disk File, Get Printer Status, Create Spool File, and Get Printer's
|
||||
Queue. No top-level `case 0x11` has been identified in `src/nwconn.c` yet.
|
||||
- SDK `0x2222/36` and `0x2222/37` / wire `0x24` and `0x25` NCP Extension
|
||||
families. The PDF lists extension-info and execute-extension calls; no
|
||||
top-level handlers have been identified yet. Bucket by generation before
|
||||
|
||||
88
src/nwconn.c
88
src/nwconn.c
@@ -5567,6 +5567,94 @@ static int handle_ncp_serv(void)
|
||||
} /* case 0x17 */
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case 0x11 : { /* SDK 17 / wire 0x11 Print / Spool group.
|
||||
* Coverage: missing top-level handler in the current
|
||||
* source, so keep the eligible NetWare 2.x/3.x/4.x print
|
||||
* selector map as a disabled documentation stub.
|
||||
* Request handoff: SDK 17 requests carry a 16-bit
|
||||
* SubFunctionStrucLen at requestdata[0..1], followed by
|
||||
* the one-byte SubFunctionCode at requestdata[2].
|
||||
* Reply ownership: a future print/spool provider would
|
||||
* return normal Completion plus per-subfunction payload;
|
||||
* nwconn would still own the final client reply envelope.
|
||||
* Future owner: print/spool compatibility provider, likely
|
||||
* integrated with queue handling but not with nwnds.
|
||||
*/
|
||||
int print_sub = (requestlen >= (int)sizeof(NCPREQUEST) + 3)
|
||||
? (int)requestdata[2] : -1;
|
||||
switch (print_sub) {
|
||||
case 0x00: /* 17/00 Write To Spool File.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* ClientPrinterNumber, PrintData[].
|
||||
* Reply: no payload, normal Completion.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x01: /* 17/01 Close Spool File.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* AbortQueueFlag.
|
||||
* Reply: no payload, normal Completion.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x02: /* 17/02 Set Spool File Flags.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* PrintFlags, TabSize, TargetPrinter,
|
||||
* NumberOfCopies, FormType, BannerName,
|
||||
* BannerFileName.
|
||||
* Reply: no payload, normal Completion.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x03: /* 17/03 Spool A Disk File.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* DirectoryHandle, Path, PrintFlags, TabSize,
|
||||
* TargetPrinter, NumberOfCopies, FormType,
|
||||
* BannerName, BannerFileName.
|
||||
* Reply: no payload, normal Completion.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x06: /* 17/06 Get Printer Status.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* TargetPrinter.
|
||||
* Reply: PrinterHalted, PrinterOffLine,
|
||||
* CurrentFormType, RedirectedPrinter.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x09: /* 17/09 Create Spool File.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* DirectoryHandle, Path, PrintFlags, TabSize,
|
||||
* TargetPrinter, NumberOfCopies, FormType,
|
||||
* BannerName, BannerFileName.
|
||||
* Reply: CreatedSpoolFileHandle / name data per
|
||||
* old print-service layout.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x0a: /* 17/10 Get Printer's Queue.
|
||||
* Request: SubFunctionStrucLen, SubFunctionCode,
|
||||
* TargetPrinter, QueueIndex.
|
||||
* Reply: PrinterQueueEntry list / next index.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
default: completition = 0xfb;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 0x18 : /* End of Job */
|
||||
/*
|
||||
* Direct NCP 0x2222/24 End of Job.
|
||||
|
||||
Reference in New Issue
Block a user