Warren
|
614275f77a
|
Add SMB Client Restrictions (Phase 1-3): access control for SMB clients
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
Features:
- IpSpec: IP address specification (Single/Cidr/Range/Any)
- TimeSpec: Time-based restrictions (HourRange/DayOfWeek/DayHour)
- ClientRule: Allow/Deny rules with IP/user/time/share
- ClientAcl: Priority-based rule matching
- ClientRestrictionManager: Global/Share/User ACLs
Security:
- Restrict SMB client access by IP address
- Time-based access control (business hours only)
- User-specific and share-specific ACLs
- CIDR notation support (192.168.1.0/24)
Files:
- vendor/smb-server/src/client_restrictions.rs (443 lines)
- vendor/smb-server/src/lib.rs (+1 line)
Tests: 7 passed (smb-server), 317 passed (markbase-core)
|
2026-06-21 12:51:37 +08:00 |
|
Warren
|
a28b7f0929
|
Add SMB Share Snapshots (Phase 1-4): FSCTL_SRV_SNAPSHOT_* handlers
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
Features:
- SnapshotManager: Share snapshot management
- SnapshotEntry/SnapshotState: Snapshot metadata structures
- FSCTL_SRV_SNAPSHOT_CREATE/READ/WRITE/DELETE handlers
- GMT token format support (@GMT-YYYY.MM.DD-HH.MM.SS)
- 7 unit tests for all operations
Files:
- vendor/smb-server/src/snapshot.rs (245 lines)
- vendor/smb-server/src/handlers/ioctl.rs (+88 lines)
- vendor/smb-server/src/proto/messages/ioctl.rs (+8 lines enum)
- vendor/smb-server/src/server.rs (+2 lines)
- vendor/smb-server/src/ntstatus.rs (+1 line)
- vendor/smb-server/src/lib.rs (+1 line)
Tests: 7 passed (smb-server), 309 passed (markbase-core)
|
2026-06-21 12:38:15 +08:00 |
|
Warren
|
5238a84972
|
Implement SMB Durable Handles (Phase 1): Persistent FileId + reconnect + expiration + cleanup
|
2026-06-21 05:11:39 +08:00 |
|
Warren
|
27707bbe0e
|
Implement SMB Oplocks Phase 1-2
Phase 1: Data structures
- Add oplock_level and share_access fields to Open struct
- Update Open::new() signature with new parameters
- Update handlers/create.rs to pass oplock params
Phase 2: OplockManager
- Create oplock.rs with OplockManager struct
- OplockEntry for tracking per-client oplock state
- can_grant() - check ShareAccess compatibility
- register() / unregister() - lifecycle management
- break_oplock() - generate OPLOCK_BREAK_NOTIFICATION
- Add OplockManager to ServerState
- Add Hash trait to SmbPath for HashMap key
All 229 tests pass.
|
2026-06-21 00:17:24 +08:00 |
|
Warren
|
7eb528d35f
|
SMB Server Phase 2: VFS backend build fix + integration test
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
- Add VfsFile: Send supertrait for Mutex compatibility
- Fix SmbServerCommand: struct → Subcommand enum with Start variant
- Fix tracing_subscriber::init() → try_init() to avoid panic when
logger already initialized
- Fix CLI subcommand name: smb-server → smb-start (flatten naming)
- Add #[command(name = "smb-start")] for CLI disambiguation
- Fix unused variable warnings (smb_fs.rs, smb_server_backend.rs)
- Remove unused VfsFile imports (webdav.rs, scp_handler.rs)
- Integration test: Docker smbclient verified (list, upload, read)
|
2026-06-20 19:42:29 +08:00 |
|