diff --git a/TODO.md b/TODO.md index a46ee9d..c6d5860 100644 --- a/TODO.md +++ b/TODO.md @@ -289,7 +289,7 @@ Current status: mars_nwe NetWare metadata helpers; Access Date/Time uses the normal file `atime` path; and Modify Date/Time uses the shared timestamp helper. Linux smoke coverage exists in `tests/afp/afp_set_file_info_smoke`, which now - always reports `layout=websdk` and verifies the result through AFP 2.0 Get + always reports the WebSDK request shape and verifies the result through AFP 2.0 Get File Information. Runtime status: the WebSDK-layout-only smoke run for `SYS:PUBLIC/pmdflts.ini` completed with `failures=0`, including legacy `0x09` and AFP 2.0 `0x10` FinderInfo, Hidden/System/Archive set/clear, @@ -606,7 +606,7 @@ AFP 2.0 requests use the same fixed metadata fields, include ProDOSInfo at 54..59, and carry `path_len` at 60. Runtime status: the WebSDK-layout-only Set File Information smoke run is -verified with `failures=0`. The suite reported `layout=websdk` for both AFP +verified with `failures=0`. The suite covered both AFP 2.0 `0x10` and legacy `0x09` FinderInfo writes, Hidden set/clear, System set/clear, Archive set/clear, and Access/Create/Modify/Backup timestamp probes against `SYS:PUBLIC/pmdflts.ini`. The verified run used AFP Entry ID diff --git a/src/nwconn.c b/src/nwconn.c index 17853c5..83761ec 100644 --- a/src/nwconn.c +++ b/src/nwconn.c @@ -2375,7 +2375,7 @@ static int afp_set_file_information(uint8 *afp_req, int afp_len, return(result); } - XDPRINTF((3,0, "%s: vol=%d request_vol=%d entry=0x%08x mask=0x%04x path='%s' layout=websdk%s%s%s%s%s%s attrs=0x%04x atime=%ld mtime=%ld", + XDPRINTF((3,0, "%s: vol=%d request_vol=%d entry=0x%08x mask=0x%04x path='%s'%s%s%s%s%s%s attrs=0x%04x atime=%ld mtime=%ld", call_name, path_volume, (int)volume_number, request_entry_id, request_mask, visable_data(path_data, path_len), (request_mask & AFP_FILE_BITMAP_ATTRIBUTES) ? " attributes" : "", diff --git a/tests/afp/README.md b/tests/afp/README.md index c049d2a..596c5d1 100644 --- a/tests/afp/README.md +++ b/tests/afp/README.md @@ -840,8 +840,8 @@ subfunction: Verified runtime output from the WebSDK-layout-only smoke run: ```text -AFP Set File Info subfunction=0x10 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbe access=0x5cbe modify=0x5cbeb52a backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x42ede1c8 verified -AFP Set File Info subfunction=0x09 layout=websdk path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbe access=0x5cbe modify=0x5cbeb52a backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x42ede1c8 verified +AFP Set File Info subfunction=0x10 path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbe access=0x5cbe modify=0x5cbeb52a backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x42ede1c8 verified +AFP Set File Info subfunction=0x09 path=SYS:PUBLIC/pmdflts.ini bitmap=0x4000 attrs=0x2000 create=0x5cbe access=0x5cbe modify=0x5cbeb52a backup=0x00000000 finder_type=TEXT finder_creator=MARS entry_id=0x42ede1c8 verified ``` Server diagnostics show the effective resolved volume, the request volume byte, @@ -849,8 +849,8 @@ the WebSDK layout, the FinderInfo bitmap, and follow-up Get File Information verification with the same AFP file Entry ID: ```text -AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x00000000 mask=0x4000 path='SYS:PUBLIC/pmdflts.ini' layout=websdk finder_info attrs=0x0000 atime=-1 mtime=-1 -AFP Set File Information: vol=0 request_vol=0 entry=0x00000000 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=0x00000000 mask=0x4000 path='SYS:PUBLIC/pmdflts.ini' finder_info attrs=0x0000 atime=-1 mtime=-1 +AFP Set File Information: vol=0 request_vol=0 entry=0x00000000 mask=0x4000 path='SYS:PUBLIC/pmdflts.ini' finder_info attrs=0x0000 atime=-1 mtime=-1 AFP 2.0 Get File Information: vol=0 entry=0x00000000 mask=0xffff path='SYS:PUBLIC/pmdflts.ini' reply_entry=0x42ede1c8 ``` @@ -901,7 +901,7 @@ and `--clear-archive` to remove those bits. Runtime status: the latest full AFP smoke suite verified that every Set File -Information probe uses `layout=websdk` and that the compact mars_nwe-only packet +Information probe uses the WebSDK request shape and that the compact mars_nwe-only packet shape is no longer accepted by the helper. The verified run covered AFP 2.0 and legacy FinderInfo, Hidden set/clear, System set/clear, Archive set/clear, Access Date/Time, Create Date/Time, Modify Date/Time, Backup Date/Time, and the @@ -1221,10 +1221,10 @@ 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 Info subfunction=0x10 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 +AFP Set File Info subfunction=0x10 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 ``` @@ -1234,8 +1234,8 @@ 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 +AFP 2.0 Set File Information: vol=0 request_vol=0 entry=0x05aaace0 mask=0x4000 path='SYS:PUBLIC/PMDFLTS.INI' 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' attributes attrs=0x8200 atime=-1 mtime=-1 ``` Directory Entry IDs continue to use the existing namespace/basehandle path. diff --git a/tests/afp/afp_set_file_info_smoke.c b/tests/afp/afp_set_file_info_smoke.c index 9379abc..12195e2 100644 --- a/tests/afp/afp_set_file_info_smoke.c +++ b/tests/afp/afp_set_file_info_smoke.c @@ -573,7 +573,7 @@ int main(int argc, char **argv) return 1; } - printf("AFP Set File Info subfunction=0x%02x layout=websdk path=%s bitmap=0x%04x attrs=0x%04x create=0x%04x access=0x%04x modify=0x%04x%04x backup=0x%04x%04x finder_type=%.4s finder_creator=%.4s entry_id=0x%08x verified%s\n", + printf("AFP Set File Info subfunction=0x%02x path=%s bitmap=0x%04x attrs=0x%04x create=0x%04x access=0x%04x modify=0x%04x%04x backup=0x%04x%04x finder_type=%.4s finder_creator=%.4s entry_id=0x%08x verified%s\n", set_subfunction, path, request_mask, be16_to_cpu(verify_buf + 8), be16_to_cpu(verify_buf + 20), be16_to_cpu(verify_buf + 22), be16_to_cpu(verify_buf + 24), be16_to_cpu(verify_buf + 26),