@@ -577,7 +577,7 @@ impl BackupExt for ResticBackup {
577577 _range : Option < ByteRange > ,
578578 ) -> Result < crate :: response:: ApiResponse , anyhow:: Error > {
579579 let compression_level = config. system . backups . compression_level ;
580- let ( reader, writer) = tokio:: io:: duplex ( crate :: BUFFER_SIZE ) ;
580+ let ( reader, writer) = tokio:: io:: simplex ( crate :: BUFFER_SIZE ) ;
581581
582582 match archive_format {
583583 StreamableArchiveFormat :: Zip => {
@@ -1221,7 +1221,7 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
12211221 compression_level : CompressionLevel ,
12221222 bytes_archived : Option < Arc < AtomicU64 > > ,
12231223 is_ignored : IsIgnoredFn ,
1224- ) -> Result < tokio:: io:: DuplexStream , anyhow:: Error > {
1224+ ) -> Result < tokio:: io:: ReadHalf < tokio :: io :: SimplexStream > , anyhow:: Error > {
12251225 let path = path. as_ref ( ) . to_path_buf ( ) ;
12261226 let entry = self
12271227 . entries
@@ -1237,7 +1237,7 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
12371237
12381238 let full_path = PathBuf :: from ( & self . server_path ) . join ( & entry. path ) ;
12391239
1240- let ( reader, writer) = tokio:: io:: duplex ( crate :: BUFFER_SIZE ) ;
1240+ let ( reader, writer) = tokio:: io:: simplex ( crate :: BUFFER_SIZE ) ;
12411241
12421242 let configuration = self . configuration . clone ( ) ;
12431243 let short_id = self . short_id . clone ( ) ;
@@ -1265,10 +1265,10 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
12651265 let mut child = spawn_restic ( ) ?;
12661266
12671267 let writer = tokio_util:: io:: SyncIoBridge :: new ( writer) ;
1268- let mut archive = zip:: ZipWriter :: new_stream ( writer) ;
1268+ let mut zip = zip:: ZipWriter :: new_stream ( writer) ;
12691269
1270- let mut subtar = tar:: Archive :: new ( child. stdout . take ( ) . unwrap ( ) ) ;
1271- let mut entries = subtar . entries ( ) ?;
1270+ let mut restic_tar = tar:: Archive :: new ( child. stdout . take ( ) . unwrap ( ) ) ;
1271+ let mut entries = restic_tar . entries ( ) ?;
12721272
12731273 let mut read_buffer = vec ! [ 0 ; crate :: BUFFER_SIZE ] ;
12741274 while let Some ( Ok ( mut entry) ) = entries. next ( ) {
@@ -1311,17 +1311,17 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
13111311
13121312 match header. entry_type ( ) {
13131313 tar:: EntryType :: Directory => {
1314- archive . add_directory ( relative. to_string_lossy ( ) , options) ?;
1314+ zip . add_directory ( relative. to_string_lossy ( ) , options) ?;
13151315 }
13161316 tar:: EntryType :: Regular => {
1317- archive . start_file ( relative. to_string_lossy ( ) , options) ?;
1317+ zip . start_file ( relative. to_string_lossy ( ) , options) ?;
13181318
13191319 loop {
13201320 let n = entry. read ( & mut read_buffer) ?;
13211321 if n == 0 {
13221322 break ;
13231323 }
1324- archive . write_all ( & read_buffer[ ..n] ) ?;
1324+ zip . write_all ( & read_buffer[ ..n] ) ?;
13251325 if let Some ( counter) = & bytes_archived {
13261326 counter. fetch_add ( n as u64 , Ordering :: SeqCst ) ;
13271327 }
@@ -1331,8 +1331,9 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
13311331 }
13321332 }
13331333
1334- let mut inner = archive . finish ( ) ?;
1334+ let mut inner = zip . finish ( ) ?. into_inner ( ) ;
13351335 inner. flush ( ) ?;
1336+ inner. shutdown ( ) ?;
13361337
13371338 Ok ( ( ) )
13381339 } ) ;
@@ -1348,10 +1349,10 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
13481349 file_compression_threads,
13491350 ) ?;
13501351
1351- let mut subtar = tar:: Archive :: new ( child. stdout . take ( ) . unwrap ( ) ) ;
1352- let mut entries = subtar . entries ( ) ?;
1352+ let mut restic_tar = tar:: Archive :: new ( child. stdout . take ( ) . unwrap ( ) ) ;
1353+ let mut entries = restic_tar . entries ( ) ?;
13531354
1354- let mut out_tar = tar:: Builder :: new ( writer) ;
1355+ let mut tar = tar:: Builder :: new ( writer) ;
13551356
13561357 while let Some ( Ok ( entry) ) = entries. next ( ) {
13571358 let mut header = entry. header ( ) . clone ( ) ;
@@ -1373,18 +1374,19 @@ impl VirtualReadableFilesystem for VirtualResticBackup {
13731374 if let Some ( counter) = & bytes_archived {
13741375 let counting_reader =
13751376 CountingReader :: new_with_bytes_read ( entry, counter. clone ( ) ) ;
1376- out_tar . append_data ( & mut header, relative, counting_reader) ?;
1377+ tar . append_data ( & mut header, relative, counting_reader) ?;
13771378 } else {
1378- out_tar . append_data ( & mut header, relative, entry) ?;
1379+ tar . append_data ( & mut header, relative, entry) ?;
13791380 }
13801381 } else {
1381- out_tar . append_data ( & mut header, relative, std:: io:: empty ( ) ) ?;
1382+ tar . append_data ( & mut header, relative, std:: io:: empty ( ) ) ?;
13821383 }
13831384 }
13841385
1385- out_tar . finish ( ) ?;
1386- let mut inner = out_tar . into_inner ( ) ?. finish ( ) ?;
1386+ tar . finish ( ) ?;
1387+ let mut inner = tar . into_inner ( ) ?. finish ( ) ?;
13871388 inner. flush ( ) ?;
1389+ inner. shutdown ( ) ?;
13881390
13891391 Ok ( ( ) )
13901392 } ) ;
0 commit comments