Commit Graph

350 Commits

Author SHA1 Message Date
Mario Fetka
6fd542e7ef tests: add AFP metadata entry-id smoke coverage
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-31 06:44:56 +02:00
Mario Fetka
77a40f9ed2 nwconn: share AFP entry-id resolver with metadata paths 2026-05-31 06:44:56 +02:00
Mario Fetka
711dceb42a tests: record standalone AFP xattr backend smoke success 2026-05-31 06:36:34 +02:00
OpenAI
aa041a405b docs: clarify standalone AFP xattr metadata backend
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-31 06:27:03 +02:00
Mario Fetka
fa96ebb264 nwatalk: use standalone mars_nwe AFP xattr backend 2026-05-31 06:15:03 +02:00
a
8e95b56ca6 tests: record AFP open file fork entry-id smoke success
All checks were successful
Source release / source-package (push) Successful in 51s
2026-05-30 23:46:55 +02:00
Mario Fetka
362a5779cb tests: use WebSDK entry-id path layout for AFP open fork smoke
All checks were successful
Source release / source-package (push) Successful in 51s
2026-05-30 23:41:34 +02:00
a
b3a5468441 tests: add AFP open file fork entry-id smoke
All checks were successful
Source release / source-package (push) Successful in 52s
2026-05-30 23:29:25 +02:00
a
1cec6a64aa nwconn: resolve AFP open fork entry ids through nwatalk metadata 2026-05-30 23:29:25 +02:00
Mario Fetka
2b614af27b tests: record AFP open file fork write smoke success 2026-05-30 23:22:40 +02:00
Mario Fetka
9c1787345d tests: add AFP open file fork write smoke
All checks were successful
Source release / source-package (push) Successful in 52s
2026-05-30 23:13:51 +02:00
Mario Fetka
330d20a0e1 nwconn: route AFP open fork writes through NetWare opens 2026-05-30 23:13:51 +02:00
a
033ed7cefc tests: record WebSDK AFP get scan info smoke success 2026-05-30 23:06:25 +02:00
Mario Fetka
5a8a7f3488 tests: verify WebSDK AFP get and scan info layouts
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-30 22:58:06 +02:00
Mario Fetka
f0864c1150 nwconn: align AFP get and scan info layouts with WebSDK 2026-05-30 22:58:06 +02:00
Mario Fetka
b1a5f9a0b3 tests: record WebSDK AFP set file information smoke success 2026-05-30 22:48:37 +02:00
a
e08ce594b5 nwconn: require WebSDK AFP set file information layout
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 22:40:58 +02:00
Mario Fetka
dce62be6d5 tests: add WebSDK AFP set file information smoke 2026-05-30 22:35:35 +02:00
Mario Fetka
211d04ea62 nwconn: accept WebSDK AFP set file information layout 2026-05-30 22:35:35 +02:00
a
5309422eb7 tests: record AFP rename smoke success 2026-05-30 22:27:54 +02:00
a
bcacd6142d nwconn: search files only for AFP file rename
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 22:20:33 +02:00
a
8360edfff7 tests: add AFP rename smoke
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 22:11:00 +02:00
a
02e247b133 nwconn: implement AFP rename through NetWare move paths 2026-05-30 22:10:02 +02:00
Test
cd4ca7c4d9 tests: record AFP delete smoke success 2026-05-30 22:02:44 +02:00
Test
3368c8561c tests: add AFP delete smoke cleanup
All checks were successful
Source release / source-package (push) Successful in 49s
2026-05-30 21:55:45 +02:00
Test
4183a63689 nwconn: implement AFP delete through NetWare remove paths 2026-05-30 21:55:14 +02:00
Mario Fetka
3b3a378a22 tests: record AFP create file smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 21:48:39 +02:00
Mario Fetka
434de903bd tests: add AFP create file smoke
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 21:41:08 +02:00
Mario Fetka
37039a773f nwconn: implement AFP create file through NetWare file creation
All checks were successful
Source release / source-package (push) Successful in 49s
2026-05-30 21:36:03 +02:00
Mario Fetka
0a60e0ce7a tests: record AFP create directory smoke success
All checks were successful
Source release / source-package (push) Successful in 50s
2026-05-30 21:30:35 +02:00
Mario Fetka
643acaf737 tests: use unique AFP create directory smoke names
All checks were successful
Source release / source-package (push) Successful in 50s
2026-05-30 21:17:43 +02:00
Mario Fetka
2655f6e961 tests: limit AFP smoke log excerpt to recent lines
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-30 21:07:41 +02:00
Mario Fetka
9032848c9a nwconn: keep AFP file entry IDs on nwatalk fallback
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-30 21:00:20 +02:00
Mario Fetka
0a171048e8 tests: add AFP create directory smoke
All checks were successful
Source release / source-package (push) Successful in 46s
2026-05-30 20:52:43 +02:00
Mario Fetka
d1a7780532 nwconn: implement AFP create directory through NetWare directory creation
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 20:46:29 +02:00
Mario Fetka
f9c7a795df nwconn: align AFP endpoint names with WebSDK
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 20:39:14 +02:00
Mario Fetka
ee2271c099 tests: record AFP namespace entry id smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 20:22:44 +02:00
Mario Fetka
faa44d060b nwconn: derive AFP entry ids from NetWare handles
All checks were successful
Source release / source-package (push) Successful in 45s
2026-05-30 20:15:06 +02:00
OpenAI
a4dd5c3678 tests: record AFP trustee access privileges smoke success
All checks were successful
Source release / source-package (push) Successful in 46s
2026-05-30 19:57:42 +02:00
OpenAI
a18de6abd2 nwconn: derive AFP access privileges from trustees
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-30 19:50:25 +02:00
Mario Fetka
fc7f099494 tests: record AFP create and access timestamp smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 19:42:32 +02:00
Mario Fetka
34504f1381 Fix Compile
All checks were successful
Source release / source-package (push) Successful in 46s
2026-05-30 19:33:57 +02:00
Mario Fetka
31a9234c8b nwconn: route AFP access timestamps through atime
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 19:27:38 +02:00
OpenAI
b442500ef9 nwconn: route AFP create timestamps through nwarchive fileinfo
All checks were successful
Source release / source-package (push) Successful in 50s
2026-05-30 19:18:35 +02:00
OpenAI
8bfedbacf1 tests: record AFP backup timestamp smoke success
All checks were successful
Source release / source-package (push) Successful in 52s
Record the successful Linux AFP smoke-suite run for the WebSDK Backup Date/Time Set File Information field. The smoke output confirms bitmap 0x2000, the AFP backup timestamp value derived from epoch 1700000000, and the corresponding mars_nwe archive metadata xattr.

