Przeglądaj źródła

error code if failure while extracting

David Rose 23 lat temu
rodzic
commit
ea3bd5c488

+ 12 - 6
panda/src/downloader/extractor.cxx

@@ -158,13 +158,13 @@ step() {
     }
 
     _subfile_index = _requests[_request_index];
-    Filename subfile_filename(_extract_dir, 
-                              _multifile.get_subfile_name(_subfile_index));
-    subfile_filename.set_binary();
-    subfile_filename.make_dir();
-    if (!subfile_filename.open_write(_write)) {
+    _subfile_filename = Filename(_extract_dir, 
+                                 _multifile.get_subfile_name(_subfile_index));
+    _subfile_filename.set_binary();
+    _subfile_filename.make_dir();
+    if (!_subfile_filename.open_write(_write)) {
       downloader_cat.error()
-        << "Unable to write to " << subfile_filename << ".\n";
+        << "Unable to write to " << _subfile_filename << ".\n";
       reset();
       return EU_error_abort;
     }
@@ -202,6 +202,12 @@ step() {
       }
       _write.put(byte);
     }
+    if (!_write) {
+      downloader_cat.error()
+        << "Error writing to " << _subfile_filename << ".\n";
+      reset();
+      return EU_error_abort;
+    }
     _subfile_pos += max_bytes;
   }
 

+ 1 - 0
panda/src/downloader/extractor.h

@@ -73,6 +73,7 @@ private:
   size_t _subfile_length;
   istream *_read;
   ofstream _write;
+  Filename _subfile_filename;
 };
 
 #include "extractor.I"