macOS Time Machine AFP monitoring: backup_time update on file modification

- Added afp_monitor.rs module to track AFP_AfpInfo backup_time
- Open struct now has 'modified' flag to track file modifications
- write.rs sets modified=true on successful write
- close.rs calls AfpMonitor::update_backup_time() on modified files
- create.rs calls AfpMonitor::init_afp_info() on new file creation
- AFP_AfpInfo stored as xattr com.apple.aapl.AfpInfo
- backup_time updated to current epoch time on modification

Also includes:
- LZ4 compression using lz4_flex crate
- Case sensitivity conditional on backend capabilities
- LDAP cfg feature gate fix
- RAID rebuild reconstruction implementation
- DOS attributes xattr persistence
- Snapshot disk persistence

Tests: 201 smb-server, 452 markbase-core (653 total)
This commit is contained in:
Warren
2026-06-24 00:46:33 +08:00
parent 5300b672cb
commit 57fd6a475f
33 changed files with 1211 additions and 253 deletions

29
Cargo.lock generated
View File

@@ -720,6 +720,18 @@ dependencies = [
"shlex",
]
[[package]]
name = "ccm"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ae3c82e4355234767756212c570e29833699ab63e6ffd161887314cc5b43847"
dependencies = [
"aead 0.5.2",
"cipher 0.4.4",
"ctr 0.9.2",
"subtle",
]
[[package]]
name = "ccm"
version = "0.6.0-rc.3"
@@ -2961,6 +2973,15 @@ dependencies = [
"libc",
]
[[package]]
name = "lz4_flex"
version = "0.11.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "373f5eceeeab7925e0c1098212f2fbc4d416adec9d35051a6ab251e824c1854a"
dependencies = [
"twox-hash",
]
[[package]]
name = "lz4_flex"
version = "0.13.1"
@@ -3025,6 +3046,7 @@ dependencies = [
"lazy_static",
"ldap3",
"log",
"lz4_flex 0.11.6",
"md5 0.8.0",
"nix 0.29.0",
"once_cell",
@@ -5467,12 +5489,13 @@ name = "smb-server"
version = "0.4.1"
dependencies = [
"aes 0.8.4",
"aes-gcm 0.10.3",
"async-trait",
"binrw",
"bytes",
"cap-std",
"ccm 0.5.0",
"cmac 0.7.2",
"ctr 0.9.2",
"getrandom 0.4.2",
"hex",
"hmac 0.12.1",
@@ -5496,7 +5519,7 @@ dependencies = [
"aes 0.9.1",
"aes-gcm 0.11.0-rc.4",
"async-trait",
"ccm",
"ccm 0.6.0-rc.3",
"cmac 0.8.0-rc.5",
"digest 0.11.3",
"env_logger",
@@ -5504,7 +5527,7 @@ dependencies = [
"getrandom 0.4.2",
"hmac 0.13.0",
"log",
"lz4_flex",
"lz4_flex 0.13.1",
"md-5 0.11.0",
"md4 0.11.0",
"num_enum",