All checks were successful
Source release / source-package (push) Successful in 47s
Resolve the effective NetWare volume for path-backed AFP compatibility requests from the raw VOL: path prefix before opening data forks or allocating temporary directory handles. The WebSDK/nwafp.h request layouts for AFP 0x08 Open File Fork and AFP 0x0b Alloc Temporary Directory Handle both carry a volume byte plus base AFP Entry ID. The current mars_nwe smoke subset deliberately keeps Entry-ID-relative lookup disabled, but it accepts raw NetWare-style paths such as SYS:PUBLIC and HOME:LOGIN. In that path-backed mode, treating dir_handle 0 as volume 0 in diagnostics is too narrow: build_path() already extracts the real volume from the VOL: prefix, and the lower NetWare open/dir-handle helpers use that same resolver internally. Add a small AFP path-volume resolver wrapper around conn_get_kpl_unxname() and use it in the 0x08 and 0x0b handlers before delegating to nw_creat_open_file() or nw_alloc_dir_handle(). Successful diagnostics now report the resolved effective volume and keep the incoming request volume separately as request_vol, which preserves the header-level request shape without implying that non-SYS paths are opened on volume 0. This does not add CNID/base-ID lookup, resource-fork handling, or write semantics. Entry-ID-only requests remain Invalid Path until persistent AFP identity mapping is implemented. The optional Netatalk/libatalk backend guard remains unchanged; ENABLE_NETATALK_LIBATALK=OFF still rejects these AFP calls with Invalid Namespace before any path-backed work is attempted. Tests: - git diff --check - cmake --build build-off --target nwconn with ENABLE_NETATALK_LIBATALK=OFF - cmake --build build-on --target nwconn with ENABLE_NETATALK_LIBATALK=ON requested; local tree reports backend disabled because libatalk headers/library are not installed TODO: - Runtime-smoke a non-SYS volume such as HOME: to confirm the diagnostic shows the resolved non-zero volume id. - Replace path-backed smoke lookup with persistent CNID/base-ID lookup when the AFP metadata backend grows that support.