This documents the intended split between the Archive file attribute, which is mapped through the existing NetWare attribute path, and the Backup Date/Time field, which is routed through nwarchive.c and stored in org.mars-nwe.netware.archive.

Tested-by: ./afp_smoke_suite.sh ... --backup-time-only --backup-time-epoch 1700000000 (reported failures=0)
2026-05-30 18:35:38 +02:00
OpenAI
bbc37565c8 nwconn: route AFP backup timestamps through nwarchive
All checks were successful
Source release / source-package (push) Successful in 48s
Implement the WebSDK AFP Set File Information Backup Date/Time request bitmap as a narrow metadata write that reuses mars_nwe's existing archive metadata helper instead of adding a new AFP-specific storage path.

The AFP Attributes word already maps Archive through the NetWare FILE_ATTR_A path; Backup Date/Time is a separate SetInfo field and belongs in the existing nwarchive.c archive date/time metadata.  Include nwarchive.h in nwconn, fill the AFP information record's Backup Date/Time fields from mars_nwe_get_archive_info(), and accept the SetInfo 0x2000 bitmap by calling mars_nwe_set_archive_info() after the normal AFP path resolution and Modify-rights gate.

Extend the Linux Set File Information smoke helper with --backup-time-epoch/--backup-time-only, verify the returned 120-byte file information record at offsets 28/30, and have afp_smoke_suite.sh dump user.org.mars-nwe.netware.archive so reports prove that the WebSDK field is stored through the NetWare archive metadata path.

Tests: git diff --check; bash -n tests/linux/afp_smoke_suite.sh; gcc -Iinclude -I/mnt/data/stubs -fsyntax-only tests/linux/afp_set_file_info_smoke.c
2026-05-30 18:21:54 +02:00
OpenAI
3f3a3ce832 tests: record AFP WebSDK attribute bit smoke success
The AFP Set/Get File Information attribute path now follows the WebSDK attribute word instead of the earlier low-bit smoke placeholders.  Hidden, System, and Archive are mapped through the existing NetWare attribute store as FILE_ATTR_H, FILE_ATTR_S, and FILE_ATTR_A, while FinderInfo and Entry-ID remain AFP-specific metadata.

