docs: document remaining queue rights stubs

This commit is contained in:
Mario Fetka
2026-06-02 05:03:24 +00:00
parent af8287ff85
commit b4a07f8cc3
2 changed files with 144 additions and 8 deletions

42
TODO.md
View File

@@ -557,11 +557,30 @@ Current status:
- SDK `23/106` / wire `0x6a` Remove Job From Queue (old)
- SDK `23/107` / wire `0x6b` Get Queue Job List (old)
- SDK `23/108` / wire `0x6c` Read Queue Job Entry (old)
- SDK `23/109` / wire `0x6d` Change Queue Job Entry (old)
- SDK `23/110` / wire `0x6e` Change Queue Job Position -- disabled future stub
- SDK `23/111` / wire `0x6f` Attach Queue Server To Queue
- SDK `23/112` / wire `0x70` Detach Queue Server From Queue
- SDK `23/113` / wire `0x71` Service Queue Job (old)
- SDK `23/114` / wire `0x72` Finish Servicing Queue Job (old)
- SDK `23/115` / wire `0x73` Abort Servicing Queue Job (old)
- SDK `23/116` / wire `0x74` Change To Client Rights (old) -- disabled future stub
- SDK `23/117` / wire `0x75` Restore Queue Server Rights -- disabled future stub
- SDK `23/118` / wire `0x76` Read Queue Server Current Status (old) -- disabled future stub
- SDK `23/119` / wire `0x77` Set Queue Server Current Status -- disabled future stub
- SDK `23/120` / wire `0x78` Get Queue Job File Size (old)
- SDK `23/121` / wire `0x79` Create Queue Job And File
- SDK `23/122` / wire `0x7a` Read Queue Job Entry
- SDK `23/126` / wire `0x7e` Set Queue Current Status
- SDK `23/127` / wire `0x7f` Close File And Start Queue Job
- SDK `23/128` / wire `0x80` Remove Job From Queue
- SDK `23/129` / wire `0x81` Get Queue Job List
- SDK `23/130` / wire `0x82` Change Job Priority -- disabled future stub
- SDK `23/131` / wire `0x83` Finish Servicing Queue Job
- SDK `23/132` / wire `0x84` Abort Servicing Queue Job
- SDK `23/133` / wire `0x85` Change To Client Rights -- disabled future stub
- SDK `23/134` / wire `0x86` Read Queue Server Current Status -- disabled future stub
- SDK `23/135` / wire `0x87` Get Queue Job File Size
- SDK `23/15` request payload offsets match the current parser:
`LastSearchIndex`, `DirectoryHandle`, `SearchAttributes`, `FileNameLen`,
and `FileName`. The reply shape also matches the documented fixed file
@@ -619,6 +638,14 @@ Current status:
noted where the current compatibility parser still consumes or emits old
16-bit job-number fields.
- Remaining queue rights/status/priority calls SDK `23/110`, SDK `23/116`
through SDK `23/119`, SDK `23/130`, SDK `23/133`, and SDK `23/134` were
compared against the NDK/Core-Protocols PDF and `nwqms.h`/`nwqueue.h`
prototypes. They are not implemented in the current queue backend. `nwbind.c`
now documents them as disabled future stubs rather than leaving the wire slots
implicit: job-position reorder, queue-server identity switch/restore, the
per-server 64-byte status record, and newer long-priority/client-rights forms.
Follow-up:
- Verify SDK `23/15` search-index byte order against a real old requester or
@@ -647,14 +674,13 @@ Follow-up:
fields in the WebSDK/include material, while the current compatibility parser often reuses
the old 16-bit layout. SDK `23/126` / wire `0x7e` also documents a long
queue-status field but the shared parser consumes only one byte.
- Continue the `0x2222/23` audit with the remaining queue rights/status calls
not yet documented in `src/nwbind.c`: SDK `23/116` / wire `0x74` Change To
Client Rights (old), SDK `23/117` / wire `0x75` Restore Queue Server Rights,
SDK `23/118` / wire `0x76` Read Queue Server Current Status (old), SDK
`23/119` / wire `0x77` Set Queue Server Current Status, SDK `23/130` / wire
`0x82` Change Queue Job Position, SDK `23/133` / wire `0x85` Change To Client
Rights, SDK `23/134` / wire `0x86` Read Queue Server Current Status, and any
matching helper/prehandler paths.
- Implement or deliberately hard-fail the disabled queue future stubs once the
queue backend can support their semantics: SDK `23/110` / wire `0x6e` Change
Queue Job Position, SDK `23/116` / wire `0x74` and SDK `23/133` / wire `0x85`
Change To Client Rights, SDK `23/117` / wire `0x75` Restore Queue Server
Rights, SDK `23/118` / wire `0x76` and SDK `23/134` / wire `0x86` Read Queue
Server Current Status, SDK `23/119` / wire `0x77` Set Queue Server Current
Status, and SDK `23/130` / wire `0x82` Change Job Priority.
- Audit the remaining forwarded `0x2222/23` management subfunctions in the files
that actually handle them instead of treating the `nwconn.c` forwarding points
as complete local implementations.

