docs: split timesync selector notes
All checks were successful
Source release / source-package (push) Successful in 45s
All checks were successful
Source release / source-package (push) Successful in 45s
This commit is contained in:
21
AI.md
21
AI.md
@@ -1138,4 +1138,23 @@ Next patch number should be `0253`.
|
||||
migrated-file state, support-module registration, capacity accounting,
|
||||
migrator status, RTDM verbs, and file-migration attribute persistence.
|
||||
|
||||
Next patch number should be `0254`.
|
||||
## 2026-06-02 - Patch 0254 TimeSync selector split 114/01..12
|
||||
|
||||
- Continued NDK-first after SDK `90` Data Migration with the planned NetWare-4.x
|
||||
Time Synchronization family in `src/nwconn.c`:
|
||||
- `114/01` Timesync Get Time
|
||||
- `114/02` Timesync Exchange Time
|
||||
- `114/05` Timesync Get Server List
|
||||
- `114/06` Timesync Set Server List
|
||||
- `114/12` Timesync Get Version
|
||||
- The source already had selector coverage behind `MARS_NWE_4`, but the cases
|
||||
were grouped with fall-through to one shared unsupported return. Patch `0254`
|
||||
splits them so each selector has its own `case`, own `Request:` summary, own
|
||||
`Response:` summary, and own `0xfb` return.
|
||||
- Runtime behavior remains unchanged: TimeSync remains unsupported until a real
|
||||
server-management/time provider exists.
|
||||
- Do not emulate the NDK note that `114/06` returns success in all cases until
|
||||
there is an explicit TimeSync compatibility policy and real server-list state.
|
||||
|
||||
Next patch number should be `0255`.
|
||||
|
||||
|
||||
21
TODO.md
21
TODO.md
@@ -213,10 +213,11 @@ Present in the code but not yet fully endpoint-audited:
|
||||
records `111/00`..`111/04` as disabled `#if 0` selector slots in
|
||||
`src/nwconn.c` so the future semaphore provider can bridge both families.
|
||||
- SDK `0x2222/114` / wire `0x72` Time Synchronization is source-stub-audited
|
||||
as a NetWare-4.x time-service compatibility family. Patch 0229 records
|
||||
as a NetWare-4.x time-service compatibility family. Patch 0254 keeps the
|
||||
disabled `MARS_NWE_4` selector slots for `114/01` Get Time, `114/02`
|
||||
Exchange Time, `114/05` Get Server List, `114/06` Set Server List, and
|
||||
`114/12` Get Version in `src/nwconn.c`. Future ownership belongs to a
|
||||
`114/12` Get Version in `src/nwconn.c`, split into one case-local
|
||||
Request/Response comment per selector. Future ownership belongs to a
|
||||
server-management/time provider, not `nwnds`; do not emulate the documented
|
||||
success behavior of Set Server List until there is a real TimeSync policy.
|
||||
- SDK `0x2222/90` / wire `0x5a` Data Migration / tree metadata is
|
||||
@@ -1778,3 +1779,19 @@ Follow-up:
|
||||
- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x endpoint or
|
||||
planned 4.x endpoint after SDK `90` Data Migration, keeping one case-local
|
||||
Request/Response comment per selector and skipping 5.x-only endpoints.
|
||||
|
||||
### SDK 114 TimeSync selector split
|
||||
|
||||
Current status:
|
||||
|
||||
- Patch `0254` revisits the planned NetWare-4.x Time Synchronization family in
|
||||
`src/nwconn.c` and splits the old grouped fall-through selector notes into
|
||||
individual cases for `114/01`, `114/02`, `114/05`, `114/06`, and `114/12`.
|
||||
- Runtime behavior is unchanged; all TimeSync selectors still return `0xfb`
|
||||
until a real server-management/time provider and compatibility policy exist.
|
||||
|
||||
Follow-up:
|
||||
|
||||
- Continue NDK-first with the next documented NetWare 1.x/2.x/3.x endpoint or
|
||||
planned 4.x endpoint after Time Synchronization, keeping one case-local
|
||||
Request/Response comment per selector and skipping 5.x-only endpoints.
|
||||
|
||||
71
src/nwconn.c
71
src/nwconn.c
@@ -7870,35 +7870,56 @@ static int handle_ncp_serv(void)
|
||||
switch (ts_subfunc) {
|
||||
case 0x01: /* 114/01 Timesync Get Time.
|
||||
* Request: SubFuncStrucLen=1, SubFuncCode=1.
|
||||
* Reply: theTime long[3], eventOffset int64,
|
||||
* Response: theTime long[3], eventOffset int64,
|
||||
* eventTime long, eventParm pointer/opaque.
|
||||
*/
|
||||
case 0x02: /* 114/02 Timesync Exchange Time.
|
||||
* Request/Reply: SubFuncStrucLen=103,
|
||||
* SubFuncCode=2, protocolFlags, nodeFlags,
|
||||
* source/target timestamps, event fields, and
|
||||
* serverName char[50].
|
||||
*/
|
||||
case 0x05: /* 114/05 Timesync Get Server List.
|
||||
* Request: SubFuncStrucLen=5, SubFuncCode=5,
|
||||
* StartNumber long.
|
||||
* Reply: nameType, serverName[48],
|
||||
* serverListFlags, startNumberFlag.
|
||||
*/
|
||||
case 0x06: /* 114/06 Timesync Set Server List.
|
||||
* Request: SubFuncStrucLen=5, SubFuncCode=6,
|
||||
* StartNumber long.
|
||||
* Reply matches Get Server List; NDK remarks
|
||||
* say this NCP returns success in all cases.
|
||||
* Do not emulate that success until there is a
|
||||
* real TimeSync compatibility decision.
|
||||
*/
|
||||
case 0x0c: /* 114/12 Timesync Get Version.
|
||||
* Request: SubFuncStrucLen=1, SubFuncCode=12.
|
||||
* Reply: version long.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x02: /* 114/02 Timesync Exchange Time.
|
||||
* Request: SubFuncStrucLen=103, SubFuncCode=2,
|
||||
* protocolFlags long, nodeFlags long,
|
||||
* sourceOriginateTime int64,
|
||||
* targetReceiveTime int64,
|
||||
* targetTransmitTime int64,
|
||||
* sourceReturnTime int64, eventOffset int64,
|
||||
* eventTime long, serverName char[50].
|
||||
* Response: SubFuncStrucLen=103, SubFuncCode=2,
|
||||
* protocolFlags long, nodeFlags long,
|
||||
* source/target timestamps, event fields, and
|
||||
* serverName char[50].
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x05: /* 114/05 Timesync Get Server List.
|
||||
* Request: SubFuncStrucLen=5, SubFuncCode=5,
|
||||
* StartNumber long.
|
||||
* Response: nameType word, serverName char[48],
|
||||
* serverListFlags long, startNumberFlag word.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x06: /* 114/06 Timesync Set Server List.
|
||||
* Request: SubFuncStrucLen=5, SubFuncCode=6,
|
||||
* StartNumber long.
|
||||
* Response: nameType word, serverName char[48],
|
||||
* serverListFlags long, startNumberFlag word.
|
||||
* NDK remarks say this NCP returns success in
|
||||
* all cases; do not emulate that success until
|
||||
* there is a real TimeSync compatibility policy.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
case 0x0c: /* 114/12 Timesync Get Version.
|
||||
* Request: SubFuncStrucLen=1, SubFuncCode=12.
|
||||
* Response: version long.
|
||||
*/
|
||||
completition = 0xfb;
|
||||
break;
|
||||
|
||||
default: completition = 0xfb;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user