fix(carrier): C-03 — decouple manifest re-encryption with dirty tracking and unmount flush

This commit is contained in:
2026-09-19 23:13:34 +02:00
parent 8455dc02db
commit c606fa8132
5 changed files with 298 additions and 21 deletions
+4
View File
@@ -225,6 +225,7 @@ pub async fn mount_container(
);
let fs_leak_counter = fs.leak_counter();
let last_activity = fs.last_activity();
let fs_clone = fs.clone();
let dav_server = DavHandler::builder()
.filesystem(Box::new(fs))
.locksystem(FakeLs::new())
@@ -282,6 +283,7 @@ pub async fn mount_container(
// Netzlaufwerk bzw. Verzeichnis einbinden
if let Err(e) = run_mount_command(drive_letter, bound_port, &session_token) {
let _ = fs_clone.sync_carrier_manifest();
let _ = shutdown_tx.send(true);
let _ = server_handle.await;
return Err(e);
@@ -541,6 +543,7 @@ pub async fn mount_container(
}
if stealth {
let _ = fs_clone.sync_carrier_manifest();
let _ = unmount_drive(drive_letter);
let _ = shutdown_tx.send(true);
let _ = server_handle.await;
@@ -555,6 +558,7 @@ pub async fn mount_container(
#[cfg(not(windows))]
println!("Sanctum: Container geschlossen und WebDAV-Server beendet.");
} else {
let _ = fs_clone.sync_carrier_manifest();
#[cfg(windows)]
{
print!(