docs: audit file server usage open-file stubs
This commit is contained in:
18
AI.md
18
AI.md
@@ -936,3 +936,21 @@ Latest endpoint audit checkpoint from patch 0244:
|
||||
semaphore selectors such as `23/227`, `23/229`..`23/242`.
|
||||
|
||||
Next patch number should be `0245`.
|
||||
|
||||
Latest endpoint audit checkpoint from patch 0245:
|
||||
|
||||
- Continued the NDK-first File Server Environment pass with `23/227` and
|
||||
`23/229` through `23/236` at wire `0xe3` and `0xe5` through `0xec`.
|
||||
`23/228` is not listed in the NDK table and no wire `0xe4` marker was added.
|
||||
- Added/split individual disabled `src/nwbind.c` cases for LAN driver
|
||||
configuration, connection usage statistics, object remaining disk space, LAN
|
||||
I/O statistics, file-server misc information, volume information, connection
|
||||
task information, connection open files, and connection-using-a-file scans.
|
||||
- The old grouped `23/232`/`23/235` placeholder is gone. Each audited selector
|
||||
now has its own case-local `Request:` and `Response:` summary.
|
||||
- Do not implement these from approximations. They need real LAN binding,
|
||||
NCP byte/request counter, bindery quota, volume/free-space, routing/LAN I/O,
|
||||
server memory/utilization, volume-table, task/lock-wait, open-file/share/deny,
|
||||
and file-user provider state.
|
||||
|
||||
Next patch number should be `0246`.
|
||||
|
||||
32
TODO.md
32
TODO.md
@@ -1541,3 +1541,35 @@ Follow-up:
|
||||
- Continue the NDK-first `23/xx` pass with the next adjacent documented
|
||||
NetWare 1.x/2.x/3.x block or planned NetWare 4.x block. Keep one case and
|
||||
request/response comment per selector.
|
||||
|
||||
### File Server Environment usage/LAN/volume and open-file stubs 23/227 and 23/229..236
|
||||
|
||||
Current status:
|
||||
|
||||
- Patch `0245` continues the NDK-first `23/xx` pass with the adjacent in-scope
|
||||
File Server Environment information selectors:
|
||||
- `23/227` / wire `0xe3` Get LAN Driver Configuration Information
|
||||
- `23/229` / wire `0xe5` Get Connection Usage Statistics
|
||||
- `23/230` / wire `0xe6` Get Object's Remaining Disk Space
|
||||
- `23/231` / wire `0xe7` Get File Server LAN I/O Statistics
|
||||
- `23/232` / wire `0xe8` Get File Server Misc Information
|
||||
- `23/233` / wire `0xe9` Get Volume Information
|
||||
- `23/234` / wire `0xea` Get Connection's Task Information
|
||||
- `23/235` / wire `0xeb` Get Connection's Open Files
|
||||
- `23/236` / wire `0xec` Get Connection Using A File
|
||||
- There is no NDK `23/228` entry in this block, so no wire `0xe4` placeholder
|
||||
was added.
|
||||
- Each selector is documented as its own disabled `#if 0` `case` in
|
||||
`src/nwbind.c`, with an attached Request/Response summary. The old grouped
|
||||
`23/232`/`23/235` placeholder is split and removed.
|
||||
- Future implementations require real LAN-driver binding state, NCP data-path
|
||||
byte/request counters, bindery quota and volume space state, NetWare LAN/I/O
|
||||
routing counters, server memory/utilization state, volume table state,
|
||||
task/lock-wait state, and open-file/share/deny provider state. Do not fake
|
||||
these replies from host interface lists or partial connection state.
|
||||
|
||||
Follow-up:
|
||||
|
||||
- Continue the NDK-first `23/xx` pass with the next small block, likely the
|
||||
newer lock and semaphore monitor selectors `23/237` through `23/242`, keeping
|
||||
one case and Request/Response comment per selector.
|
||||
|
||||
95
src/nwbind.c
95
src/nwbind.c
@@ -3174,12 +3174,101 @@ static void handle_fxx(int gelen, int func)
|
||||
return(-1);
|
||||
break;
|
||||
|
||||
case 0xe3 : /* SDK 23/227 / wire 0xe3 Get LAN Driver Configuration Information */
|
||||
/*
|
||||
* Request: SubFuncStrucLen is printed as 1 in the NDK,
|
||||
* SubFunctionCode=227, LANDriverNumber follows at offset 10.
|
||||
* Response: NetworkAddress, HostAddress, BoardInstalled,
|
||||
* OptionNumber, and 160 bytes of NULL-terminated
|
||||
* ConfigurationText. Requires real LAN-driver binding
|
||||
* state; do not synthesize from the local host interface.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xe5 : /* SDK 23/229 / wire 0xe5 Get Connection Usage Statistics */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=3, SubFunctionCode=229,
|
||||
* ConnectionNumber.
|
||||
* Response: SystemIntervalMarker, six-byte BytesRead,
|
||||
* six-byte BytesWritten, and TotalRequestPackets. Requires
|
||||
* per-connection byte and request counters from the NCP
|
||||
* data path, not only connection presence.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xe6 : /* SDK 23/230 / wire 0xe6 Get Object's Remaining Disk Space */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=5, SubFunctionCode=230,
|
||||
* ObjectID.
|
||||
* Response: SystemIntervalMarker, ObjectID,
|
||||
* UnusedDiskBlocks, and RestrictionsEnforced. Requires
|
||||
* bindery object quotas plus volume/free-space state.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xe7 : /* SDK 23/231 / wire 0xe7 Get File Server LAN I/O Statistics */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=1, SubFunctionCode=231.
|
||||
* Response: SystemIntervalMarker and NetWare routing/LAN
|
||||
* counters such as routing-buffer usage, file-service
|
||||
* packet counts, bad connection/sequence counts, duplicate
|
||||
* replies, bridge-hop drops, propagated NetBIOS broadcasts,
|
||||
* other packets, and routed packets.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xe8 : /* SDK 23/232 / wire 0xe8 Get File Server Misc Information */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=1, SubFunctionCode=232.
|
||||
* Response: SystemIntervalMarker, processor type, service
|
||||
* process/utilization counters, bindery object limits and
|
||||
* usage, total/wasted server memory, and one to three
|
||||
* dynamic memory area records.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xe9 : /* SDK 23/233 / wire 0xe9 Get Volume Information */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=2, SubFunctionCode=233,
|
||||
* VolumeNumber.
|
||||
* Response: SystemIntervalMarker, volume/logical-drive
|
||||
* numbers, block geometry and free/total block counts,
|
||||
* directory entry counts, hash/cache/removable/mounted
|
||||
* flags, and 16-byte VolumeName.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xea : /* SDK 23/234 / wire 0xea Get Connection's Task Information */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=5, SubFunctionCode=234,
|
||||
* ConnectionNumber.
|
||||
* Response: NextRequestRecord, AllAttrStruc/WaitRecord
|
||||
* according to LockStatus, NumberOfActiveTasks, and
|
||||
* TaskNumber/TaskState pairs. Requires real task and lock
|
||||
* wait state, not only the logical connection record.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xeb : /* SDK 23/235 / wire 0xeb Get Connection's Open Files */
|
||||
/*
|
||||
* NetWare 2.x/3.x server-management information calls.
|
||||
* Keep disabled until their variable reply records are
|
||||
* mapped to real MARS-NWE state.
|
||||
* Request: SubFuncStrucLen=5, SubFunctionCode=235,
|
||||
* ConnectionNumber, LastRecordSeen.
|
||||
* Response: NextRequestRecord, NumberOfRecords, then
|
||||
* records with TaskNumber, LockType, AccessControl,
|
||||
* LockFlag, VolumeNumber, DOS parent/entry numbers,
|
||||
* ForkCount, NameSpace, NameLen, and FileName.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
case 0xec : /* SDK 23/236 / wire 0xec Get Connection Using A File */
|
||||
/*
|
||||
* Request: SubFuncStrucLen=9, SubFunctionCode=236,
|
||||
* DataStreamNumber, VolumeNumber, DirectoryBase,
|
||||
* LastRecordSeen.
|
||||
* Response: NextRequestRecord; use/open/read/write/deny
|
||||
* counts; Locked, ForkCount, NumberOfRecords; and per-user
|
||||
* ConnectionNumber, TaskNumber, LockType, AccessControl,
|
||||
* and LockFlag records for the file.
|
||||
*/
|
||||
return(-1);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user