瀏覽代碼

Exit with 32 status code if checksum verification failed

Tatsuhiro Tsujikawa 10 年之前
父節點
當前提交
3855205026
共有 3 個文件被更改,包括 12 次插入1 次删除
  1. 6 0
      doc/manual-src/en/aria2c.rst
  2. 4 0
      src/ChecksumCheckIntegrityEntry.cc
  3. 2 1
      src/error_code.h

+ 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