mirror of https://github.com/aria2/aria2
2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made aria2 not send "application/metalink4+xml,application/metalink+xml" in Accept header for web-seeding URIs and tracker request. * src/Metalink2RequestGroup.cc * src/TrackerWatcherCommand.cc * src/download_helper.cc * src/util.cc * src/util.hpull/1/head
parent
d67f4cefac
commit
5cc28b2d80
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Made aria2 not send
|
||||||
|
"application/metalink4+xml,application/metalink+xml" in Accept
|
||||||
|
header for web-seeding URIs and tracker request.
|
||||||
|
* src/Metalink2RequestGroup.cc
|
||||||
|
* src/TrackerWatcherCommand.cc
|
||||||
|
* src/download_helper.cc
|
||||||
|
* src/util.cc
|
||||||
|
* src/util.h
|
||||||
|
|
||||||
2010-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Added download_helper.{cc,h} to SRCS
|
Added download_helper.{cc,h} to SRCS
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
#include "FileEntry.h"
|
#include "FileEntry.h"
|
||||||
#include "A2STR.h"
|
#include "A2STR.h"
|
||||||
#include "a2functional.h"
|
#include "a2functional.h"
|
||||||
#include "DownloadHandlerConstants.h"
|
|
||||||
#ifdef ENABLE_BITTORRENT
|
#ifdef ENABLE_BITTORRENT
|
||||||
# include "BtDependency.h"
|
# include "BtDependency.h"
|
||||||
# include "download_helper.h"
|
# include "download_helper.h"
|
||||||
|
@ -124,18 +123,6 @@ Metalink2RequestGroup::generate
|
||||||
createRequestGroup(groups, entries, option);
|
createRequestGroup(groups, entries, option);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace {
|
|
||||||
void removeMetalinkContentTypes(const SharedHandle<RequestGroup>& group)
|
|
||||||
{
|
|
||||||
for(std::vector<std::string>::const_iterator i =
|
|
||||||
DownloadHandlerConstants::getMetalinkContentTypes().begin(),
|
|
||||||
eoi = DownloadHandlerConstants::getMetalinkContentTypes().end();
|
|
||||||
i != eoi; ++i) {
|
|
||||||
group->removeAcceptType(*i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Metalink2RequestGroup::createRequestGroup
|
Metalink2RequestGroup::createRequestGroup
|
||||||
(std::vector<SharedHandle<RequestGroup> >& groups,
|
(std::vector<SharedHandle<RequestGroup> >& groups,
|
||||||
|
@ -213,7 +200,7 @@ Metalink2RequestGroup::createRequestGroup
|
||||||
torrentRg->clearPostDownloadHandler();
|
torrentRg->clearPostDownloadHandler();
|
||||||
// remove "metalink" from Accept Type list to avoid loop in
|
// remove "metalink" from Accept Type list to avoid loop in
|
||||||
// tranparent metalink
|
// tranparent metalink
|
||||||
removeMetalinkContentTypes(torrentRg);
|
util::removeMetalinkContentTypes(torrentRg);
|
||||||
// make it in-memory download
|
// make it in-memory download
|
||||||
SharedHandle<PreDownloadHandler> preh
|
SharedHandle<PreDownloadHandler> preh
|
||||||
(new MemoryBufferPreDownloadHandler());
|
(new MemoryBufferPreDownloadHandler());
|
||||||
|
@ -306,7 +293,7 @@ Metalink2RequestGroup::createRequestGroup
|
||||||
rg->setDownloadContext(dctx);
|
rg->setDownloadContext(dctx);
|
||||||
// remove "metalink" from Accept Type list to avoid loop in
|
// remove "metalink" from Accept Type list to avoid loop in
|
||||||
// tranparent metalink
|
// tranparent metalink
|
||||||
removeMetalinkContentTypes(rg);
|
util::removeMetalinkContentTypes(rg);
|
||||||
#ifdef ENABLE_BITTORRENT
|
#ifdef ENABLE_BITTORRENT
|
||||||
// Inject depenency between rg and torrentRg here if
|
// Inject depenency between rg and torrentRg here if
|
||||||
// torrentRg.isNull() == false
|
// torrentRg.isNull() == false
|
||||||
|
|
|
@ -248,6 +248,7 @@ TrackerWatcherCommand::createRequestGroup(const std::string& uri)
|
||||||
rg->setDiskWriterFactory(dwf);
|
rg->setDiskWriterFactory(dwf);
|
||||||
rg->setFileAllocationEnabled(false);
|
rg->setFileAllocationEnabled(false);
|
||||||
rg->setPreLocalFileCheckEnabled(false);
|
rg->setPreLocalFileCheckEnabled(false);
|
||||||
|
util::removeMetalinkContentTypes(rg);
|
||||||
if(logger->info()) {
|
if(logger->info()) {
|
||||||
logger->info("Creating tracker request group GID#%s",
|
logger->info("Creating tracker request group GID#%s",
|
||||||
util::itos(rg->getGID()).c_str());
|
util::itos(rg->getGID()).c_str());
|
||||||
|
|
|
@ -236,6 +236,9 @@ createBtRequestGroup(const std::string& torrentFilePath,
|
||||||
((*i).first, util::applyDir(dctx->getDir(), (*i).second));
|
((*i).first, util::applyDir(dctx->getDir(), (*i).second));
|
||||||
}
|
}
|
||||||
rg->setDownloadContext(dctx);
|
rg->setDownloadContext(dctx);
|
||||||
|
// Remove "metalink" from Accept Type list to avoid server from
|
||||||
|
// responding Metalink file for web-seeding URIs.
|
||||||
|
util::removeMetalinkContentTypes(rg);
|
||||||
return rg;
|
return rg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
src/util.cc
12
src/util.cc
|
@ -76,6 +76,8 @@
|
||||||
#include "array_fun.h"
|
#include "array_fun.h"
|
||||||
#include "a2functional.h"
|
#include "a2functional.h"
|
||||||
#include "bitfield.h"
|
#include "bitfield.h"
|
||||||
|
#include "DownloadHandlerConstants.h"
|
||||||
|
#include "RequestGroup.h"
|
||||||
#ifdef ENABLE_MESSAGE_DIGEST
|
#ifdef ENABLE_MESSAGE_DIGEST
|
||||||
# include "MessageDigestHelper.h"
|
# include "MessageDigestHelper.h"
|
||||||
#endif // ENABLE_MESSAGE_DIGEST
|
#endif // ENABLE_MESSAGE_DIGEST
|
||||||
|
@ -1291,6 +1293,16 @@ bool inSameCidrBlock(const std::string& ip1, const std::string& ip2, int bits)
|
||||||
return in1.s_addr == in2.s_addr;
|
return in1.s_addr == in2.s_addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeMetalinkContentTypes(const SharedHandle<RequestGroup>& group)
|
||||||
|
{
|
||||||
|
for(std::vector<std::string>::const_iterator i =
|
||||||
|
DownloadHandlerConstants::getMetalinkContentTypes().begin(),
|
||||||
|
eoi = DownloadHandlerConstants::getMetalinkContentTypes().end();
|
||||||
|
i != eoi; ++i) {
|
||||||
|
group->removeAcceptType(*i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace util
|
} // namespace util
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -62,6 +62,7 @@ class Randomizer;
|
||||||
class BitfieldMan;
|
class BitfieldMan;
|
||||||
class BinaryStream;
|
class BinaryStream;
|
||||||
class FileEntry;
|
class FileEntry;
|
||||||
|
class RequestGroup;
|
||||||
|
|
||||||
#define STRTOLL(X) strtoll(X, reinterpret_cast<char**>(0), 10)
|
#define STRTOLL(X) strtoll(X, reinterpret_cast<char**>(0), 10)
|
||||||
#define STRTOULL(X) strtoull(X, reinterpret_cast<char**>(0), 10)
|
#define STRTOULL(X) strtoull(X, reinterpret_cast<char**>(0), 10)
|
||||||
|
@ -392,6 +393,8 @@ bool getCidrPrefix(struct in_addr& in, const std::string& ip, int bits);
|
||||||
// Returns true if ip1 and ip2 are in the same CIDR block.
|
// Returns true if ip1 and ip2 are in the same CIDR block.
|
||||||
bool inSameCidrBlock(const std::string& ip1, const std::string& ip2, int bits);
|
bool inSameCidrBlock(const std::string& ip1, const std::string& ip2, int bits);
|
||||||
|
|
||||||
|
void removeMetalinkContentTypes(const SharedHandle<RequestGroup>& group);
|
||||||
|
|
||||||
} // namespace util
|
} // namespace util
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
Loading…
Reference in New Issue