From e899704677d2036dfe88aa9c388fcede40cdbbe4 Mon Sep 17 00:00:00 2001 From: OpenAI Date: Sat, 30 May 2026 14:52:03 +0000 Subject: [PATCH] tests: record AFP DOS name namespace smoke success Record the follow-up Linux smoke-suite result for NCP 0x2222/35/18, AFP Get DOS Name From Entry ID, after the reverse lookup was changed to use the existing namedos.c DOS namespace alias builder.\n\nThe previous implementation returned the raw Unix/realcase relative path, which made SYS:PUBLIC/pmdflts.ini appear as public/pmdflts.ini. The corrected path now returns the canonical DOS namespace spelling PUBLIC/PMDFLTS.INI, matching mars_nwe's existing DOS name semantics instead of adding AFP-local case handling.\n\nThe note keeps the broader convergence rule explicit: AFP handlers should reuse mars_nwe namespace, attribute, trustee, timestamp, open, and directory helpers wherever those NetWare semantics already exist, and only keep AFP-specific metadata in the AFP xattr namespace.\n\nTests:\n- ./afp_smoke_suite.sh ... SYS:PUBLIC/pmdflts.ini\n- AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified\n- Server log: AFP Get DOS Name From Entry ID: vol=0 entry=0x440cb9b2 path='PUBLIC/PMDFLTS.INI'\n- Suite result: failures=0 --- TODO.md | 10 ++++------ tests/linux/README.md | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/TODO.md b/TODO.md index cdadb83..880a72a 100644 --- a/TODO.md +++ b/TODO.md @@ -381,12 +381,10 @@ Current status: Fork, narrow Set File Information metadata writes, NetWare-backed Archive attribute mapping, Modify timestamp writes through `nw_utime_node()`, and a conservative Get DOS Name From Entry ID reverse lookup. -- The latest smoke-suite run for the new Get DOS Name From Entry ID helper - exposed a casing mismatch rather than a transport failure: the server returned - `public/pmdflts.ini` while the helper expected `PUBLIC/pmdflts.ini`. Follow-up - work should decide whether the helper should compare case-insensitively, - whether AFP 0x12 should return canonical NetWare spelling, or whether the - path resolver should expose an existing mars_nwe canonical DOS-name helper. +- The Get DOS Name From Entry ID helper now returns the canonical DOS namespace + spelling from the existing mars_nwe `namedos.c` alias builder. The follow-up + smoke run confirms `PUBLIC/PMDFLTS.INI` for `SYS:PUBLIC/pmdflts.ini`, replacing + the earlier raw Unix/realcase `public/pmdflts.ini` result. Design rule: diff --git a/tests/linux/README.md b/tests/linux/README.md index c831f31..f377879 100644 --- a/tests/linux/README.md +++ b/tests/linux/README.md @@ -693,7 +693,8 @@ entry ID. The reply is a one-byte DOS path length followed by the DOS path string for the matching entry. The smoke helper first resolves the supplied `VOL:PATH` through AFP Get Entry ID From Path Name when `--entry-id` is not provided, then calls AFP Get DOS Name From Entry ID and verifies that the -returned path matches the original path without the volume prefix. +returned path matches the existing mars_nwe DOS namespace spelling without the +volume prefix. Example: @@ -704,9 +705,21 @@ Example: Expected output shape: ```text -AFP Get DOS Name From Entry ID volume=0 entry_id=0x399193ed path=PUBLIC/pmdflts.ini verified +AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified ``` + + +A successful post-fix smoke-suite run confirmed the `namedos.c` alias path: + +```text +AFP Get DOS Name From Entry ID volume=0 entry_id=0x440cb9b2 path=PUBLIC/PMDFLTS.INI verified +AFP Get DOS Name From Entry ID: vol=0 entry=0x440cb9b2 path='PUBLIC/PMDFLTS.INI' +``` + +This intentionally returns DOS namespace spelling rather than the raw Unix +realcase path (`public/pmdflts.ini`). + The server implementation deliberately reuses the existing mars_nwe volume table and the `nwatalk_get_entry_id()` metadata probe. It does not create fallback entry IDs while walking the volume; the target entry must already have a cached