tests: record AFP metadata entry-id resolver smoke success
This commit is contained in:
17
TODO.md
17
TODO.md
@@ -578,6 +578,23 @@ Access Date/Time remained on the normal file `atime` path and did not create an
|
||||
AFP metadata xattr.
|
||||
|
||||
|
||||
|
||||
### AFP metadata entry-id resolver convergence
|
||||
|
||||
AFP Get File Information and AFP Set File Information now accept entry-id-only
|
||||
requests for regular files whose AFP ID is present in the mars_nwe AFP entry-id
|
||||
xattr metadata. The shared resolver converts the AFP file Entry ID back to a
|
||||
normal `VOL:PATH` string and then routes the operation through the existing
|
||||
NetWare metadata paths. Regular file Entry IDs are not treated as DOS namespace
|
||||
directory numbers.
|
||||
|
||||
Runtime status: the full AFP smoke suite is verified with `failures=0` after
|
||||
adding entry-id-only coverage for Get File Information, Set File Information
|
||||
FinderInfo, and Set File Information Hidden. The verified run used AFP Entry ID
|
||||
`0x05aaace0` for `SYS:PUBLIC/pmdflts.ini`; the server log shows the resolver
|
||||
feeding `SYS:PUBLIC/PMDFLTS.INI` into Get/Set File Information before applying
|
||||
the normal FinderInfo and NetWare attribute paths.
|
||||
|
||||
### AFP Set File Information WebSDK layout convergence
|
||||
|
||||
AFP Set File Information now requires the fixed WebSDK/NWAFP packet layouts for
|
||||
|
||||
@@ -1174,3 +1174,39 @@ timestamp fields continue to use the existing NetWare metadata paths. AFP
|
||||
remains behind the existing build configuration; this smoke only records that
|
||||
the implemented AFP endpoints no longer need a Netatalk/libatalk metadata
|
||||
backend when xattr support is enabled.
|
||||
|
||||
## AFP metadata entry-id resolver smoke success
|
||||
|
||||
AFP metadata endpoints now share the same file Entry ID resolver that was first
|
||||
used by AFP Open File Fork. Regular file Entry IDs are reverse-resolved through
|
||||
the mars_nwe AFP entry-id xattr metadata and then routed back into the normal
|
||||
NetWare path-based helpers. They are not interpreted as DOS namespace directory
|
||||
numbers.
|
||||
|
||||
Verified smoke run:
|
||||
|
||||
```text
|
||||
AFP Get File Information by Entry ID
|
||||
AFP File Info subfunction=0x05 path=SYS:PUBLIC/pmdflts.ini entry_id=0x05aaace0 parent_id=0x00000000 attrs=0x2000 data_len=8161 resource_len=0 offspring=0 long_name=PMDFLTS.INI short_name=PMDFLTS.INI rights=0x9f00 reply_len=114 entry-id-only
|
||||
|
||||
AFP Set File Information FinderInfo by Entry ID
|
||||
AFP Set File Info subfunction=0x10 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbf access=0x5cbf modify=0x5cbf35da backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x05aaace0 verified entry-id-only
|
||||
|
||||
AFP Set File Information Hidden by Entry ID
|
||||
AFP Set File Info subfunction=0x10 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x0100 attrs=0x2200 create=0x5cbf access=0x5cbf modify=0x5cbf35da backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x05aaace0 verified entry-id-only
|
||||
|
||||
Summary: failures=0
|
||||
```
|
||||
|
||||
The server log for the same run shows the shared resolver feeding normal
|
||||
metadata operations with a resolved AFP/NetWare path:
|
||||
|
||||
```text
|
||||
AFP Get File Information: vol=0 entry=0x05aaace0 mask=0xffff path='SYS:PUBLIC/PMDFLTS.INI' reply_entry=0x05aaace0
|
||||
AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x4000 path='SYS:PUBLIC/PMDFLTS.INI' layout=websdk finder_info attrs=0x0000 atime=-1 mtime=-1
|
||||
AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x0100 path='SYS:PUBLIC/PMDFLTS.INI' layout=websdk attributes attrs=0x8200 atime=-1 mtime=-1
|
||||
```
|
||||
|
||||
Directory Entry IDs continue to use the existing namespace/basehandle path.
|
||||
Regular file Entry IDs continue to be AFP metadata IDs stored in
|
||||
`user.org.mars-nwe.afp.entry-id`.
|
||||
|
||||
Reference in New Issue
Block a user