Files
mars-nwe/tests/afp/AFP_DELETED_FILE_INFO.md
ai 59bfdd65b2
All checks were successful
Source release / source-package (push) Successful in 52s
afp: persist ProDOS info metadata
2026-06-01 11:51:05 +02:00

58 lines
2.4 KiB
Markdown

# 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)
AFP `0x13` translates the WebSDK/NWAFP
wire request to the mars_nwe salvage entry and then append AFP-specific deleted
Macintosh metadata.
## Intended future mapping
AFP `0x13` behaves 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 from the Salvage JSON snapshot (`prodos_info_hex`), which is captured from the nwatalk ProDOSInfo xattr backend.
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.