chiark / gitweb /
bundles progress: Rework to do the duplex disablement here
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 10:16:17 +0000 (11:16 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 17 May 2021 14:00:29 +0000 (15:00 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/bundles.rs

index 14b676658f1539dad084f2686d1573d9e93f21f8..58b466c6ea4a0af13460736caceffe402450f389 100644 (file)
@@ -875,13 +875,16 @@ impl Uploading {
   where R: Read, PW: Write
   {
     let mut for_progress = progress::ResponseOriginator::new(for_progress);
-    let for_progress: &mut dyn progress::Originator = &mut for_progress;
 
     let Uploading { id, mut file, instance } = self;
     let tmp = id.path_tmp(&instance);
 
+    let mut null_progress = ();
+    let for_progress_upload: &mut dyn progress::Originator =
+      if false { &mut for_progress } else { &mut null_progress };
+    
     let mut data_reporter = progress::ReadOriginator::new(
-      for_progress, Phase::Upload, size, data);
+      for_progress_upload, Phase::Upload, size, data);
 
     let copied_size = match io::copy(&mut data_reporter, &mut file) {
       Err(e) if e.kind() == ErrorKind::TimedOut => throw!(ME::UploadTimeout),
@@ -901,9 +904,9 @@ impl Uploading {
     file.rewind().context("rewind"). map_err(IE::from)?;
 
     let (za, parsed) = parse_bundle(id, &instance, file, BundleParseUpload,
-                                    for_progress)?;
+                                    &mut for_progress)?;
 
-    process_bundle(za, id, &*instance, for_progress)?;
+    process_bundle(za, id, &*instance, &mut for_progress)?;
 
     Uploaded { id, parsed }
   }