diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-07-27 20:54:21 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-07-27 20:54:21 +0900 |
| commit | a533437be6fa9d4e563b91bf117e5644f6f0a7c9 (patch) | |
| tree | 9868bb4d01482d361ac076156ee0a0e58192e5bb /src/HttpResponseCommand.h | |
| parent | 67e91c3431a4c89a76093e33cd121f89f5550fb7 (diff) | |
Implemented Metalink/HTTP in HTTP download.
Link header fields from first Metalink server is utilized as described
in rfc6249. We only set digest from Digest header field to
DownloadContext only when PieceStorage is not initialized(in other
words, before file size is known). After PieceStorage is initialized,
Digest header field is used to check the value is the same in digest
in DownloadContext. Current implementation only handles
rel=duplicate.
Diffstat (limited to 'src/HttpResponseCommand.h')
| -rw-r--r-- | src/HttpResponseCommand.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/HttpResponseCommand.h b/src/HttpResponseCommand.h index 6d341154..6c691e0e 100644 --- a/src/HttpResponseCommand.h +++ b/src/HttpResponseCommand.h @@ -45,6 +45,9 @@ class HttpDownloadCommand; class HttpResponse; class SocketCore; class StreamFilter; +#ifdef ENABLE_MESSAGE_DIGEST +class Checksum; +#endif // ENABLE_MESSAGE_DIGEST // HttpResponseCommand receives HTTP response header from remote // server. Because network I/O is non-blocking, execute() returns @@ -74,6 +77,14 @@ private: void poolConnection(); void onDryRunFileFound(); +#ifdef ENABLE_MESSAGE_DIGEST + // Returns true if dctx and checksum has same hash type and hash + // value. If they have same hash type but different hash value, + // throws exception. Otherwise returns false. + bool checkChecksum + (const SharedHandle<DownloadContext>& dctx, + const Checksum& checksum); +#endif // ENABLE_MESSAGE_DIGEST protected: bool executeInternal(); |
