Warren
e7863a3034
Fix macOS SMB mount: AAPL caps, credit grant, file_index, QueryDirectory padding
...
- AAPL: Restore UNIX_BASED+NFS_ACE server_caps, RESOLVE_ID+FULL_SYNC volume_caps (Samba baseline)
- Credit: Grant min 1 credit in dispatch response for smbclient compatibility
- file_index: Assign 1-based index per entry in list_dir (both VFS and local backends)
- smb_match(): Add wildcard pattern filter (*/?) for macOS single-entry QueryDirectory probes
- FILE_ID_BOTH_DIR_INFORMATION: Add 2-byte Reserved2 padding between ShortName and FileId
- macOS Sequoia 15.5 mount_smbfs now succeeds (tested: ls, cat, read)
2026-06-23 09:44:01 +08:00
Warren
8ef1406ed3
SMB fixes: IPC$ ShareMode=Public, capabilities=0, FILE_ID_BOTH_DIRECTORY_INFORMATION Reserved2 removed, NextEntryOffset=0 for last entry, debug logging
2026-06-23 03:22:39 +08:00
Warren
bb796ec6b9
Fix smb-server xattr: add root_path field for absolute path storage
2026-06-22 16:25:33 +08:00
Warren
9dd2eefeea
Fix smb-server xattr: dereference Arc<Dir> before as_std_path()
2026-06-22 15:41:03 +08:00
Warren
0c4459ae66
Fix smb-server xattr: use PathBuf for absolute paths
2026-06-22 15:39:37 +08:00
Warren
5b0086f6f0
Implement Time Machine xattr support (Phase 4.1 complete)
2026-06-22 15:30:44 +08:00
Warren
3029327d5e
Implement SMB AFP_Resource Stream via AppleDouble files (Phase 3 complete)
2026-06-22 15:27:28 +08:00
Warren
1c8c47d5fa
Implement SMB AFP_AfpInfo read/write via xattr (Phase 2.8 complete)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 15:16:59 +08:00
Warren
25991c71b2
Update Cargo.lock for new dependencies (xattr, smb-server AAPL modules)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 14:22:16 +08:00
Warren
866d0536c8
Add SMB AAPL Extensions Phase 1-6 + VFS xattr support
...
Phase 1: AAPL Create Context negotiation
Phase 2: AFP_AfpInfo Stream structure (Finder info + creation time)
Phase 2.5: SMB Named Stream Backend (NamedStreamPath)
Phase 2.6: Backend Named Stream Support in handlers
Phase 2.7: VFS Extended Attributes (get/set/remove/list_xattr)
Phase 4: Time Machine share config (time_machine field)
Phase 5: Server/Volume Capabilities
Phase 6: macOS Unicode mapping (private range ↔ ASCII)
Tests: 174 smb-server tests pass, 52 VFS tests pass
2026-06-22 14:21:53 +08:00
Warren
64709ec529
Add CTDB Phase 1-5: TDB storage + Node management + Control protocol + IP manager + Recovery
2026-06-22 14:21:39 +08:00
Warren
a8d81f2a9c
Revert "Remove Download Center routes from server.rs (dead code cleanup)"
...
This reverts commit 20b208bb7f .
2026-06-22 14:12:14 +08:00
Warren
20b208bb7f
Remove Download Center routes from server.rs (dead code cleanup)
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
Removed routes:
- /api/v2/products/* (CRUD + file assignment)
- /api/v2/download/* (file download + stats)
- /api/v2/files/:user_id (list + info via download module)
- /upload, /files, /products (HTML pages)
Kept: /api/v2/upload-unlimited, /downloads, category/series APIs
2026-06-22 11:00:41 +08:00
Warren
60e4329eed
Add VirtualFs tag-mode WebDAV + MyFiles UI + Admin WebDAV endpoint
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- VirtualFs: SQLite-backed virtual folders (tag mode), 16 unit tests
- MyFiles module: API endpoints + Web UI for folder/tag management
- Admin WebDAV: /admin-webdav/*path with Basic Auth + URI prefix rewrite
- CLI: webdav-folder/tag/untag/list/start --virtual-mode commands
- Deployed and tested on M5Max48: PROPFIND, PUT, GET, DELETE all working
2026-06-22 10:38:25 +08:00
Warren
37d0fe1a3c
Fix duplicate derive(Clone)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:28:33 +08:00
Warren
4003864d28
Fix WebDAV: add Clone to WebdavCredentials
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:26:54 +08:00
Warren
8039f0d375
Fix WebDAV auth: use map_or for password check
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:25:53 +08:00
Warren
3d395584a8
Fix WebDAV: middleware use extensions().get() to not consume
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:23:57 +08:00
Warren
cf57d46ca5
Fix WebDAV: handle_dav extract WebdavCredentials Extension
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:22:01 +08:00
Warren
8a5a23a309
Fix WebDAV Extension layer order
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:20:34 +08:00
Warren
a7f50ff747
Update WebDAV: root path + 0.0.0.0 bind
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 07:17:45 +08:00
Warren
41f0217450
Update Caddyfile: studio.momentry.ddns.net/demo WebDAV config
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 06:51:51 +08:00
Warren
e7a9f886ed
Fix web server bind to 0.0.0.0 for external access
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 06:20:17 +08:00
Warren
cd184daa20
Update AGENTS.md: CTDB architecture analysis summary
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 05:37:12 +08:00
Warren
060f43f0c4
Add CTDB architecture analysis document
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 05:36:23 +08:00
Warren
63b765f68e
Update AGENTS.md: Phase 5 complete summary
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 05:31:26 +08:00
Warren
e9eca1b492
Add DFS Referral Support (Phase 5)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 05:30:16 +08:00
Warren
4db72fff4a
Update AGENTS.md: Phase 6 complete summary
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 05:22:54 +08:00
Warren
52c38b1919
Add SMB Configuration Templates (Phase 6)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 05:22:14 +08:00
Warren
054bf55490
Update AGENTS.md: Phase 1-4 complete summary
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 05:15:41 +08:00
Warren
e267b43424
Add Compound Request tests (Phase 4)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 05:13:02 +08:00
Warren
c89f6c96ae
Update AGENTS.md: Phase 1-3 complete summary
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 04:43:49 +08:00
Warren
ebe976eee4
Implement Write/Read Cache (Phase 3)
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 04:42:55 +08:00
Warren
9ae0402318
Document NTLMv2+LDAP incompatibility and skip Phase 2.3
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 04:34:15 +08:00
Warren
3c5de4e6a3
Update AGENTS.md: LDAP Provider Phase 2.1-2.2 complete
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 04:13:59 +08:00
Warren
88590d3611
Add LDAP CLI parameters to SMB server (Phase 2.2)
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 04:13:10 +08:00
Warren
912bc21929
Implement LDAP Provider Phase 2.1: DataProvider trait with OpenLDAP/AD support
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 03:34:17 +08:00
Warren
4ab282bbff
Update AGENTS.md: SMB3 encryption Phase 1 complete (v1.51)
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
2026-06-22 03:19:23 +08:00
Warren
382ea2e28b
Phase 1.3: SMB3 packet encryption handling complete
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- Add handle_encrypted_frame() to dispatch.rs
- Detect TRANSFORM_HEADER magic (0x534D4220)
- Decrypt incoming packets using session.encryption_key
- Encrypt outgoing responses
- All encryption tests pass (3 passed)
Phase 1 SMB3 encryption complete: ~380 lines total
2026-06-22 03:18:22 +08:00
Warren
98239c09d4
Phase 1.2: SMB3 encryption negotiation + session state
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- Add encryption_supported and encryption_cipher to Connection state
- Add encryption_key and encryption_enabled to Session state
- Add EncryptionCapabilities context to NegotiateResponse (SMB 3.1.1)
- Derive encryption_key from session_base_key in session_setup
- Export derive_encryption_key as public method
- Fix Session::new() signature with 8 parameters
- All encryption tests pass (3 passed)
2026-06-22 02:56:02 +08:00
Warren
104e7f5f9c
Phase 1.1: SMB3 encryption module (AES-CTR + HMAC)
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- Add encryption.rs with Smb3Encryption struct
- Implement AES-128-CTR + HMAC-SHA256 (simplified approach)
- Add TransformHeader struct for SMB2 TRANSFORM_HEADER
- 3 unit tests pass (encrypt/decrypt roundtrip + signature verification)
- Total: ~180 lines of code
2026-06-22 02:20:59 +08:00
Warren
097521b35d
P2: Fix S3 multipart route - use query param for action
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- Change route from /s3/multipart/:bucket/*key/init to /s3/multipart/:bucket/*key?action=init
- Add multipart_handler to unify all multipart operations
- Use Response type instead of impl IntoResponse for type compatibility
2026-06-22 01:22:16 +08:00
Warren
aae8669c9f
P1: Update AGENTS.md with S3 improvements (P0-P3) + benchmark scripts
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
2026-06-22 01:15:49 +08:00
Warren
08244032a8
P0: Add S3 benchmark script
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- PUT/GET 1-100MB files
- LIST bucket, HEAD object
- DELETE cleanup
- Multipart upload simulation (5x10MB)
Tests throughput for all S3 operations
2026-06-22 00:06:35 +08:00
Warren
7d229d0b62
P0: Add performance benchmark scripts
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- webdav_benchmark.sh: PROPFIND, upload/download 1-100MB
- ssh_benchmark.sh: SCP, rsync upload/download, delta transfer
- Tests throughput for all file sizes
Ready for performance testing
2026-06-21 23:55:25 +08:00
Warren
321310582b
E: Security improvements - auth + policy enforcement
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- Add Signature V4 auth to multipart endpoints (init/upload/complete/abort)
- Add policy checks to main S3 handlers (get/put/delete)
- extract_user_from_auth() helper for policy evaluation
- check_bucket_policy() integrated into all handlers
- Policy denied returns 403 FORBIDDEN
Tests: 299 passed, 0 failed
2026-06-21 23:43:24 +08:00
Warren
9b02bbac27
A: Code quality improvements - fix clippy warnings
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- Remove unused imports in server.rs (Body, HeaderValue, RwLock)
- Remove unused imports in forward_acl.rs (tests still need Ipv4Addr)
- Remove unused imports in host_key.rs (Read, Write)
- Remove unused imports in kex_exchange.rs (HostKeyType)
- Remove unused imports in known_hosts.rs (tests need Ipv4Addr)
- Remove unused imports in multiplex.rs (Arc)
- Auto-fix other unused imports via clippy --fix
Tests: 303 passed, 0 failed (4 new tests added)
2026-06-21 23:08:07 +08:00
Warren
02d98419e1
P3: Bucket Policy implementation complete
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- BucketPolicy struct with Version + Statement array
- PolicyStatement: Effect, Principal, Action, Resource, Condition
- Principal matching (wildcard + user-specific)
- Action/Resource pattern matching with wildcards
- GetBucketPolicy: GET /s3/policy/:bucket
- PutBucketPolicy: PUT /s3/policy/:bucket
- DeleteBucketPolicy: DELETE /s3/policy/:bucket
- Policy persistence to data/s3_policies/:bucket/policy.json
- check_bucket_policy() for authorization
- 6 unit tests
Tests: 299 passed, 0 failed
2026-06-21 22:50:53 +08:00
Warren
ca0f541a79
P2: S3 Multipart Upload support complete
...
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- InitiateMultipartUpload: POST /s3/multipart/:bucket/:key/init
- UploadPart: PUT /s3/multipart/:bucket/:key/part
- CompleteMultipartUpload: POST /s3/multipart/:bucket/:key/complete
- AbortMultipartUpload: DELETE /s3/multipart/:bucket/:key/abort
- In-memory upload tracking with once_cell::Lazy
- Part files stored in temp dir during upload
- Final file assembled on CompleteMultipartUpload
- XML responses for all operations
Tests: 293 passed, 0 failed
2026-06-21 22:44:17 +08:00
Warren
5487ad63a6
P1: AsyncS3Vfs native async implementation using reqwest
...
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
- Replace spawn_blocking + ureq with native async reqwest
- AsyncS3Vfs uses reqwest::Client for HTTP operations
- rusty-s3 for presigned URL generation + XML parsing
- AsyncS3File with async read/write/seek/flush
- reqwest dependency added under async-vfs feature
Tests: 297 passed (293 + 4 new s3_auth tests)
2026-06-21 22:22:05 +08:00