Pārlūkot izejas kodu

Exit with 32 status code if checksum verification failed

Tatsuhiro Tsujikawa 10 gadi atpakaļ
vecāks
revīzija
3855205026

+ 6 - 0
doc/manual-src/en/aria2c.rst

@@ -1767,6 +1767,12 @@ based on the last error encountered.
 30
   If aria2 could not parse JSON-RPC request.
 
+31
+  Reserved.  Not used.
+
+32
+  If checksum validation failed.
+
 .. note::
 
   An error occurred in a finished download will not be reported

+ 4 - 0
src/ChecksumCheckIntegrityEntry.cc

@@ -82,7 +82,11 @@ ChecksumCheckIntegrityEntry::onDownloadIncomplete
                           make_unique<StreamFileAllocationEntry>
                           (getRequestGroup(), popNextCommand()),
                           e);
+    return;
   }
+
+  // If we don't redownload, set error code to indicate checksum error
+  getRequestGroup()->setLastErrorCode(error_code::CHECKSUM_ERROR);
 }
 
 } // namespace aria2

+ 2 - 1
src/error_code.h

@@ -74,7 +74,8 @@ enum Value {
   OPTION_ERROR = 28,
   HTTP_SERVICE_UNAVAILABLE = 29,
   JSON_PARSE_ERROR = 30,
-  REMOVED = 31
+  REMOVED = 31,
+  CHECKSUM_ERROR = 32,
 };
 
 } // namespace error_code