diff --git a/TODO.md b/TODO.md index 5ac92f6..c3794ae 100644 --- a/TODO.md +++ b/TODO.md @@ -525,5 +525,28 @@ run confirmed the backing mars_nwe metadata xattr: intended split: Archive as a file attribute stays on the NetWare attribute path, while Backup Date/Time is stored by `nwarchive.c`. -- AFP Create Date/Time now uses `mars_nwe_set_file_info()` / `mars_nwe_get_file_info()` and the existing `user.org.mars-nwe.netware.fileinfo` xattr. -- AFP Access Date/Time now uses the existing `st_atime`/`utime()` path and preserves `st_mtime`; no AFP-specific xattr is added. +### AFP Create and Access Date/Time convergence + +AFP Set File Information now accepts the WebSDK `0x0800` Create Date/Time +request bitmap and routes the payload through the existing +`mars_nwe_set_file_info()` helper in `nwarchive.c`. AFP Get/Scan File +Information read the same `mars_nwe_get_file_info()` metadata and fall back to +the historical Unix timestamp source when no NetWare file-info metadata is +stored. The backing xattr is `user.org.mars-nwe.netware.fileinfo`; no +AFP-specific xattr is introduced for this NetWare-semantic field. + +AFP Set File Information also accepts the WebSDK `0x0400` Access Date/Time +request bitmap. Access timestamps are routed through the existing POSIX +`st_atime`/`utime()` path, preserving `st_mtime` and enforcing trustee Modify +rights before updating the file. This keeps Access Date/Time out of +`nwarchive.c` and out of AFP-only xattrs, matching the existing mars_nwe +NetWare file-info model. + +Runtime status: the combined AFP timestamp smoke run is verified with +`failures=0`. The suite confirmed `AFP Set File Information Access Timestamp` +using bitmap `0x0400` and `AFP Set File Information Create Timestamp` using +bitmap `0x0800`, both for epoch `1700000000` with the returned AFP date +`0x576e`. The same run confirmed the Create Date/Time backing metadata xattr +`user.org.mars-nwe.netware.fileinfo=0x01036e57aab90000000000000000`, while +Access Date/Time remained on the normal file `atime` path and did not create an +AFP metadata xattr. diff --git a/tests/linux/README.md b/tests/linux/README.md index 835d4e5..519cf86 100644 --- a/tests/linux/README.md +++ b/tests/linux/README.md @@ -858,6 +858,10 @@ changing the timestamp. The AFP file-information record exposes the Access Date at offset 22; no AFP-specific xattr is added for this NetWare-semantic timestamp. +Runtime status: the Access Date/Time smoke run is verified with `failures=0`. +The report showed `bitmap=0x0400`, `access=0x576e`, and no AFP-only xattr for +this timestamp after setting epoch `1700000000`. + ### AFP Create Date/Time smoke `afp_set_file_info_smoke` supports the WebSDK Create Date/Time request bitmap @@ -876,3 +880,8 @@ AFP file-information record exposes the Create Date at offset 20; the matching Create Time is still persisted in the shared NetWare file-info metadata so classic NetWare file-info paths can return it. No AFP-specific xattr is added for this NetWare-semantic timestamp. + +Runtime status: the Create Date/Time smoke run is verified with `failures=0`. +The report showed `bitmap=0x0800`, `create=0x576e`, and the backing xattr +`user.org.mars-nwe.netware.fileinfo=0x01036e57aab90000000000000000` after +setting epoch `1700000000`.