diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-07-12 13:35:35 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-07-12 13:35:35 +0000 |
| commit | 5472c8033e3a36267a1ca5f12ade08ce0296c42b (patch) | |
| tree | 8f785e508b6238a0eea7daf98bc3d45c00dc180c /src/MetalinkParserController.cc | |
| parent | 6796e1c80593284ec1534136d977c83bbd8f3186 (diff) | |
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to retrieve signature from Metalink file.
A retrieved signature is stored in Signature class and it is
held by
DownloadContext class. Note that aria2 doesn't verify signature.
* src/DownloadContext.cc
* src/DownloadContext.h
* src/Makefile.am
* src/Makefile.in
* src/Metalink2RequestGroup.cc
* src/MetalinkEntry.cc
* src/MetalinkEntry.h
* src/MetalinkParserController.cc
* src/MetalinkParserController.h
* src/MetalinkParserStateMachine.cc
* src/MetalinkParserStateMachine.h
* src/Signature.cc
* src/Signature.h
* src/SignatureMetalinkParserState.cc
* src/SignatureMetalinkParserState.h
* src/VerificationMetalinkParserState.cc
* src/VerificationMetalinkParserState.h
* test/Metalink2RequestGroupTest.cc
* test/MetalinkParserControllerTest.cc
* test/MetalinkProcessorTest.cc
* test/test.xml
Diffstat (limited to 'src/MetalinkParserController.cc')
| -rw-r--r-- | src/MetalinkParserController.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/MetalinkParserController.cc b/src/MetalinkParserController.cc index 31f98625..205caf61 100644 --- a/src/MetalinkParserController.cc +++ b/src/MetalinkParserController.cc @@ -44,6 +44,7 @@ # include "ChunkChecksum.h" # include "messageDigest.h" #endif // ENABLE_MESSAGE_DIGEST +#include "Signature.h" #include <algorithm> namespace aria2 { @@ -135,6 +136,7 @@ void MetalinkParserController::commitEntryTransaction() commitResourceTransaction(); commitChecksumTransaction(); commitChunkChecksumTransaction(); + commitSignatureTransaction(); _metalinker->entries.push_back(_tEntry); _tEntry.reset(); } @@ -144,6 +146,7 @@ void MetalinkParserController::cancelEntryTransaction() cancelResourceTransaction(); cancelChecksumTransaction(); cancelChunkChecksumTransaction(); + cancelSignatureTransaction(); _tEntry.reset(); } @@ -379,4 +382,50 @@ void MetalinkParserController::cancelChunkChecksumTransaction() #endif // ENABLE_MESSAGE_DIGEST } +void MetalinkParserController::newSignatureTransaction() +{ + if(_tEntry.isNull()) { + return; + } + _tSignature.reset(new Signature()); +} + +void MetalinkParserController::setTypeOfSignature(const std::string& type) +{ + if(_tSignature.isNull()) { + return; + } + _tSignature->setType(type); +} + +void MetalinkParserController::setFileOfSignature(const std::string& file) +{ + if(_tSignature.isNull()) { + return; + } + _tSignature->setFile(file); +} + +void MetalinkParserController::setBodyOfSignature(const std::string& body) +{ + if(_tSignature.isNull()) { + return; + } + _tSignature->setBody(body); +} + +void MetalinkParserController::commitSignatureTransaction() +{ + if(_tSignature.isNull()) { + return; + } + _tEntry->setSignature(_tSignature); + _tSignature.reset(); +} + +void MetalinkParserController::cancelSignatureTransaction() +{ + _tSignature.reset(); +} + } // namespace aria2 |
