diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-28 09:58:49 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-28 09:58:49 +0000 |
| commit | 339795311bd3d07da1d49fb2c5c2e7efa8833922 (patch) | |
| tree | 21c4960e2cb6a04933f70d784351d15c64223605 /src/BtDependency.cc | |
| parent | 96205abc67e5f425e3bad997959493ba54d83190 (diff) | |
2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Accept BitTorrent Magnet URI in Metalink resource type bittorrent.
Rewritten UTMetadataPostDownloadHandler. To create torrent data
from metadata, use new metadata2Torrent() function.
* src/BtDependency.cc
* src/UTMetadataPostDownloadHandler.cc
* src/bittorrent_helper.cc
* src/bittorrent_helper.h
* test/BittorrentHelperTest.cc
* test/BtDependencyTest.cc
Diffstat (limited to 'src/BtDependency.cc')
| -rw-r--r-- | src/BtDependency.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/BtDependency.cc b/src/BtDependency.cc index 6041a9ef..270e27ca 100644 --- a/src/BtDependency.cc +++ b/src/BtDependency.cc @@ -71,8 +71,15 @@ bool BtDependency::resolve() dependee->getPieceStorage()->getDiskAdaptor(); diskAdaptor->openExistingFile(); std::string content = util::toString(diskAdaptor); - bittorrent::loadFromMemory - (content, context, File(dependee->getFirstFilePath()).getBasename()); + if(dependee->getDownloadContext()->hasAttribute(bittorrent::BITTORRENT)) { + const BDE& attrs = + dependee->getDownloadContext()->getAttribute(bittorrent::BITTORRENT); + bittorrent::loadFromMemory + (bittorrent::metadata2Torrent(content, attrs), context, "default"); + } else { + bittorrent::loadFromMemory + (content, context, File(dependee->getFirstFilePath()).getBasename()); + } if(context->getFileEntries().size() != _dependant->getDownloadContext()->getFileEntries().size()) { throw DL_ABORT_EX("The number of file in torrent doesn't match to" |