View File

@@ -2391,6 +2391,76 @@ static void handle_fxx(int gelen, int func)
}
break;
#if 0
case 0x74: /* Change To Client Rights (old) */
case 0x85: /* Change To Client Rights */
{
/*
* SDK 23/116 / wire 0x74 Change To Client Rights (old)
* and SDK 23/133 / wire 0x85 Change To Client Rights.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word JobNumber (Hi-Lo) for old wire 0x74
* long JobNumber (Lo-Hi) for newer wire 0x85
* Reply: no data.
* This is a queue-server identity switch: the server
* connection temporarily assumes the job owner's security
* equivalence and recalculates directory rights. The
* current code has no implementation for that connection
* identity transition, so the audited endpoint remains a
* disabled future stub.
*/
}
break;
case 0x75: { /* Restore Queue Server Rights */
/*
* SDK 23/117 / wire 0x75 Restore Queue Server Rights.
* Request payload after SubFunctionCode: none.
* Reply: no data.
* This must reverse SDK 23/116 or SDK 23/133 by restoring
* the queue server's original login identity and security
* equivalence list. It is disabled until the corresponding
* Change To Client Rights transition exists.
*/
}
break;
case 0x76: /* Read Queue Server Current Status (old) */
case 0x86: /* Read Queue Server Current Status */
{
/*
* SDK 23/118 / wire 0x76 Read Queue Server Current Status
* (old) and SDK 23/134 / wire 0x86 Read Queue Server
* Current Status.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* long ServerID (Hi-Lo)
* byte ServerStation for old wire 0x76
* long ServerStation (Lo-Hi) for newer wire 0x86
* Reply: byte ServerStatusRecord[64].
* The queue backend currently tracks attached servers well
* enough for queue status lists, but does not maintain this
* per-server 64-byte opaque status record.
*/
}
break;
case 0x77: { /* Set Queue Server Current Status */
/*
* SDK 23/119 / wire 0x77 Set Queue Server Current Status.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* byte ServerStatusRecord[64]
* Reply: no data.
* The 64-byte record is opaque to the queue manager, but it
* must be stored per attached queue server before the read
* status calls above can be implemented.
*/
}
break;
#endif
case 0x78: /* Get Queue Job File Size (old) */
case 0x87: /* Get Queue Job File Size */
{
@@ -2486,6 +2556,26 @@ static void handle_fxx(int gelen, int func)
break;
#endif
#if 0
case 0x6e: { /* Change Queue Job Position (old) */
/*
* SDK 23/110 / wire 0x6e Change Queue Job Position.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* word JobNumber (Hi-Lo)
* byte NewPosition
* Reply: no data.
* NetWare documents this as a 2.x/3.x queue-management
* call, but MARS-NWE currently has no queue helper that
* reorders job entries. Keep this as a disabled
* documentation stub until the queue backend can update
* every affected job position atomically.
*/
}
break;
#endif
case 0x7d : { /* Read Queue Current Status, new */
/*
* SDK 23/125 / wire 0x7d Read Queue Current Status.
@@ -2570,6 +2660,26 @@ static void handle_fxx(int gelen, int func)
completition=(uint8)-result;
}break;
#if 0
case 0x82: { /* Change Job Priority */
/*
* SDK 23/130 / wire 0x82 Change Job Priority.
* Request payload after SubFunctionCode:
* long QueueID (Hi-Lo)
* long JobNumber (Lo-Hi)
* long Priority (Lo-Hi)
* Reply: no data.
* This is not the older SDK 23/110 / wire 0x6e Change
* Queue Job Position byte-position call; it changes the
* long priority field in the newer queue job structure.
* The queue backend does not expose a priority update helper
* yet, so keep the endpoint documented as a disabled future
* stub.
*/
}
break;
#endif
case 0x72: /* finish servicing queue job (old)*/
case 0x83: { /* finish servicing queue job */
/*