docs: audit accounting endpoint stubs
This commit is contained in:
15
AI.md
15
AI.md
@@ -642,3 +642,18 @@ Latest endpoint audit checkpoint from patch 0225:
|
||||
a separate secure secret-storage provider with strict no-secret logging rules.
|
||||
|
||||
Next patch number should be `0226`.
|
||||
|
||||
Latest endpoint audit checkpoint from patch 0226:
|
||||
|
||||
- After skipping later-generation-only material, the next relevant block found
|
||||
was Accounting: SDK `0x2222/23/150`..`23/153` / wire `0x96`..`0x99`.
|
||||
- Patch `0226` adds disabled `#if 0` selector stubs in `src/nwbind.c` for
|
||||
Get Current Account Status, Submit Account Charge, Submit Account Hold, and
|
||||
Submit Account Note. The NDK marks these as NetWare 2.x/3.x/4.x/5.x, so they
|
||||
are eligible under the 1.x/2.x/3.x plus planned-4.x audit scope.
|
||||
- Do not fake success for these accounting calls: print/accounting servers can
|
||||
use hold/charge/note semantics for real billing/audit behavior. Future owner
|
||||
is the accounting provider, with possible integration to queue printing for
|
||||
page/job charging.
|
||||
|
||||
Next patch number should be `0227`.
|
||||
|
||||
@@ -894,7 +894,10 @@ Accounting is a maybe. It has a separate protocol domain, but in many setups it
|
||||
may be small enough to stay as an in-process provider. A process boundary only
|
||||
makes sense if accounting grows into a real persistent service with charges,
|
||||
holds, notes, audit records, and recovery behavior that should be isolated from
|
||||
connection handlers.
|
||||
connection handlers. The legacy Accounting NCPs (`23/150` through `23/153`) can
|
||||
also be used by accounting/print servers to hold, charge, and note service work,
|
||||
so future queue-printing integration should call into the accounting provider
|
||||
rather than duplicating balance/hold/audit behavior inside the queue provider.
|
||||
|
||||
### Poor process candidates
|
||||
|
||||
|
||||
14
TODO.md
14
TODO.md
@@ -173,10 +173,10 @@ Current status:
|
||||
Present in the code but not yet fully endpoint-audited:
|
||||
|
||||
- SDK `0x2222/23` / wire `0x17` File Server Environment: the audit has started
|
||||
with file-information, login/connection, and bindery-object calls. Remaining
|
||||
property, set, password, queue, and management/admin subfunctions still need
|
||||
the same PDF/WebSDK/include comparison in `src/nwbind.c` and the related
|
||||
queue prehandlers.
|
||||
with file-information, login/connection, bindery-object, queue,
|
||||
management/admin, and accounting calls. Remaining property, set, and
|
||||
password subfunctions still need the same PDF/WebSDK/include comparison in
|
||||
`src/nwbind.c` and the related queue prehandlers.
|
||||
- SDK `0x2222/34` / wire `0x22` TTS calls are present in `src/nwconn.c` and
|
||||
have been endpoint-audited as an unsupported/no-rollback compatibility group.
|
||||
- SDK `0x2222/35` / wire `0x23` AFP calls are present in `src/nwconn.c` and
|
||||
@@ -239,6 +239,12 @@ Present in the code but not yet fully endpoint-audited:
|
||||
sparse-data compatibility calls. Patch 0222 records disabled `#if 0` slots
|
||||
in `src/nwconn.c`; future implementation belongs to the filesystem/namespace
|
||||
provider and should not be confused with NDS directory-object attributes.
|
||||
- SDK `0x2222/23/150`..`23/153` / wire `0x96`..`0x99` Accounting is
|
||||
source-stub-audited as a NetWare 2.x/3.x/4.x-compatible accounting-server
|
||||
family. Patch 0226 records disabled `#if 0` selector slots in `src/nwbind.c`
|
||||
for Get Current Account Status, Submit Account Charge, Submit Account Hold,
|
||||
and Submit Account Note. Future ownership belongs to an accounting provider,
|
||||
with possible bridge points to queue printing for charge/hold/note behavior.
|
||||
|
||||
SDK-listed blocks that do not currently show a top-level handler in
|
||||
`src/nwconn.c`:
|
||||
|
||||
88
src/nwbind.c
88
src/nwbind.c
@@ -2724,6 +2724,94 @@ static void handle_fxx(int gelen, int func)
|
||||
completition=(uint8) -result;
|
||||
}break;
|
||||
|
||||
#if 0
|
||||
case 0x96: { /* Get Current Account Status */
|
||||
/*
|
||||
* SDK 23/150 / wire 0x96 Get Current Account Status.
|
||||
* NetWare Server: 2.x, 3.x, 4.x, 5.x.
|
||||
* Eligible for the current 1.x/2.x/3.x compatibility
|
||||
* audit because accounting servers and print servers can
|
||||
* query ACCOUNT_BALANCE/ACCOUNT_HOLDS before charging for
|
||||
* services.
|
||||
* Request payload after SubFunctionCode:
|
||||
* word ClientType (Hi-Lo)
|
||||
* byte ClientNameLen
|
||||
* byte ClientName[ClientNameLen]
|
||||
* Reply payload:
|
||||
* long AccountBalance (Hi-Lo)
|
||||
* long CreditLimit (Hi-Lo)
|
||||
* byte Reserved[120]
|
||||
* 16 x { long HolderID (Hi-Lo), long HoldAmount (Hi-Lo) }
|
||||
* Source outcome: no accounting backend exists yet. Keep
|
||||
* this as a disabled future stub until bindery-backed or
|
||||
* libdirectory-backed account properties and hold records
|
||||
* exist.
|
||||
* Future owner: accounting provider, with possible print
|
||||
* queue integration for page/job charging.
|
||||
*/
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x97: { /* Submit Account Charge */
|
||||
/*
|
||||
* SDK 23/151 / wire 0x97 Submit Account Charge.
|
||||
* NetWare Server: 2.x, 3.x, 4.x, 5.x.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long ChargeAmount (Hi-Lo)
|
||||
* long HoldCancelAmount (Hi-Lo)
|
||||
* word ServiceType (Hi-Lo)
|
||||
* word ClientType (Hi-Lo)
|
||||
* word CommentType (Hi-Lo)
|
||||
* byte ClientNameLen
|
||||
* byte ClientName[ClientNameLen]
|
||||
* byte CommentLen
|
||||
* byte Comment[CommentLen]
|
||||
* Reply: no data. Completion reports accounting result.
|
||||
* Source outcome: no accounting charge/audit-file writer is
|
||||
* present. Keep disabled; do not fake success because print
|
||||
* servers use this to charge completed work.
|
||||
*/
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x98: { /* Submit Account Hold */
|
||||
/*
|
||||
* SDK 23/152 / wire 0x98 Submit Account Hold.
|
||||
* NetWare Server: 2.x, 3.x, 4.x, 5.x.
|
||||
* Request payload after SubFunctionCode:
|
||||
* long Amount (Hi-Lo)
|
||||
* word ClientType (Hi-Lo)
|
||||
* byte ClientNameLen
|
||||
* byte ClientName[ClientNameLen]
|
||||
* Reply: no data. Completion reports accounting result.
|
||||
* Source outcome: no ACCOUNT_HOLDS storage/update logic is
|
||||
* present. Keep disabled until an accounting provider can
|
||||
* update holds atomically with account balance checks.
|
||||
*/
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x99: { /* Submit Account Note */
|
||||
/*
|
||||
* SDK 23/153 / wire 0x99 Submit Account Note.
|
||||
* NetWare Server: 2.x, 3.x, 4.x, 5.x.
|
||||
* Request payload after SubFunctionCode:
|
||||
* word ServiceType (Hi-Lo)
|
||||
* word ClientType (Hi-Lo)
|
||||
* word CommentType (Hi-Lo)
|
||||
* byte ClientNameLen
|
||||
* byte ClientName[ClientNameLen]
|
||||
* byte CommentLen
|
||||
* byte Comment[CommentLen]
|
||||
* Reply: no data.
|
||||
* Source outcome: no NET$ACCT.DAT/audit-note writer exists
|
||||
* yet. Keep disabled until the accounting provider defines
|
||||
* durable note/audit behavior.
|
||||
*/
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 0x73: /* abort servicing queue job (old) */
|
||||
case 0x84: { /* abort servicing queue job */
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user