Record the runtime smoke result that verified the corrected bit layout.  The suite reports failures=0, exercises Hidden, System, and Archive set/clear with the documented 0x0200, 0x0400, and 0x2000 attribute bits, and confirms the SetInfo request bitmaps 0x0100 Attributes, 0x1000 Modify Date/Time, and 0x4000 FinderInfo.

Also document that user.org.mars-nwe.afp.attributes may legitimately be absent after this mapping: the tested attribute bits are no longer stored as AFP-only xattrs, so ENODATA in the optional xattr dump is expected when no AFP-only bits remain set.

Test status: based on the provided mars-afp-smoke report from 2026-05-30 18:04:21, which completed with failures=0 and preserved the expected FinderInfo, Entry-ID, Modify timestamp, DOS-name, Open Fork, SetInfo, and rights-negative coverage.
2026-05-30 18:11:10 +02:00
OpenAI
336b2ce73e tests: allow absent AFP-only attribute xattr in suite
All checks were successful
Source release / source-package (push) Successful in 44s
After aligning AFP Set File Information with the WebSDK attribute word,
Hidden, System, and Archive are represented by the existing NetWare
attribute store instead of org.mars-nwe.afp.attributes.  The default smoke
path can therefore legitimately have no AFP-only attribute xattr once those
bits are cleared or mapped away.

Update afp_smoke_suite.sh to treat the AFP-only attributes xattr dump as
optional while still reporting the getfattr output.  FinderInfo and Entry
ID xattrs remain mandatory because they are still AFP-specific metadata
stores.

Tests: bash -n tests/linux/afp_smoke_suite.sh
2026-05-30 18:04:00 +02:00
OpenAI
55fdf64c8e nwconn: align AFP attribute bits with WebSDK
All checks were successful
Source release / source-package (push) Successful in 46s
The WebSDK/NCP AFP File Information records use a distinct SetInfo request bitmap and attribute word.  The previous smoke-oriented implementation reused the low response-bit positions for Set Attributes, Modify Date/Time, FinderInfo, Hidden/Invisible, System, and Archive.  That made the current tests pass, but it was not faithful to the documented header semantics and risked keeping AFP metadata parallel to existing NetWare attributes.

Switch Set File Information to the documented request bitmap values: 0x0100 for Attributes, 0x1000 for Modify Date/Time, and 0x4000 for FinderInfo.  Switch the AFP attribute word to the documented NetWare-style bits: Hidden 0x0200, System 0x0400, Subdirectory 0x1000, and Archive 0x2000.

Map Hidden, System, and Archive through the existing NetWare attribute store via FILE_ATTR_H, FILE_ATTR_S, and FILE_ATTR_A.  This keeps AFP Set/Get/Scan aligned with mars_nwe's existing attribute helper instead of maintaining duplicate AFP-only xattr state.  FinderInfo remains AFP metadata and still uses the Modify-rights gate added earlier.

Update the Linux smoke helper and suite to use --hidden / --clear-hidden while keeping --invisible / --clear-invisible as compatibility aliases.  Document the corrected WebSDK bit values and the convergence rule that NetWare attributes must use mars_nwe NetWare helpers.

Tests: git diff --check; bash -n tests/linux/afp_smoke_suite.sh; gcc -Iinclude -I/mnt/data/stubs -fsyntax-only tests/linux/afp_set_file_info_smoke.c
2026-05-30 17:48:51 +02:00
OpenAI
fb4934fddc tests: record AFP metadata rights negative smoke success
All checks were successful
Source release / source-package (push) Successful in 45s
Document the verified Linux smoke-suite result for the AFP Set File Information metadata rights gate.

The suite now uses the existing ncpfs trustee utilities to grant NOPASSUSER only read/file-scan rights on the smoke file, then verifies that FinderInfo, Invisible, and System metadata writes are rejected with completion 0x8c while the SUPERVISOR positive path remains green.

This records the intended WebSDK/NWAFP adapter semantics: AFP-specific xattrs remain the storage for FinderInfo and AFP-only metadata bits, but writes to those xattrs are still file metadata changes and must pass mars_nwe's NetWare Modify trustee policy instead of bypassing it.

Tests:

- afp_smoke_suite.sh --readonly-user NOPASSUSER --readonly-no-password --prepare-readonly-rights

- FinderInfo negative Set File Information -> 0x8c

- Invisible negative Set File Information -> 0x8c

- System negative Set File Information -> 0x8c

- final nwrevoke cleanup succeeds

- suite summary failures=0
2026-05-30 17:25:03 +02:00