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)
This commit is contained in:
Warren
2026-06-23 09:44:01 +08:00
parent 8ef1406ed3
commit e7863a3034
6 changed files with 94 additions and 15 deletions

View File

@@ -581,6 +581,8 @@ async fn build_response_bytes(
hdr.session_id = sid;
}
hdr.signature = [0u8; 16];
// Grant at least 1 credit so clients (e.g. Samba smbclient) can proceed.
hdr.credit_request_response = hdr.credit_request_response.max(1);
let request_was_signed = req_hdr.flags & SMB2_FLAGS_SIGNED != 0;
// MS-SMB2 §3.3.5.5.3 step 12: SessionSetup SUCCESS must be signed for