docs: audit async synchronization stubs
This commit is contained in:
21
AI.md
21
AI.md
@@ -1220,4 +1220,23 @@ Next patch number should be `0253`.
|
||||
- This is synchronization/lock-provider state, not server-management or
|
||||
directory state.
|
||||
|
||||
Next patch number should be `0258`.
|
||||
## 2026-06-02 - Patch 0258 async synchronization direct stubs 105/107/108/109
|
||||
|
||||
- Continued NDK-first after Clear Lock Wait Node with the missing direct
|
||||
asynchronous synchronization endpoints in `src/nwconn.c`:
|
||||
- `105` / wire `0x69` Log File (old)
|
||||
- `107` / wire `0x6b` Log Logical Record
|
||||
- `108` / wire `0x6c` Lock Logical Record Set
|
||||
- `109` / wire `0x6d` Log Physical Record
|
||||
- These are NetWare-3.x/4.x-relevant endpoints. The NDK also lists 5.x, but
|
||||
this audit keeps only the 3.x/4.x contract.
|
||||
- Patch `0258` adds disabled source stubs only. Runtime behavior is unchanged.
|
||||
- Do not map these direct async-capable calls onto the existing old
|
||||
synchronous handlers (`03`, `09`, `10`, `26`) or namespace handlers
|
||||
(`87/36`, `87/67`) without a real provider design. The request encodings and
|
||||
async wait-node semantics differ.
|
||||
- These calls share state requirements with `112` Clear Lock Wait Node: pending
|
||||
lock allocation, async wait-node lifetime, and correct completion-code
|
||||
mapping.
|
||||
|
||||
Next patch number should be `0259`.
|
||||
|
||||
26
TODO.md
26
TODO.md
@@ -1857,3 +1857,29 @@ Follow-up:
|
||||
planned 4.x endpoint after Clear Lock Wait Node. Keep active fall-through
|
||||
handlers intact when shared logic is intentional, and add only adjacent
|
||||
per-case Request/Response notes for documentation-only patches.
|
||||
|
||||
### Async synchronization direct stubs 105, 107, 108, 109
|
||||
|
||||
Current status:
|
||||
|
||||
- Patch `0258` continues NDK-first after Clear Lock Wait Node with the
|
||||
missing NetWare-3.x/4.x direct asynchronous synchronization endpoints in
|
||||
`src/nwconn.c`:
|
||||
- `105` / wire `0x69` Log File (old)
|
||||
- `107` / wire `0x6b` Log Logical Record
|
||||
- `108` / wire `0x6c` Lock Logical Record Set
|
||||
- `109` / wire `0x6d` Log Physical Record
|
||||
- They are added only as disabled source stubs because the existing old
|
||||
handlers (`03`, `09`, `10`, `26`) and namespace handlers (`87/36`, `87/67`)
|
||||
are different request encodings and do not implement the async-capable direct
|
||||
105/107/108/109 contracts.
|
||||
- Runtime behavior is unchanged. Do not fake success for these endpoints from
|
||||
the existing synchronous log/lock tables; they need real async WaitNode
|
||||
ownership shared with `112` Clear Lock Wait Node.
|
||||
|
||||
Follow-up:
|
||||
|
||||
- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x endpoint or
|
||||
planned 4.x endpoint after the async synchronization group. Keep active
|
||||
fall-through handlers intact when shared logic is intentional, and add only
|
||||
adjacent per-case Request/Response notes for documentation-only patches.
|
||||
|
||||
70
src/nwconn.c
70
src/nwconn.c
@@ -7665,6 +7665,76 @@ static int handle_ncp_serv(void)
|
||||
}
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case 0x69 : { /* SDK 105 / wire 0x69 Log File (old).
|
||||
* Source outcome: no active direct case exists. The
|
||||
* old SDK 03 Log File and namespace SDK 87/36 Log File
|
||||
* paths are separate compatibility encodings and must not
|
||||
* be treated as proof that direct 105 is implemented.
|
||||
* NetWare scope: 3.x/4.x compatibility endpoint.
|
||||
* Request: FunctionCode=105, DirectoryHandle, LockFlag,
|
||||
* LockTimeout word Hi-Lo, FileNameLen, FileName.
|
||||
* Response: no payload; Completion reports success,
|
||||
* ERR_LOCK_WAITING, No Open Privileges, Server Out Of
|
||||
* Memory, or Lock Error.
|
||||
* Future owner: filesystem/lock provider with real
|
||||
* asynchronous WaitNode support for pending locks.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6b : { /* SDK 107 / wire 0x6b Log Logical Record.
|
||||
* Source outcome: no active direct case exists. The old
|
||||
* SDK 09 Log Logical Record is implemented through the
|
||||
* old direct layout and does not cover the async-capable
|
||||
* SDK 107 layout.
|
||||
* NetWare scope: 3.x/4.x compatibility endpoint.
|
||||
* Request: FunctionCode=107, LockFlag, LockTimeout word
|
||||
* Hi-Lo, SynchNameLen, SynchName.
|
||||
* Response: no payload; Completion reports success,
|
||||
* Lock Waiting Error, Server Out Of Memory, or Lock Error.
|
||||
* Future owner: logical-record lock provider with real
|
||||
* async wait-node lifetime.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6c : { /* SDK 108 / wire 0x6c Lock Logical Record Set.
|
||||
* Source outcome: no active direct case exists. The old
|
||||
* SDK 10 Lock Logical Record Set currently remains a
|
||||
* separate old-layout handler.
|
||||
* NetWare scope: 3.x/4.x compatibility endpoint.
|
||||
* Request: FunctionCode=108, LockFlag, LockTimeout word
|
||||
* Hi-Lo.
|
||||
* Response: no payload; Completion reports success,
|
||||
* ERR_LOCK_WAITING, or Lock Error.
|
||||
* Future owner: logical-record set lock provider.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x6d : { /* SDK 109 / wire 0x6d Log Physical Record.
|
||||
* Source outcome: no active direct case exists. The old
|
||||
* SDK 26 Log Physical Record and namespace SDK 87/67
|
||||
* Log Physical Record use different request encodings.
|
||||
* NetWare scope: 3.x/4.x compatibility endpoint.
|
||||
* Request: FunctionCode=109, LockFlag, NWFileHandle[6],
|
||||
* LockAreaStartOffset long Hi-Lo, LockAreaLen long Hi-Lo,
|
||||
* LockTimeout word Hi-Lo.
|
||||
* Response: no payload; Completion reports success,
|
||||
* ERR_LOCK_WAITING, Invalid File Handle, Server Out Of
|
||||
* Memory, Lock Collision, or Lock Error.
|
||||
* Future owner: physical-record lock provider with real
|
||||
* async wait-node lifetime.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 0x68 : { /* NDS NCP / NDS Fragger protocol. */
|
||||
#if MARS_NWE_4
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user