mirror of https://github.com/aria2/aria2
2010-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use inet_ntoa if inet_ntop is not available. Since inet_ntoa does not handle IPv6 address, IPv6 support is limited in this case. Fixed unit test error under mingw32. * configure.ac * src/AsyncNameResolver.cc * src/SocketCore.cc * src/bittorrent_helper.cc * test/BittorrentHelperTest.cc * test/DHTMessageFactoryImplTest.cc * test/DHTRoutingTableDeserializerTest.cc * test/DHTRoutingTableSerializerTest.cc * test/DefaultBtAnnounceTest.cc * test/Metalink2RequestGroupTest.cc * test/UTPexExtensionMessageTest.ccpull/1/head
parent
329de2a9b5
commit
5db7b123b5
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
||||||
|
2010-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Use inet_ntoa if inet_ntop is not available. Since inet_ntoa does
|
||||||
|
not handle IPv6 address, IPv6 support is limited in this
|
||||||
|
case. Fixed unit test error under mingw32.
|
||||||
|
* configure.ac
|
||||||
|
* src/AsyncNameResolver.cc
|
||||||
|
* src/SocketCore.cc
|
||||||
|
* src/bittorrent_helper.cc
|
||||||
|
* test/BittorrentHelperTest.cc
|
||||||
|
* test/DHTMessageFactoryImplTest.cc
|
||||||
|
* test/DHTRoutingTableDeserializerTest.cc
|
||||||
|
* test/DHTRoutingTableSerializerTest.cc
|
||||||
|
* test/DefaultBtAnnounceTest.cc
|
||||||
|
* test/Metalink2RequestGroupTest.cc
|
||||||
|
* test/UTPexExtensionMessageTest.cc
|
||||||
|
|
||||||
2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Reverted the previous change in src/MultiUrlRequestInfo.cc.
|
Reverted the previous change in src/MultiUrlRequestInfo.cc.
|
||||||
|
|
|
@ -195,6 +195,9 @@
|
||||||
/* Define to 1 if you have the `inet_ntoa' function. */
|
/* Define to 1 if you have the `inet_ntoa' function. */
|
||||||
#undef HAVE_INET_NTOA
|
#undef HAVE_INET_NTOA
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `inet_ntop' function. */
|
||||||
|
#undef HAVE_INET_NTOP
|
||||||
|
|
||||||
/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
|
/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
|
||||||
#undef HAVE_INTMAX_T
|
#undef HAVE_INTMAX_T
|
||||||
|
|
||||||
|
|
|
@ -14701,6 +14701,7 @@ for ac_func in __argz_count \
|
||||||
getifaddrs \
|
getifaddrs \
|
||||||
getpagesize \
|
getpagesize \
|
||||||
inet_ntoa \
|
inet_ntoa \
|
||||||
|
inet_ntop \
|
||||||
memchr \
|
memchr \
|
||||||
memmove \
|
memmove \
|
||||||
mempcpy \
|
mempcpy \
|
||||||
|
|
|
@ -316,6 +316,7 @@ AC_CHECK_FUNCS([__argz_count \
|
||||||
getifaddrs \
|
getifaddrs \
|
||||||
getpagesize \
|
getpagesize \
|
||||||
inet_ntoa \
|
inet_ntoa \
|
||||||
|
inet_ntop \
|
||||||
memchr \
|
memchr \
|
||||||
memmove \
|
memmove \
|
||||||
mempcpy \
|
mempcpy \
|
||||||
|
|
|
@ -53,15 +53,24 @@ void callback(void* arg, int status, int timeouts, struct hostent* host)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for(char** ap = host->h_addr_list; *ap; ++ap) {
|
for(char** ap = host->h_addr_list; *ap; ++ap) {
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
char addrstring[INET6_ADDRSTRLEN];
|
char addrstring[INET6_ADDRSTRLEN];
|
||||||
const char* dst =
|
const char* dst =
|
||||||
inet_ntop(host->h_addrtype, *ap, addrstring, sizeof(addrstring));
|
inet_ntop(host->h_addrtype, *ap, addrstring, sizeof(addrstring));
|
||||||
if(dst) {
|
if(dst) {
|
||||||
resolverPtr->resolvedAddresses_.push_back(dst);
|
resolverPtr->resolvedAddresses_.push_back(dst);
|
||||||
}
|
}
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
if(host->h_addrtype != AF_INET) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
struct in_addr addr;
|
||||||
|
memcpy(&addr, *ap, sizeof(in_addr));
|
||||||
|
resolverPtr->resolvedAddresses_.push_back(inet_ntoa(addr));
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
}
|
}
|
||||||
if(resolverPtr->resolvedAddresses_.empty()) {
|
if(resolverPtr->resolvedAddresses_.empty()) {
|
||||||
resolverPtr->error_ = "inet_ntop failed";
|
resolverPtr->error_ = "address conversion failed";
|
||||||
resolverPtr->status_ = AsyncNameResolver::STATUS_ERROR;
|
resolverPtr->status_ = AsyncNameResolver::STATUS_ERROR;
|
||||||
} else {
|
} else {
|
||||||
resolverPtr->status_ = AsyncNameResolver::STATUS_SUCCESS;
|
resolverPtr->status_ = AsyncNameResolver::STATUS_SUCCESS;
|
||||||
|
|
|
@ -200,6 +200,7 @@ static sock_t bindInternal(int family, int socktype, int protocol,
|
||||||
CLOSE(fd);
|
CLOSE(fd);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#ifdef IPV6_V6ONLY
|
||||||
if(family == AF_INET6) {
|
if(family == AF_INET6) {
|
||||||
int sockopt = 1;
|
int sockopt = 1;
|
||||||
if(setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (a2_sockopt_t) &sockopt,
|
if(setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (a2_sockopt_t) &sockopt,
|
||||||
|
@ -208,6 +209,7 @@ static sock_t bindInternal(int family, int socktype, int protocol,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // IPV6_V6ONLY
|
||||||
if(::bind(fd, addr, addrlen) == -1) {
|
if(::bind(fd, addr, addrlen) == -1) {
|
||||||
error = errorMsg();
|
error = errorMsg();
|
||||||
CLOSE(fd);
|
CLOSE(fd);
|
||||||
|
|
|
@ -838,8 +838,9 @@ int packcompact
|
||||||
std::pair<std::string, uint16_t> unpackcompact
|
std::pair<std::string, uint16_t> unpackcompact
|
||||||
(const unsigned char* compact, int family)
|
(const unsigned char* compact, int family)
|
||||||
{
|
{
|
||||||
int portOffset = family == AF_INET?4:16;
|
|
||||||
std::pair<std::string, uint16_t> r;
|
std::pair<std::string, uint16_t> r;
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
|
int portOffset = family == AF_INET?4:16;
|
||||||
char buf[INET6_ADDRSTRLEN];
|
char buf[INET6_ADDRSTRLEN];
|
||||||
if(!inet_ntop(family, compact, buf, sizeof(buf))) {
|
if(!inet_ntop(family, compact, buf, sizeof(buf))) {
|
||||||
return r;
|
return r;
|
||||||
|
@ -848,6 +849,17 @@ std::pair<std::string, uint16_t> unpackcompact
|
||||||
uint16_t portN;
|
uint16_t portN;
|
||||||
memcpy(&portN, compact+portOffset, sizeof(portN));
|
memcpy(&portN, compact+portOffset, sizeof(portN));
|
||||||
r.second = ntohs(portN);
|
r.second = ntohs(portN);
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
if(family != AF_INET) {
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
struct in_addr addr;
|
||||||
|
memcpy(&addr, compact, sizeof(in_addr));
|
||||||
|
r.first = inet_ntoa(addr);
|
||||||
|
uint16_t portN;
|
||||||
|
memcpy(&portN, compact+4, sizeof(portN));
|
||||||
|
r.second = ntohs(portN);
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -816,6 +816,7 @@ void BittorrentHelperTest::testExtractPeerFromString()
|
||||||
SharedHandle<ValueBase> str = bencode2::decode(peersstr);
|
SharedHandle<ValueBase> str = bencode2::decode(peersstr);
|
||||||
std::deque<SharedHandle<Peer> > peers;
|
std::deque<SharedHandle<Peer> > peers;
|
||||||
extractPeer(str, AF_INET6, std::back_inserter(peers));
|
extractPeer(str, AF_INET6, std::back_inserter(peers));
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)2, peers.size());
|
CPPUNIT_ASSERT_EQUAL((size_t)2, peers.size());
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
||||||
peers[0]->getIPAddress());
|
peers[0]->getIPAddress());
|
||||||
|
@ -823,6 +824,9 @@ void BittorrentHelperTest::testExtractPeerFromString()
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("2001:db8:bd05:1d2:288a:1fc0:1:10ee"),
|
CPPUNIT_ASSERT_EQUAL(std::string("2001:db8:bd05:1d2:288a:1fc0:1:10ee"),
|
||||||
peers[1]->getIPAddress());
|
peers[1]->getIPAddress());
|
||||||
CPPUNIT_ASSERT_EQUAL((uint16_t)6882, peers[1]->getPort());
|
CPPUNIT_ASSERT_EQUAL((uint16_t)6882, peers[1]->getPort());
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
CPPUNIT_ASSERT_EQUAL((size_t)0, peers.size());
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
|
|
||||||
hextext = "c0a800011ae1";
|
hextext = "c0a800011ae1";
|
||||||
hextext += "c0a800021ae2";
|
hextext += "c0a800021ae2";
|
||||||
|
@ -898,9 +902,13 @@ void BittorrentHelperTest::testUnpackcompact()
|
||||||
0x1A, 0xE1 };
|
0x1A, 0xE1 };
|
||||||
std::pair<std::string, uint16_t> p =
|
std::pair<std::string, uint16_t> p =
|
||||||
unpackcompact(compact6, AF_INET6);
|
unpackcompact(compact6, AF_INET6);
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
||||||
p.first);
|
p.first);
|
||||||
CPPUNIT_ASSERT_EQUAL((uint16_t)6881, p.second);
|
CPPUNIT_ASSERT_EQUAL((uint16_t)6881, p.second);
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string(), p.first);
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
|
|
||||||
unsigned char compact[] = { 0xC0, 0xa8, 0x00, 0x01, 0x1A, 0xE1 };
|
unsigned char compact[] = { 0xC0, 0xa8, 0x00, 0x01, 0x1A, 0xE1 };
|
||||||
p = unpackcompact(compact, AF_INET);
|
p = unpackcompact(compact, AF_INET);
|
||||||
|
|
|
@ -31,10 +31,14 @@ class DHTMessageFactoryImplTest:public CppUnit::TestFixture {
|
||||||
CPPUNIT_TEST(testCreatePingReplyMessage);
|
CPPUNIT_TEST(testCreatePingReplyMessage);
|
||||||
CPPUNIT_TEST(testCreateFindNodeMessage);
|
CPPUNIT_TEST(testCreateFindNodeMessage);
|
||||||
CPPUNIT_TEST(testCreateFindNodeReplyMessage);
|
CPPUNIT_TEST(testCreateFindNodeReplyMessage);
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testCreateFindNodeReplyMessage6);
|
CPPUNIT_TEST(testCreateFindNodeReplyMessage6);
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testCreateGetPeersMessage);
|
CPPUNIT_TEST(testCreateGetPeersMessage);
|
||||||
CPPUNIT_TEST(testCreateGetPeersReplyMessage);
|
CPPUNIT_TEST(testCreateGetPeersReplyMessage);
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testCreateGetPeersReplyMessage6);
|
CPPUNIT_TEST(testCreateGetPeersReplyMessage6);
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testCreateAnnouncePeerMessage);
|
CPPUNIT_TEST(testCreateAnnouncePeerMessage);
|
||||||
CPPUNIT_TEST(testCreateAnnouncePeerReplyMessage);
|
CPPUNIT_TEST(testCreateAnnouncePeerReplyMessage);
|
||||||
CPPUNIT_TEST(testReceivedErrorMessage);
|
CPPUNIT_TEST(testReceivedErrorMessage);
|
||||||
|
@ -204,6 +208,7 @@ void DHTMessageFactoryImplTest::testCreateFindNodeReplyMessage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
void DHTMessageFactoryImplTest::testCreateFindNodeReplyMessage6()
|
void DHTMessageFactoryImplTest::testCreateFindNodeReplyMessage6()
|
||||||
{
|
{
|
||||||
factory.reset(new DHTMessageFactoryImpl(AF_INET6));
|
factory.reset(new DHTMessageFactoryImpl(AF_INET6));
|
||||||
|
@ -255,6 +260,7 @@ void DHTMessageFactoryImplTest::testCreateFindNodeReplyMessage6()
|
||||||
CPPUNIT_FAIL(e.stackTrace());
|
CPPUNIT_FAIL(e.stackTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
|
|
||||||
void DHTMessageFactoryImplTest::testCreateGetPeersMessage()
|
void DHTMessageFactoryImplTest::testCreateGetPeersMessage()
|
||||||
{
|
{
|
||||||
|
@ -353,6 +359,7 @@ void DHTMessageFactoryImplTest::testCreateGetPeersReplyMessage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
void DHTMessageFactoryImplTest::testCreateGetPeersReplyMessage6()
|
void DHTMessageFactoryImplTest::testCreateGetPeersReplyMessage6()
|
||||||
{
|
{
|
||||||
factory.reset(new DHTMessageFactoryImpl(AF_INET6));
|
factory.reset(new DHTMessageFactoryImpl(AF_INET6));
|
||||||
|
@ -424,6 +431,7 @@ void DHTMessageFactoryImplTest::testCreateGetPeersReplyMessage6()
|
||||||
CPPUNIT_FAIL(e.stackTrace());
|
CPPUNIT_FAIL(e.stackTrace());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
|
|
||||||
void DHTMessageFactoryImplTest::testCreateAnnouncePeerMessage()
|
void DHTMessageFactoryImplTest::testCreateAnnouncePeerMessage()
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,7 +20,9 @@ class DHTRoutingTableDeserializerTest:public CppUnit::TestFixture {
|
||||||
|
|
||||||
CPPUNIT_TEST_SUITE(DHTRoutingTableDeserializerTest);
|
CPPUNIT_TEST_SUITE(DHTRoutingTableDeserializerTest);
|
||||||
CPPUNIT_TEST(testDeserialize);
|
CPPUNIT_TEST(testDeserialize);
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testDeserialize6);
|
CPPUNIT_TEST(testDeserialize6);
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
public:
|
public:
|
||||||
void setUp() {}
|
void setUp() {}
|
||||||
|
@ -73,6 +75,7 @@ void DHTRoutingTableDeserializerTest::testDeserialize()
|
||||||
CPPUNIT_ASSERT(memcmp(nodes[2]->getID(), dsnodes[1]->getID(), DHT_ID_LENGTH) == 0);
|
CPPUNIT_ASSERT(memcmp(nodes[2]->getID(), dsnodes[1]->getID(), DHT_ID_LENGTH) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
void DHTRoutingTableDeserializerTest::testDeserialize6()
|
void DHTRoutingTableDeserializerTest::testDeserialize6()
|
||||||
{
|
{
|
||||||
SharedHandle<DHTNode> localNode(new DHTNode());
|
SharedHandle<DHTNode> localNode(new DHTNode());
|
||||||
|
@ -112,5 +115,6 @@ void DHTRoutingTableDeserializerTest::testDeserialize6()
|
||||||
CPPUNIT_ASSERT(memcmp(nodes[2]->getID(), dsnodes[1]->getID(),
|
CPPUNIT_ASSERT(memcmp(nodes[2]->getID(), dsnodes[1]->getID(),
|
||||||
DHT_ID_LENGTH) == 0);
|
DHT_ID_LENGTH) == 0);
|
||||||
}
|
}
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -20,7 +20,9 @@ class DHTRoutingTableSerializerTest:public CppUnit::TestFixture {
|
||||||
|
|
||||||
CPPUNIT_TEST_SUITE(DHTRoutingTableSerializerTest);
|
CPPUNIT_TEST_SUITE(DHTRoutingTableSerializerTest);
|
||||||
CPPUNIT_TEST(testSerialize);
|
CPPUNIT_TEST(testSerialize);
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST(testSerialize6);
|
CPPUNIT_TEST(testSerialize6);
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
private:
|
private:
|
||||||
char zero[256];
|
char zero[256];
|
||||||
|
@ -222,6 +224,7 @@ void DHTRoutingTableSerializerTest::testSerialize()
|
||||||
CPPUNIT_ASSERT(ss.eof());
|
CPPUNIT_ASSERT(ss.eof());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
void DHTRoutingTableSerializerTest::testSerialize6()
|
void DHTRoutingTableSerializerTest::testSerialize6()
|
||||||
{
|
{
|
||||||
SharedHandle<DHTNode> localNode(new DHTNode());
|
SharedHandle<DHTNode> localNode(new DHTNode());
|
||||||
|
@ -309,5 +312,6 @@ void DHTRoutingTableSerializerTest::testSerialize6()
|
||||||
CPPUNIT_ASSERT_EQUAL((std::streamsize)0, ss.gcount());
|
CPPUNIT_ASSERT_EQUAL((std::streamsize)0, ss.gcount());
|
||||||
CPPUNIT_ASSERT(ss.eof());
|
CPPUNIT_ASSERT(ss.eof());
|
||||||
}
|
}
|
||||||
|
#endif // HAVE_INET_NTOP
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -393,12 +393,18 @@ void DefaultBtAnnounceTest::testProcessAnnounceResponse()
|
||||||
CPPUNIT_ASSERT_EQUAL((time_t)1800, an.getMinInterval());
|
CPPUNIT_ASSERT_EQUAL((time_t)1800, an.getMinInterval());
|
||||||
CPPUNIT_ASSERT_EQUAL((unsigned int)100, an.getComplete());
|
CPPUNIT_ASSERT_EQUAL((unsigned int)100, an.getComplete());
|
||||||
CPPUNIT_ASSERT_EQUAL((unsigned int)200, an.getIncomplete());
|
CPPUNIT_ASSERT_EQUAL((unsigned int)200, an.getIncomplete());
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)2, peerStorage_->getPeers().size());
|
CPPUNIT_ASSERT_EQUAL((size_t)2, peerStorage_->getPeers().size());
|
||||||
SharedHandle<Peer> peer = peerStorage_->getPeers()[0];
|
SharedHandle<Peer> peer = peerStorage_->getPeers()[0];
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->getIPAddress());
|
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->getIPAddress());
|
||||||
peer = peerStorage_->getPeers()[1];
|
peer = peerStorage_->getPeers()[1];
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
CPPUNIT_ASSERT_EQUAL(std::string("1002:1035:4527:3546:7854:1237:3247:3217"),
|
||||||
peer->getIPAddress());
|
peer->getIPAddress());
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
CPPUNIT_ASSERT_EQUAL((size_t)1, peerStorage_->getPeers().size());
|
||||||
|
SharedHandle<Peer> peer = peerStorage_->getPeers()[0];
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), peer->getIPAddress());
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
|
@ -215,15 +215,15 @@ void Metalink2RequestGroupTest::testGenerate_dosDirTraversal()
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)3, groups.size());
|
CPPUNIT_ASSERT_EQUAL((size_t)3, groups.size());
|
||||||
SharedHandle<RequestGroup> rg = groups[0];
|
SharedHandle<RequestGroup> rg = groups[0];
|
||||||
SharedHandle<FileEntry> file = rg->getDownloadContext()->getFirstFileEntry();
|
SharedHandle<FileEntry> file = rg->getDownloadContext()->getFirstFileEntry();
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/.._.._example.ext"),
|
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/..%5C..%5Cexample.ext"),
|
||||||
file->getPath());
|
file->getPath());
|
||||||
|
|
||||||
rg = groups[2];
|
rg = groups[2];
|
||||||
file = rg->getDownloadContext()->getFileEntries()[0];
|
file = rg->getDownloadContext()->getFileEntries()[0];
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/.._.._file1.ext"),
|
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/..%5C..%5Cfile1.ext"),
|
||||||
file->getPath());
|
file->getPath());
|
||||||
file = rg->getDownloadContext()->getFileEntries()[1];
|
file = rg->getDownloadContext()->getFileEntries()[1];
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/.._.._file2.ext"),
|
CPPUNIT_ASSERT_EQUAL(std::string("/tmp/..%5C..%5Cfile2.ext"),
|
||||||
file->getPath());
|
file->getPath());
|
||||||
#endif // ENABLE_BITTORRENT
|
#endif // ENABLE_BITTORRENT
|
||||||
#endif // __MINGW32__
|
#endif // __MINGW32__
|
||||||
|
|
|
@ -204,8 +204,8 @@ void UTPexExtensionMessageTest::testCreate()
|
||||||
SharedHandle<UTPexExtensionMessage> msg =
|
SharedHandle<UTPexExtensionMessage> msg =
|
||||||
UTPexExtensionMessage::create
|
UTPexExtensionMessage::create
|
||||||
(reinterpret_cast<const unsigned char*>(data.c_str()), data.size());
|
(reinterpret_cast<const unsigned char*>(data.c_str()), data.size());
|
||||||
|
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)1, msg->getExtensionMessageID());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)1, msg->getExtensionMessageID());
|
||||||
|
#ifdef HAVE_INET_NTOP
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)3, msg->getFreshPeers().size());
|
CPPUNIT_ASSERT_EQUAL((size_t)3, msg->getFreshPeers().size());
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"),
|
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"),
|
||||||
msg->getFreshPeers()[0]->getIPAddress());
|
msg->getFreshPeers()[0]->getIPAddress());
|
||||||
|
@ -229,7 +229,24 @@ void UTPexExtensionMessageTest::testCreate()
|
||||||
msg->getDroppedPeers()[2]->getIPAddress());
|
msg->getDroppedPeers()[2]->getIPAddress());
|
||||||
CPPUNIT_ASSERT_EQUAL((uint16_t)6998,
|
CPPUNIT_ASSERT_EQUAL((uint16_t)6998,
|
||||||
msg->getDroppedPeers()[2]->getPort());
|
msg->getDroppedPeers()[2]->getPort());
|
||||||
|
#else // !HAVE_INET_NTOP
|
||||||
|
CPPUNIT_ASSERT_EQUAL((size_t)2, msg->getFreshPeers().size());
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"),
|
||||||
|
msg->getFreshPeers()[0]->getIPAddress());
|
||||||
|
CPPUNIT_ASSERT_EQUAL((uint16_t)6881, msg->getFreshPeers()[0]->getPort());
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("10.1.1.2"),
|
||||||
|
msg->getFreshPeers()[1]->getIPAddress());
|
||||||
|
CPPUNIT_ASSERT_EQUAL((uint16_t)9999, msg->getFreshPeers()[1]->getPort());
|
||||||
|
|
||||||
|
CPPUNIT_ASSERT_EQUAL((size_t)2, msg->getDroppedPeers().size());
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.2"),
|
||||||
|
msg->getDroppedPeers()[0]->getIPAddress());
|
||||||
|
CPPUNIT_ASSERT_EQUAL((uint16_t)6882, msg->getDroppedPeers()[0]->getPort());
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("10.1.1.3"),
|
||||||
|
msg->getDroppedPeers()[1]->getIPAddress());
|
||||||
|
CPPUNIT_ASSERT_EQUAL((uint16_t)10000,
|
||||||
|
msg->getDroppedPeers()[1]->getPort());
|
||||||
|
#endif // !HAVE_INET_NTOP
|
||||||
try {
|
try {
|
||||||
// 0 length data
|
// 0 length data
|
||||||
std::string in = "";
|
std::string in = "";
|
||||||
|
|
Loading…
Reference in New Issue