diff --git a/tests/afp/AFP_DELETED_FILE_INFO.md b/tests/afp/AFP_DELETED_FILE_INFO.md new file mode 100644 index 0000000..7f6e730 --- /dev/null +++ b/tests/afp/AFP_DELETED_FILE_INFO.md @@ -0,0 +1,57 @@ +# AFP deleted-file Macintosh metadata + +`AFP Get Macintosh Info On Deleted Files` is NetWare AFP subfunction `0x13`. +Keep it documented as an unsupported, salvage-backend-dependent endpoint for the +current AFP compatibility slice. + +## Why this is not implemented directly + +The request is not a normal path, name, or file-handle metadata query. It is +keyed by a volume number and a DOS directory entry for a deleted Macintosh +directory entry. The reply shape is also salvage-specific: Finder information, +ProDOS information, resource fork size, and the deleted file name. + +That means the AFP call is an adapter on top of NetWare salvage/deleted-entry +state, not an independent AFP metadata lookup. Implementing it directly in the +AFP handler would create a parallel deleted-file path and would violate the +current rule that AFP endpoints reuse mars_nwe backend semantics. + +## Required mars_nwe backend first + +Before implementing AFP subfunction `0x13`, the normal NetWare salvage backend +must exist and be verified. The relevant non-AFP NCP family is: + +- `NCP 0x2222 / 87 / 16` - Scan Salvageable Files +- `NCP 0x2222 / 87 / 17` - Recover Salvageable File +- `NCP 0x2222 / 87 / 18` - Purge Salvageable File +- optional legacy `NCP 0x2222 / 22 / 27` - Scan Salvageable File (old) + +Once that backend is present, AFP `0x13` should only translate the WebSDK/NWAFP +wire request to the mars_nwe salvage entry and then append AFP-specific deleted +Macintosh metadata. + +## Intended future mapping + +When the salvage backend exists, AFP `0x13` should behave like this: + +1. Validate the request volume and DOS directory entry. +2. Look up the deleted entry through the mars_nwe salvage/deleted-entry backend. +3. Return FinderInfo from the AFP metadata store when available, otherwise zeroes. +4. Return ProDOS information as zeroes unless mars_nwe gains a real ProDOS store. +5. Return resource fork size as zero while resource forks remain unsupported. +6. Return the deleted file name from the salvage entry, not from a live path scan. + +## Current audit status + +Current status for the AFP inventory and final audit: + +```text +0x13 AFP Get Macintosh Info On Deleted Files +status: unsupported / final-audit item +reason: requires mars_nwe salvage/deleted-entry backend first +do not: implement a standalone AFP-local deleted-file scan +``` + +This keeps the AFP implementation aligned with the rest of the current design: +NetWare semantics come from mars_nwe core paths, while AFP-only metadata is kept +small and explicit.