2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Moved static functions in Util class to namespace util.
	* src
	* test
pull/1/head
Tatsuhiro Tsujikawa 2009-10-22 15:09:00 +00:00
parent 3349fe0811
commit c6035b2e24
129 changed files with 893 additions and 882 deletions

View File

@ -1,3 +1,9 @@
2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Moved static functions in Util class to namespace util.
* src
* test
2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Moved generateRandomData to Util.cc Moved flipBit to bitfield.cc. Moved generateRandomData to Util.cc Moved flipBit to bitfield.cc.

View File

@ -403,10 +403,10 @@ public:
bool operator()(const std::string& domain) const bool operator()(const std::string& domain) const
{ {
if(Util::startsWith(domain, ".")) { if(util::startsWith(domain, ".")) {
return Util::endsWith(_hostname, domain); return util::endsWith(_hostname, domain);
} else { } else {
return Util::endsWith(_hostname, "."+domain); return util::endsWith(_hostname, "."+domain);
} }
} }
}; };
@ -415,7 +415,7 @@ static bool inNoProxy(const SharedHandle<Request>& req,
const std::string& noProxy) const std::string& noProxy)
{ {
std::vector<std::string> entries; std::vector<std::string> entries;
split(noProxy, std::back_inserter(entries), ",", true); util::split(noProxy, std::back_inserter(entries), ",", true);
if(entries.empty()) { if(entries.empty()) {
return false; return false;
} }

View File

@ -108,7 +108,7 @@ void AbstractDiskWriter::openExistingFile(uint64_t totalLength)
void AbstractDiskWriter::createFile(int addFlags) void AbstractDiskWriter::createFile(int addFlags)
{ {
assert(!_filename.empty()); assert(!_filename.empty());
Util::mkdirs(File(_filename).getDirname()); util::mkdirs(File(_filename).getDirname());
if((fd = open(_filename.c_str(), O_CREAT|O_RDWR|O_TRUNC|O_BINARY|addFlags, if((fd = open(_filename.c_str(), O_CREAT|O_RDWR|O_TRUNC|O_BINARY|addFlags,
OPEN_MODE)) < 0) { OPEN_MODE)) < 0) {
throw DL_ABORT_EX(StringFormat(EX_FILE_OPEN, throw DL_ABORT_EX(StringFormat(EX_FILE_OPEN,

View File

@ -73,7 +73,7 @@ void AnnounceList::reconfigure(const BDE& announceList)
elemItr != elemList.listEnd(); ++elemItr) { elemItr != elemList.listEnd(); ++elemItr) {
const BDE& data = *elemItr; const BDE& data = *elemItr;
if(data.isString()) { if(data.isString()) {
urls.push_back(Util::trim(data.s())); urls.push_back(util::trim(data.s()));
} }
} }
if(!urls.empty()) { if(!urls.empty()) {

View File

@ -190,7 +190,7 @@ AuthConfigFactory::BasicCred::BasicCred
_user(user), _password(password), _user(user), _password(password),
_host(host), _path(path), _activated(activated) _host(host), _path(path), _activated(activated)
{ {
if(!Util::endsWith(_path, "/")) { if(!util::endsWith(_path, "/")) {
_path += "/"; _path += "/";
} }
} }
@ -228,7 +228,7 @@ AuthConfigFactory::findBasicCred(const std::string& host,
std::deque<BasicCred>::iterator i = std::deque<BasicCred>::iterator i =
std::lower_bound(_basicCreds.begin(), _basicCreds.end(), bc); std::lower_bound(_basicCreds.begin(), _basicCreds.end(), bc);
for(; i != _basicCreds.end() && (*i)._host == host; ++i) { for(; i != _basicCreds.end() && (*i)._host == host; ++i) {
if(Util::startsWith(bc._path, (*i)._path)) { if(util::startsWith(bc._path, (*i)._path)) {
return i; return i;
} }
} }

View File

@ -100,7 +100,7 @@ size_t BtBitfieldMessage::getMessageLength() {
} }
std::string BtBitfieldMessage::toString() const { std::string BtBitfieldMessage::toString() const {
return strconcat(NAME, " ", Util::toHex(bitfield, bitfieldLength)); return strconcat(NAME, " ", util::toHex(bitfield, bitfieldLength));
} }
} // namespace aria2 } // namespace aria2

View File

@ -70,7 +70,7 @@ bool BtDependency::resolve()
DiskAdaptorHandle diskAdaptor = DiskAdaptorHandle diskAdaptor =
dependee->getPieceStorage()->getDiskAdaptor(); dependee->getPieceStorage()->getDiskAdaptor();
diskAdaptor->openExistingFile(); diskAdaptor->openExistingFile();
std::string content = Util::toString(diskAdaptor); std::string content = util::toString(diskAdaptor);
bittorrent::loadFromMemory bittorrent::loadFromMemory
(content, context, File(dependee->getFirstFilePath()).getBasename()); (content, context, File(dependee->getFirstFilePath()).getBasename());
if(context->getFileEntries().size() != if(context->getFileEntries().size() !=

View File

@ -106,9 +106,9 @@ size_t BtHandshakeMessage::getMessageLength() {
std::string BtHandshakeMessage::toString() const { std::string BtHandshakeMessage::toString() const {
return strconcat(NAME, " peerId=", return strconcat(NAME, " peerId=",
Util::urlencode(peerId, PEER_ID_LENGTH), util::urlencode(peerId, PEER_ID_LENGTH),
", reserved=", ", reserved=",
Util::toHex(reserved, RESERVED_LENGTH)); util::toHex(reserved, RESERVED_LENGTH));
} }
bool BtHandshakeMessage::isFastExtensionSupported() const { bool BtHandshakeMessage::isFastExtensionSupported() const {

View File

@ -66,13 +66,13 @@ public:
if(memcmp(BtHandshakeMessage::BT_PSTR, message->getPstr(), 19) != 0) { if(memcmp(BtHandshakeMessage::BT_PSTR, message->getPstr(), 19) != 0) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("invalid handshake pstr=%s", (StringFormat("invalid handshake pstr=%s",
Util::urlencode(message->getPstr(), 19).c_str()).str()); util::urlencode(message->getPstr(), 19).c_str()).str());
} }
if(memcmp(infoHash, message->getInfoHash(), 20) != 0) { if(memcmp(infoHash, message->getInfoHash(), 20) != 0) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("invalid handshake info hash: expected:%s, actual:%s", (StringFormat("invalid handshake info hash: expected:%s, actual:%s",
Util::toHex(infoHash, 20).c_str(), util::toHex(infoHash, 20).c_str(),
Util::toHex(message->getInfoHash(), 20).c_str()).str()); util::toHex(message->getInfoHash(), 20).c_str()).str());
} }
return true; return true;
} }

View File

@ -91,7 +91,7 @@ void BtPieceMessage::doReceivedAction() {
pieceStorage->getDiskAdaptor()->writeData(block, blockLength, offset); pieceStorage->getDiskAdaptor()->writeData(block, blockLength, offset);
piece->completeBlock(slot.getBlockIndex()); piece->completeBlock(slot.getBlockIndex());
logger->debug(MSG_PIECE_BITFIELD, cuid, logger->debug(MSG_PIECE_BITFIELD, cuid,
Util::toHex(piece->getBitfield(), util::toHex(piece->getBitfield(),
piece->getBitfieldLength()).c_str()); piece->getBitfieldLength()).c_str());
piece->updateHash(begin, block, blockLength); piece->updateHash(begin, block, blockLength);
dispatcher->removeOutstandingRequest(slot); dispatcher->removeOutstandingRequest(slot);
@ -168,8 +168,8 @@ size_t BtPieceMessage::sendPieceData(off_t offset, size_t length) const {
} }
std::string BtPieceMessage::toString() const { std::string BtPieceMessage::toString() const {
return strconcat(NAME, " index=", Util::itos(index), ", begin=", return strconcat(NAME, " index=", util::itos(index), ", begin=",
Util::itos(begin), ", length=", Util::itos(blockLength)); util::itos(begin), ", length=", util::itos(blockLength));
} }
bool BtPieceMessage::checkPieceHash(const PieceHandle& piece) { bool BtPieceMessage::checkPieceHash(const PieceHandle& piece) {

View File

@ -110,7 +110,7 @@ size_t BtPortMessage::getMessageLength() {
} }
std::string BtPortMessage::toString() const { std::string BtPortMessage::toString() const {
return strconcat(NAME, " port=", Util::uitos(_port)); return strconcat(NAME, " port=", util::uitos(_port));
} }
void BtPortMessage::setLocalNode(const WeakHandle<DHTNode>& localNode) void BtPortMessage::setLocalNode(const WeakHandle<DHTNode>& localNode)

View File

@ -74,7 +74,7 @@ void BtPostDownloadHandler::getNextRequestGroups
std::string content; std::string content;
try { try {
requestGroup->getPieceStorage()->getDiskAdaptor()->openExistingFile(); requestGroup->getPieceStorage()->getDiskAdaptor()->openExistingFile();
content = Util::toString(requestGroup->getPieceStorage()->getDiskAdaptor()); content = util::toString(requestGroup->getPieceStorage()->getDiskAdaptor());
requestGroup->getPieceStorage()->getDiskAdaptor()->closeFile(); requestGroup->getPieceStorage()->getDiskAdaptor()->closeFile();
} catch(Exception& e) { } catch(Exception& e) {
requestGroup->getPieceStorage()->getDiskAdaptor()->closeFile(); requestGroup->getPieceStorage()->getDiskAdaptor()->closeFile();

View File

@ -149,7 +149,7 @@ void BtSetup::setup(std::deque<Command*>& commands,
if(PeerListenCommand::getNumInstance() == 0) { if(PeerListenCommand::getNumInstance() == 0) {
PeerListenCommand* listenCommand = PeerListenCommand::getInstance(e); PeerListenCommand* listenCommand = PeerListenCommand::getInstance(e);
IntSequence seq = Util::parseIntRange(option->get(PREF_LISTEN_PORT)); IntSequence seq = util::parseIntRange(option->get(PREF_LISTEN_PORT));
uint16_t port; uint16_t port;
if(listenCommand->bindPort(port, seq)) { if(listenCommand->bindPort(port, seq)) {
btRuntime->setListenPort(port); btRuntime->setListenPort(port);

View File

@ -59,7 +59,7 @@ static bool readChunkSize(uint64_t& chunkSize, std::string& in)
if(extPos == std::string::npos || crlfPos < extPos) { if(extPos == std::string::npos || crlfPos < extPos) {
extPos = crlfPos; extPos = crlfPos;
} }
chunkSize = Util::parseULLInt(in.substr(0, extPos), 16); chunkSize = util::parseULLInt(in.substr(0, extPos), 16);
in.erase(0, crlfPos+2); in.erase(0, crlfPos+2);
return true; return true;
} }

View File

@ -98,10 +98,10 @@ static void printProgress
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
{ {
o << "SIZE:" o << "SIZE:"
<< Util::abbrevSize(rg->getCompletedLength()) << util::abbrevSize(rg->getCompletedLength())
<< "B" << "B"
<< "/" << "/"
<< Util::abbrevSize(rg->getTotalLength()) << util::abbrevSize(rg->getTotalLength())
<< "B"; << "B";
if(rg->getTotalLength() > 0) { if(rg->getTotalLength() > 0) {
o << "(" o << "("
@ -128,18 +128,18 @@ static void printProgress
if(!rg->downloadFinished()) { if(!rg->downloadFinished()) {
o << " " o << " "
<< "SPD:" << "SPD:"
<< Util::abbrevSize(stat.getDownloadSpeed()) << "Bs"; << util::abbrevSize(stat.getDownloadSpeed()) << "Bs";
} }
if(stat.getSessionUploadLength() > 0) { if(stat.getSessionUploadLength() > 0) {
o << " " o << " "
<< "UP:" << "UP:"
<< Util::abbrevSize(stat.getUploadSpeed()) << "Bs" << util::abbrevSize(stat.getUploadSpeed()) << "Bs"
<< "(" << Util::abbrevSize(stat.getAllTimeUploadLength()) << "B)"; << "(" << util::abbrevSize(stat.getAllTimeUploadLength()) << "B)";
} }
if(eta > 0) { if(eta > 0) {
o << " " o << " "
<< "ETA:" << "ETA:"
<< Util::secfmt(eta); << util::secfmt(eta);
} }
o << "]"; o << "]";
} }
@ -241,7 +241,7 @@ ConsoleStatCalc::calculateStat(const DownloadEngine* e)
TransferStat stat = e->_requestGroupMan->calculateStat(); TransferStat stat = e->_requestGroupMan->calculateStat();
o << " " o << " "
<< "[TOTAL SPD:" << "[TOTAL SPD:"
<< Util::abbrevSize(stat.getDownloadSpeed()) << "Bs" << "]"; << util::abbrevSize(stat.getDownloadSpeed()) << "Bs" << "]";
} }
{ {
@ -250,10 +250,10 @@ ConsoleStatCalc::calculateStat(const DownloadEngine* e)
o << " " o << " "
<< "[FileAlloc:" << "[FileAlloc:"
<< "#" << entry->getRequestGroup()->getGID() << " " << "#" << entry->getRequestGroup()->getGID() << " "
<< Util::abbrevSize(entry->getCurrentLength()) << util::abbrevSize(entry->getCurrentLength())
<< "B" << "B"
<< "/" << "/"
<< Util::abbrevSize(entry->getTotalLength()) << util::abbrevSize(entry->getTotalLength())
<< "B" << "B"
<< "("; << "(";
if(entry->getTotalLength() > 0) { if(entry->getTotalLength() > 0) {
@ -277,10 +277,10 @@ ConsoleStatCalc::calculateStat(const DownloadEngine* e)
o << " " o << " "
<< "[Checksum:" << "[Checksum:"
<< "#" << entry->getRequestGroup()->getGID() << " " << "#" << entry->getRequestGroup()->getGID() << " "
<< Util::abbrevSize(entry->getCurrentLength()) << util::abbrevSize(entry->getCurrentLength())
<< "B" << "B"
<< "/" << "/"
<< Util::abbrevSize(entry->getTotalLength()) << util::abbrevSize(entry->getTotalLength())
<< "B" << "B"
<< "(" << "("
<< 100*entry->getCurrentLength()/entry->getTotalLength() << 100*entry->getCurrentLength()/entry->getTotalLength()

View File

@ -48,7 +48,7 @@ bool tailMatch
(InputIterator first, InputIterator last, const std::string& target) (InputIterator first, InputIterator last, const std::string& target)
{ {
for(; first != last; ++first) { for(; first != last; ++first) {
if(Util::endsWith(target, *first)) { if(util::endsWith(target, *first)) {
return true; return true;
} }
} }

View File

@ -56,16 +56,16 @@ static std::string prependDotIfNotExists(const std::string& domain)
static std::string normalizeDomain(const std::string& domain) static std::string normalizeDomain(const std::string& domain)
{ {
if(domain.empty() || Util::isNumbersAndDotsNotation(domain)) { if(domain.empty() || util::isNumbersAndDotsNotation(domain)) {
return domain; return domain;
} }
std::string md = prependDotIfNotExists(domain); std::string md = prependDotIfNotExists(domain);
// TODO use Util::split to strict verification // TODO use util::split to strict verification
std::string::size_type p = md.find_last_of("."); std::string::size_type p = md.find_last_of(".");
if(p == 0 || p == std::string::npos) { if(p == 0 || p == std::string::npos) {
md += ".local"; md += ".local";
} }
return Util::toLower(prependDotIfNotExists(md)); return util::toLower(prependDotIfNotExists(md));
} }
Cookie::Cookie(const std::string& name, Cookie::Cookie(const std::string& name,
@ -112,12 +112,12 @@ static bool pathInclude(const std::string& requestPath, const std::string& path)
if(requestPath == path) { if(requestPath == path) {
return true; return true;
} }
if(Util::startsWith(requestPath, path)) { if(util::startsWith(requestPath, path)) {
if(*path.rbegin() != '/' && requestPath[path.size()] != '/') { if(*path.rbegin() != '/' && requestPath[path.size()] != '/') {
return false; return false;
} }
} else if(*path.rbegin() != '/' || *requestPath.rbegin() == '/' || } else if(*path.rbegin() != '/' || *requestPath.rbegin() == '/' ||
!Util::startsWith(requestPath+"/", path)) { !util::startsWith(requestPath+"/", path)) {
return false; return false;
} }
return true; return true;
@ -135,7 +135,7 @@ static bool domainMatch(const std::string& normReqHost,
// Also original Netscape implementation behaves exactly the same. // Also original Netscape implementation behaves exactly the same.
// _domain always starts ".". See Cookie::Cookie(). // _domain always starts ".". See Cookie::Cookie().
return Util::endsWith(normReqHost, domain); return util::endsWith(normReqHost, domain);
} }
bool Cookie::match(const std::string& requestHost, bool Cookie::match(const std::string& requestHost,
@ -172,7 +172,7 @@ bool Cookie::validate(const std::string& requestHost,
if(_domain.size() < 4 || _domain.find(".", 1) == std::string::npos) { if(_domain.size() < 4 || _domain.find(".", 1) == std::string::npos) {
return false; return false;
} }
if(!Util::endsWith(normReqHost, _domain)) { if(!util::endsWith(normReqHost, _domain)) {
return false; return false;
} }
// From RFC2965 3.3.2 Rejecting Cookies // From RFC2965 3.3.2 Rejecting Cookies
@ -211,7 +211,7 @@ std::string Cookie::toNsCookieFormat() const
{ {
std::stringstream ss; std::stringstream ss;
ss << _domain << "\t"; ss << _domain << "\t";
if(Util::startsWith(_domain, ".")) { if(util::startsWith(_domain, ".")) {
ss << "TRUE"; ss << "TRUE";
} else { } else {
ss << "FALSE"; ss << "FALSE";

View File

@ -63,12 +63,12 @@ Cookie CookieParser::parse(const std::string& cookieStr) const
Cookie CookieParser::parse(const std::string& cookieStr, const std::string& defaultDomain, const std::string& defaultPath) const Cookie CookieParser::parse(const std::string& cookieStr, const std::string& defaultDomain, const std::string& defaultPath) const
{ {
std::vector<std::string> terms; std::vector<std::string> terms;
split(cookieStr, std::back_inserter(terms), ";", true); util::split(cookieStr, std::back_inserter(terms), ";", true);
if(terms.empty()) { if(terms.empty()) {
return Cookie(); return Cookie();
} }
std::pair<std::string, std::string> nameValue; std::pair<std::string, std::string> nameValue;
Util::split(nameValue, terms.front(), '='); util::split(nameValue, terms.front(), '=');
std::map<std::string, std::string> values; std::map<std::string, std::string> values;
values[C_DOMAIN] = defaultDomain; values[C_DOMAIN] = defaultDomain;
@ -77,7 +77,7 @@ Cookie CookieParser::parse(const std::string& cookieStr, const std::string& defa
for(std::vector<std::string>::iterator itr = terms.begin()+1; for(std::vector<std::string>::iterator itr = terms.begin()+1;
itr != terms.end(); ++itr) { itr != terms.end(); ++itr) {
std::pair<std::string, std::string> nv; std::pair<std::string, std::string> nv;
Util::split(nv, *itr, '='); util::split(nv, *itr, '=');
values[nv.first] = nv.second; values[nv.first] = nv.second;
} }
time_t expiry = 0; time_t expiry = 0;
@ -99,7 +99,7 @@ Cookies CookieParser::parse(std::istream& s) const
Cookies cookies; Cookies cookies;
std::string line; std::string line;
while(getline(s, line)) { while(getline(s, line)) {
if(Util::trim(line).empty() || Util::startsWith(line, A2STR::SHARP_C)) { if(util::trim(line).empty() || util::startsWith(line, A2STR::SHARP_C)) {
continue; continue;
} }
Cookie cookie = parse(line); Cookie cookie = parse(line);

View File

@ -86,7 +86,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
} }
if(_inFlightMessage == 0) { if(_inFlightMessage == 0) {
_logger->debug("Finished node_lookup for node ID %s", _logger->debug("Finished node_lookup for node ID %s",
Util::toHex(_targetID, DHT_ID_LENGTH).c_str()); util::toHex(_targetID, DHT_ID_LENGTH).c_str());
onFinish(); onFinish();
updateBucket(); updateBucket();
_finished = true; _finished = true;
@ -96,7 +96,7 @@ void DHTAbstractNodeLookupTask::onReceived(const SharedHandle<DHTMessage>& messa
void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node) void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
{ {
_logger->debug("node lookup message timeout for node ID=%s", _logger->debug("node lookup message timeout for node ID=%s",
Util::toHex(node->getID(), DHT_ID_LENGTH).c_str()); util::toHex(node->getID(), DHT_ID_LENGTH).c_str());
--_inFlightMessage; --_inFlightMessage;
for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = _entries.begin(); i != _entries.end(); ++i) { for(std::deque<SharedHandle<DHTNodeLookupEntry> >::iterator i = _entries.begin(); i != _entries.end(); ++i) {
if((*i)->_node == node) { if((*i)->_node == node) {
@ -109,7 +109,7 @@ void DHTAbstractNodeLookupTask::onTimeout(const SharedHandle<DHTNode>& node)
} }
if(_inFlightMessage == 0) { if(_inFlightMessage == 0) {
_logger->debug("Finished node_lookup for node ID %s", _logger->debug("Finished node_lookup for node ID %s",
Util::toHex(_targetID, DHT_ID_LENGTH).c_str()); util::toHex(_targetID, DHT_ID_LENGTH).c_str());
onFinish(); onFinish();
updateBucket(); updateBucket();
_finished = true; _finished = true;

View File

@ -107,7 +107,7 @@ void DHTAnnouncePeerMessage::validate() const
_remoteNode->getPort())) { _remoteNode->getPort())) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("Invalid token=%s from %s:%u", (StringFormat("Invalid token=%s from %s:%u",
Util::toHex(_token).c_str(), util::toHex(_token).c_str(),
_remoteNode->getIPAddress().c_str(), _remoteNode->getIPAddress().c_str(),
_remoteNode->getPort()).str()); _remoteNode->getPort()).str());
} }
@ -125,9 +125,9 @@ void DHTAnnouncePeerMessage::setTokenTracker(const WeakHandle<DHTTokenTracker>&
std::string DHTAnnouncePeerMessage::toStringOptional() const std::string DHTAnnouncePeerMessage::toStringOptional() const
{ {
return strconcat("token=", Util::toHex(_token), return strconcat("token=", util::toHex(_token),
", info_hash=", Util::toHex(_infoHash, INFO_HASH_LENGTH), ", info_hash=", util::toHex(_infoHash, INFO_HASH_LENGTH),
", tcpPort=", Util::uitos(_tcpPort)); ", tcpPort=", util::uitos(_tcpPort));
} }
} // namespace aria2 } // namespace aria2

View File

@ -203,12 +203,12 @@ SharedHandle<DHTBucket> DHTBucket::split()
// TODO create toString() and use it. // TODO create toString() and use it.
_logger->debug("New bucket. prefixLength=%u, Range:%s-%s", _logger->debug("New bucket. prefixLength=%u, Range:%s-%s",
static_cast<unsigned int>(rBucket->getPrefixLength()), static_cast<unsigned int>(rBucket->getPrefixLength()),
Util::toHex(rBucket->getMinID(), DHT_ID_LENGTH).c_str(), util::toHex(rBucket->getMinID(), DHT_ID_LENGTH).c_str(),
Util::toHex(rBucket->getMaxID(), DHT_ID_LENGTH).c_str()); util::toHex(rBucket->getMaxID(), DHT_ID_LENGTH).c_str());
_logger->debug("Existing bucket. prefixLength=%u, Range:%s-%s", _logger->debug("Existing bucket. prefixLength=%u, Range:%s-%s",
static_cast<unsigned int>(_prefixLength), static_cast<unsigned int>(_prefixLength),
Util::toHex(getMinID(), DHT_ID_LENGTH).c_str(), util::toHex(getMinID(), DHT_ID_LENGTH).c_str(),
Util::toHex(getMaxID(), DHT_ID_LENGTH).c_str()); util::toHex(getMaxID(), DHT_ID_LENGTH).c_str());
return rBucket; return rBucket;
} }

View File

@ -65,7 +65,7 @@ void DHTBucketRefreshTask::startup()
task->setTaskQueue(_taskQueue); task->setTaskQueue(_taskQueue);
task->setLocalNode(_localNode); task->setLocalNode(_localNode);
_logger->info("Dispating bucket refresh. targetID=%s", Util::toHex(targetID, DHT_ID_LENGTH).c_str()); _logger->info("Dispating bucket refresh. targetID=%s", util::toHex(targetID, DHT_ID_LENGTH).c_str());
_taskQueue->addPeriodicTask1(task); _taskQueue->addPeriodicTask1(task);
} }
} }

View File

@ -87,7 +87,7 @@ void DHTFindNodeMessage::validate() const {}
std::string DHTFindNodeMessage::toStringOptional() const std::string DHTFindNodeMessage::toStringOptional() const
{ {
return "targetNodeID="+Util::toHex(_targetNodeID, DHT_ID_LENGTH); return "targetNodeID="+util::toHex(_targetNodeID, DHT_ID_LENGTH);
} }
} // namespace aria2 } // namespace aria2

View File

@ -103,7 +103,7 @@ void DHTFindNodeReplyMessage::setClosestKNodes(const std::deque<SharedHandle<DHT
std::string DHTFindNodeReplyMessage::toStringOptional() const std::string DHTFindNodeReplyMessage::toStringOptional() const
{ {
return "nodes="+Util::uitos(_closestKNodes.size()); return "nodes="+util::uitos(_closestKNodes.size());
} }
} // namespace aria2 } // namespace aria2

View File

@ -114,7 +114,7 @@ void DHTGetPeersMessage::setTokenTracker(const WeakHandle<DHTTokenTracker>& toke
std::string DHTGetPeersMessage::toStringOptional() const std::string DHTGetPeersMessage::toStringOptional() const
{ {
return "info_hash="+Util::toHex(_infoHash, INFO_HASH_LENGTH); return "info_hash="+util::toHex(_infoHash, INFO_HASH_LENGTH);
} }
} // namespace aria2 } // namespace aria2

View File

@ -137,9 +137,9 @@ void DHTGetPeersReplyMessage::setValues(const std::deque<SharedHandle<Peer> >& p
std::string DHTGetPeersReplyMessage::toStringOptional() const std::string DHTGetPeersReplyMessage::toStringOptional() const
{ {
return strconcat("token=", Util::toHex(_token), return strconcat("token=", util::toHex(_token),
", values=", Util::uitos(_values.size()), ", values=", util::uitos(_values.size()),
", nodes=", Util::uitos(_closestKNodes.size())); ", nodes=", util::uitos(_closestKNodes.size()));
} }
} // namespace aria2 } // namespace aria2

View File

@ -170,7 +170,7 @@ void DHTMessageFactoryImpl::validatePort(const BDE& i) const
if(!(0 < port && port < UINT16_MAX)) { if(!(0 < port && port < UINT16_MAX)) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("Malformed DHT message. Invalid port=%s", (StringFormat("Malformed DHT message. Invalid port=%s",
Util::itos(port).c_str()).str()); util::itos(port).c_str()).str());
} }
} }
@ -233,8 +233,8 @@ DHTMessageFactoryImpl::createResponseMessage(const std::string& messageType,
const BDE& e = getList(dict, DHTUnknownMessage::E); const BDE& e = getList(dict, DHTUnknownMessage::E);
if(e.size() == 2) { if(e.size() == 2) {
_logger->info("Received Error DHT message. code=%s, msg=%s", _logger->info("Received Error DHT message. code=%s, msg=%s",
Util::itos(getInteger(e, 0).i()).c_str(), util::itos(getInteger(e, 0).i()).c_str(),
Util::urlencode(getString(e, 1).s()).c_str()); util::urlencode(getString(e, 1).s()).c_str());
} else { } else {
_logger->debug("e doesn't have 2 elements."); _logger->debug("e doesn't have 2 elements.");
} }
@ -242,7 +242,7 @@ DHTMessageFactoryImpl::createResponseMessage(const std::string& messageType,
} else if(y.s() != DHTResponseMessage::R) { } else if(y.s() != DHTResponseMessage::R) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("Malformed DHT message. y != r: y=%s", (StringFormat("Malformed DHT message. y != r: y=%s",
Util::urlencode(y.s()).c_str()).str()); util::urlencode(y.s()).c_str()).str());
} }
const BDE& rDict = getDictionary(dict, DHTResponseMessage::R); const BDE& rDict = getDictionary(dict, DHTResponseMessage::R);
const BDE& id = getString(rDict, DHTMessage::ID); const BDE& id = getString(rDict, DHTMessage::ID);

View File

@ -78,7 +78,7 @@ DHTMessageTracker::messageArrived(const BDE& dict,
ipaddr.c_str(), port).str()); ipaddr.c_str(), port).str());
} }
_logger->debug("Searching tracker entry for TransactionID=%s, Remote=%s:%u", _logger->debug("Searching tracker entry for TransactionID=%s, Remote=%s:%u",
Util::toHex(tid.s()).c_str(), ipaddr.c_str(), port); util::toHex(tid.s()).c_str(), ipaddr.c_str(), port);
for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i = for(std::deque<SharedHandle<DHTMessageTrackerEntry> >::iterator i =
_entries.begin(); i != _entries.end(); ++i) { _entries.begin(); i != _entries.end(); ++i) {
if((*i)->match(tid.s(), ipaddr, port)) { if((*i)->match(tid.s(), ipaddr, port)) {
@ -93,7 +93,7 @@ DHTMessageTracker::messageArrived(const BDE& dict,
targetNode->getPort()); targetNode->getPort());
int64_t rtt = entry->getElapsedMillis(); int64_t rtt = entry->getElapsedMillis();
_logger->debug("RTT is %s", Util::itos(rtt).c_str()); _logger->debug("RTT is %s", util::itos(rtt).c_str());
message->getRemoteNode()->updateRTT(rtt); message->getRemoteNode()->updateRTT(rtt);
SharedHandle<DHTMessageCallback> callback = entry->getCallback(); SharedHandle<DHTMessageCallback> callback = entry->getCallback();
return std::pair<SharedHandle<DHTMessage>, SharedHandle<DHTMessageCallback> >(message, callback); return std::pair<SharedHandle<DHTMessage>, SharedHandle<DHTMessageCallback> >(message, callback);

View File

@ -67,9 +67,9 @@ bool DHTMessageTrackerEntry::match(const std::string& transactionID, const std::
if(_targetNode->getIPAddress() == ipaddr) { if(_targetNode->getIPAddress() == ipaddr) {
return true; return true;
} }
if(Util::endsWith(_targetNode->getIPAddress(), ipaddr)) { if(util::endsWith(_targetNode->getIPAddress(), ipaddr)) {
return _targetNode->getIPAddress() == "::ffff:"+ipaddr; return _targetNode->getIPAddress() == "::ffff:"+ipaddr;
} else if(Util::endsWith(ipaddr, _targetNode->getIPAddress())) { } else if(util::endsWith(ipaddr, _targetNode->getIPAddress())) {
return ipaddr == "::ffff:"+_targetNode->getIPAddress(); return ipaddr == "::ffff:"+_targetNode->getIPAddress();
} }
return false; return false;

View File

@ -113,10 +113,10 @@ void DHTNode::timeout()
std::string DHTNode::toString() const std::string DHTNode::toString() const
{ {
return strconcat("DHTNode ID=", Util::toHex(_id, DHT_ID_LENGTH), return strconcat("DHTNode ID=", util::toHex(_id, DHT_ID_LENGTH),
", Host=", _ipaddr, ":", Util::uitos(_port), ", Host=", _ipaddr, ":", util::uitos(_port),
", Condition=", Util::uitos(_condition), ", Condition=", util::uitos(_condition),
", RTT=", Util::uitos(_rtt)); ", RTT=", util::uitos(_rtt));
} }
void DHTNode::setID(const unsigned char* id) void DHTNode::setID(const unsigned char* id)

View File

@ -88,7 +88,7 @@ DHTPeerAnnounceStorage::addPeerAnnounce(const unsigned char* infoHash,
const std::string& ipaddr, uint16_t port) const std::string& ipaddr, uint16_t port)
{ {
_logger->debug("Adding %s:%u to peer announce list: infoHash=%s", _logger->debug("Adding %s:%u to peer announce list: infoHash=%s",
ipaddr.c_str(), port, Util::toHex(infoHash, DHT_ID_LENGTH).c_str()); ipaddr.c_str(), port, util::toHex(infoHash, DHT_ID_LENGTH).c_str());
getPeerAnnounceEntry(infoHash)->addPeerAddrEntry(PeerAddrEntry(ipaddr, port)); getPeerAnnounceEntry(infoHash)->addPeerAddrEntry(PeerAddrEntry(ipaddr, port));
} }
@ -97,7 +97,7 @@ void DHTPeerAnnounceStorage::addPeerAnnounce
(const unsigned char* infoHash, const SharedHandle<PeerStorage>& peerStorage) (const unsigned char* infoHash, const SharedHandle<PeerStorage>& peerStorage)
{ {
_logger->debug("Adding localhost to peer announce list: infoHash=%s", _logger->debug("Adding localhost to peer announce list: infoHash=%s",
Util::toHex(infoHash, DHT_ID_LENGTH).c_str()); util::toHex(infoHash, DHT_ID_LENGTH).c_str());
SharedHandle<DHTPeerAnnounceEntry> entry = SharedHandle<DHTPeerAnnounceEntry> entry =
getPeerAnnounceEntry(infoHash); getPeerAnnounceEntry(infoHash);
entry->setPeerStorage(peerStorage); entry->setPeerStorage(peerStorage);
@ -172,7 +172,7 @@ void DHTPeerAnnounceStorage::announcePeer()
SharedHandle<DHTTask> task = _taskFactory->createPeerAnnounceTask((*i)->getInfoHash()); SharedHandle<DHTTask> task = _taskFactory->createPeerAnnounceTask((*i)->getInfoHash());
_taskQueue->addPeriodicTask2(task); _taskQueue->addPeriodicTask2(task);
_logger->debug("Added 1 peer announce: infoHash=%s", _logger->debug("Added 1 peer announce: infoHash=%s",
Util::toHex((*i)->getInfoHash(), DHT_ID_LENGTH).c_str()); util::toHex((*i)->getInfoHash(), DHT_ID_LENGTH).c_str());
} }
} }
} }

View File

@ -71,7 +71,7 @@ void DHTPeerLookupTask::onReceivedInternal(const SharedHandle<DHTMessage>& messa
return; return;
} }
SharedHandle<DHTNode> remoteNode = m->getRemoteNode(); SharedHandle<DHTNode> remoteNode = m->getRemoteNode();
_tokenStorage[Util::toHex(remoteNode->getID(), DHT_ID_LENGTH)] = m->getToken(); _tokenStorage[util::toHex(remoteNode->getID(), DHT_ID_LENGTH)] = m->getToken();
_peerStorage->addPeer(m->getValues()); _peerStorage->addPeer(m->getValues());
_peers.insert(_peers.end(), m->getValues().begin(), m->getValues().end()); _peers.insert(_peers.end(), m->getValues().begin(), m->getValues().end());
@ -96,7 +96,7 @@ void DHTPeerLookupTask::onFinish()
(node, (node,
_targetID, // this is infoHash _targetID, // this is infoHash
_btRuntime->getListenPort(), _btRuntime->getListenPort(),
_tokenStorage[Util::toHex(node->getID(), DHT_ID_LENGTH)]); _tokenStorage[util::toHex(node->getID(), DHT_ID_LENGTH)]);
_dispatcher->addMessageToQueue(m); _dispatcher->addMessageToQueue(m);
} }
} }

View File

@ -70,10 +70,10 @@ bool DHTQueryMessage::isReply() const
std::string DHTQueryMessage::toString() const std::string DHTQueryMessage::toString() const
{ {
return strconcat("dht query ", getMessageType(), return strconcat("dht query ", getMessageType(),
" TransactionID=", Util::toHex(_transactionID), " TransactionID=", util::toHex(_transactionID),
" Remote:", _remoteNode->getIPAddress(), " Remote:", _remoteNode->getIPAddress(),
":", Util::uitos(_remoteNode->getPort()), ":", util::uitos(_remoteNode->getPort()),
", id=", Util::toHex(_remoteNode->getID(), DHT_ID_LENGTH), ", id=", util::toHex(_remoteNode->getID(), DHT_ID_LENGTH),
", ", toStringOptional()); ", ", toStringOptional());
} }

View File

@ -67,10 +67,10 @@ bool DHTResponseMessage::isReply() const
std::string DHTResponseMessage::toString() const std::string DHTResponseMessage::toString() const
{ {
return strconcat("dht response ", getMessageType(), return strconcat("dht response ", getMessageType(),
" TransactionID=", Util::toHex(_transactionID), " TransactionID=", util::toHex(_transactionID),
" Remote:", _remoteNode->getIPAddress(), " Remote:", _remoteNode->getIPAddress(),
":", Util::uitos(_remoteNode->getPort()), ":", util::uitos(_remoteNode->getPort()),
", id=", Util::toHex(_remoteNode->getID(), DHT_ID_LENGTH), ", id=", util::toHex(_remoteNode->getID(), DHT_ID_LENGTH),
", ", toStringOptional()); ", ", toStringOptional());
} }

View File

@ -88,8 +88,8 @@ bool DHTRoutingTable::addNode(const SharedHandle<DHTNode>& node, bool good)
return true; return true;
} else if(bucket->splitAllowed()) { } else if(bucket->splitAllowed()) {
_logger->debug("Splitting bucket. Range:%s-%s", _logger->debug("Splitting bucket. Range:%s-%s",
Util::toHex(bucket->getMinID(), DHT_ID_LENGTH).c_str(), util::toHex(bucket->getMinID(), DHT_ID_LENGTH).c_str(),
Util::toHex(bucket->getMaxID(), DHT_ID_LENGTH).c_str()); util::toHex(bucket->getMaxID(), DHT_ID_LENGTH).c_str());
SharedHandle<DHTBucket> r = bucket->split(); SharedHandle<DHTBucket> r = bucket->split();
bnode->setBucket(SharedHandle<DHTBucket>()); bnode->setBucket(SharedHandle<DHTBucket>());

View File

@ -111,7 +111,7 @@ void DHTSetup::setup(std::deque<Command*>& commands,
SharedHandle<DHTConnectionImpl> connection(new DHTConnectionImpl()); SharedHandle<DHTConnectionImpl> connection(new DHTConnectionImpl());
{ {
IntSequence seq = Util::parseIntRange(option->get(PREF_DHT_LISTEN_PORT)); IntSequence seq = util::parseIntRange(option->get(PREF_DHT_LISTEN_PORT));
uint16_t port; uint16_t port;
if(!connection->bind(port, seq)) { if(!connection->bind(port, seq)) {
throw DL_ABORT_EX("Error occurred while binding port for DHT"); throw DL_ABORT_EX("Error occurred while binding port for DHT");
@ -119,7 +119,7 @@ void DHTSetup::setup(std::deque<Command*>& commands,
localNode->setPort(port); localNode->setPort(port);
} }
_logger->debug("Initialized local node ID=%s", _logger->debug("Initialized local node ID=%s",
Util::toHex(localNode->getID(), DHT_ID_LENGTH).c_str()); util::toHex(localNode->getID(), DHT_ID_LENGTH).c_str());
SharedHandle<DHTRoutingTable> routingTable(new DHTRoutingTable(localNode)); SharedHandle<DHTRoutingTable> routingTable(new DHTRoutingTable(localNode));

View File

@ -92,9 +92,9 @@ std::string DHTUnknownMessage::toString() const
} }
std::string sample(&_data[0], &_data[sampleLength]); std::string sample(&_data[0], &_data[sampleLength]);
return strconcat("dht unknown Remote:", _ipaddr, ":", Util::uitos(_port), return strconcat("dht unknown Remote:", _ipaddr, ":", util::uitos(_port),
" length=", Util::uitos(_length), " length=", util::uitos(_length),
", first 8 bytes(hex)=", Util::toHex(sample)); ", first 8 bytes(hex)=", util::toHex(sample));
} }
} // namespace aria2 } // namespace aria2

View File

@ -79,7 +79,7 @@ DefaultBtAnnounce::~DefaultBtAnnounce() {
void DefaultBtAnnounce::generateKey() void DefaultBtAnnounce::generateKey()
{ {
key = Util::randomAlpha(8, _randomizer); key = util::randomAlpha(8, _randomizer);
} }
bool DefaultBtAnnounce::isDefaultAnnounceReady() { bool DefaultBtAnnounce::isDefaultAnnounceReady() {
@ -147,25 +147,25 @@ std::string DefaultBtAnnounce::getAnnounceUrl() {
std::string url = announceList.getAnnounce(); std::string url = announceList.getAnnounce();
url += uriHasQuery(url) ? "&" : "?"; url += uriHasQuery(url) ? "&" : "?";
url += "info_hash="; url += "info_hash=";
url += Util::torrentUrlencode(bittorrent::getInfoHash(_downloadContext), url += util::torrentUrlencode(bittorrent::getInfoHash(_downloadContext),
INFO_HASH_LENGTH); INFO_HASH_LENGTH);
url += "&peer_id="; url += "&peer_id=";
url += Util::torrentUrlencode(bittorrent::getStaticPeerId(), PEER_ID_LENGTH); url += util::torrentUrlencode(bittorrent::getStaticPeerId(), PEER_ID_LENGTH);
url += "&uploaded="; url += "&uploaded=";
url += Util::uitos(stat.getSessionUploadLength()); url += util::uitos(stat.getSessionUploadLength());
url += "&downloaded="; url += "&downloaded=";
url += Util::uitos(stat.getSessionDownloadLength()); url += util::uitos(stat.getSessionDownloadLength());
url += "&left="; url += "&left=";
url += Util::uitos(left); url += util::uitos(left);
url += "&compact=1"; url += "&compact=1";
url += "&key="; url += "&key=";
url += key; url += key;
url += "&numwant="; url += "&numwant=";
url += Util::uitos(numWant); url += util::uitos(numWant);
url += "&no_peer_id=1"; url += "&no_peer_id=1";
if(btRuntime->getListenPort() > 0) { if(btRuntime->getListenPort() > 0) {
url += "&port="; url += "&port=";
url += Util::uitos(btRuntime->getListenPort()); url += util::uitos(btRuntime->getListenPort());
} }
std::string event = announceList.getEventString(); std::string event = announceList.getEventString();
if(!event.empty()) { if(!event.empty()) {
@ -173,7 +173,7 @@ std::string DefaultBtAnnounce::getAnnounceUrl() {
url += event; url += event;
} }
if(!trackerId.empty()) { if(!trackerId.empty()) {
url += "&trackerid="+Util::torrentUrlencode(trackerId); url += "&trackerid="+util::torrentUrlencode(trackerId);
} }
if(option->getAsBool(PREF_BT_REQUIRE_CRYPTO)) { if(option->getAsBool(PREF_BT_REQUIRE_CRYPTO)) {
url += "&requirecrypto=1"; url += "&requirecrypto=1";

View File

@ -230,7 +230,7 @@ void DefaultBtProgressInfoFile::load()
unsigned char versionBuf[2]; unsigned char versionBuf[2];
in.read((char*)versionBuf, sizeof(versionBuf)); in.read((char*)versionBuf, sizeof(versionBuf));
CHECK_STREAM(in, sizeof(versionBuf)); CHECK_STREAM(in, sizeof(versionBuf));
std::string versionHex = Util::toHex(versionBuf, sizeof(versionBuf)); std::string versionHex = util::toHex(versionBuf, sizeof(versionBuf));
int version; int version;
if(DefaultBtProgressInfoFile::V0000 == versionHex) { if(DefaultBtProgressInfoFile::V0000 == versionHex) {
version = 0; version = 0;
@ -273,8 +273,8 @@ void DefaultBtProgressInfoFile::load()
memcmp(savedInfoHash, infoHash, INFO_HASH_LENGTH) != 0) { memcmp(savedInfoHash, infoHash, INFO_HASH_LENGTH) != 0) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("info hash mismatch. expected: %s, actual: %s", (StringFormat("info hash mismatch. expected: %s, actual: %s",
Util::toHex(infoHash, INFO_HASH_LENGTH).c_str(), util::toHex(infoHash, INFO_HASH_LENGTH).c_str(),
Util::toHex(savedInfoHash, infoHashLength).c_str() util::toHex(savedInfoHash, infoHashLength).c_str()
).str()); ).str());
} }
} }
@ -297,8 +297,8 @@ void DefaultBtProgressInfoFile::load()
if(totalLength != _dctx->getTotalLength()) { if(totalLength != _dctx->getTotalLength()) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("total length mismatch. expected: %s, actual: %s", (StringFormat("total length mismatch. expected: %s, actual: %s",
Util::itos(_dctx->getTotalLength()).c_str(), util::itos(_dctx->getTotalLength()).c_str(),
Util::itos(totalLength).c_str()).str()); util::itos(totalLength).c_str()).str());
} }
uint64_t uploadLength; uint64_t uploadLength;
in.read(reinterpret_cast<char*>(&uploadLength), sizeof(uploadLength)); in.read(reinterpret_cast<char*>(&uploadLength), sizeof(uploadLength));
@ -411,7 +411,7 @@ void DefaultBtProgressInfoFile::load()
" progress."); " progress.");
} }
BitfieldMan dest(_dctx->getPieceLength(), totalLength); BitfieldMan dest(_dctx->getPieceLength(), totalLength);
Util::convertBitfield(&dest, &src); util::convertBitfield(&dest, &src);
_pieceStorage->setBitfield(dest.getBitfield(), dest.getBitfieldLength()); _pieceStorage->setBitfield(dest.getBitfield(), dest.getBitfieldLength());
} }
_logger->info(MSG_LOADED_SEGMENT_FILE); _logger->info(MSG_LOADED_SEGMENT_FILE);

View File

@ -320,7 +320,7 @@ void DownloadCommand::validatePieceHash(const SharedHandle<Segment>& segment,
} else { } else {
logger->info(EX_INVALID_CHUNK_CHECKSUM, logger->info(EX_INVALID_CHUNK_CHECKSUM,
segment->getIndex(), segment->getIndex(),
Util::itos(segment->getPosition(), true).c_str(), util::itos(segment->getPosition(), true).c_str(),
expectedPieceHash.c_str(), expectedPieceHash.c_str(),
actualPieceHash.c_str()); actualPieceHash.c_str());
segment->clear(); segment->clear();

View File

@ -274,7 +274,7 @@ void DownloadEngine::poolSocket(const std::string& ipaddr,
uint16_t port, uint16_t port,
const SocketPoolEntry& entry) const SocketPoolEntry& entry)
{ {
std::string addr = strconcat(ipaddr, ":", Util::uitos(port)); std::string addr = strconcat(ipaddr, ":", util::uitos(port));
logger->info("Pool socket for %s", addr.c_str()); logger->info("Pool socket for %s", addr.c_str());
std::multimap<std::string, SocketPoolEntry>::value_type p(addr, entry); std::multimap<std::string, SocketPoolEntry>::value_type p(addr, entry);
_socketPool.insert(p); _socketPool.insert(p);
@ -353,7 +353,7 @@ std::multimap<std::string, DownloadEngine::SocketPoolEntry>::iterator
DownloadEngine::findSocketPoolEntry(const std::string& ipaddr, uint16_t port) DownloadEngine::findSocketPoolEntry(const std::string& ipaddr, uint16_t port)
{ {
std::string addr = ipaddr; std::string addr = ipaddr;
strappend(addr, ":", Util::uitos(port)); strappend(addr, ":", util::uitos(port));
std::pair<std::multimap<std::string, SocketPoolEntry>::iterator, std::pair<std::multimap<std::string, SocketPoolEntry>::iterator,
std::multimap<std::string, SocketPoolEntry>::iterator> range = std::multimap<std::string, SocketPoolEntry>::iterator> range =
_socketPool.equal_range(addr); _socketPool.equal_range(addr);

View File

@ -64,7 +64,7 @@ static void mlStartElement(void* userData, const char* name, const char** attrs)
if(*p == 0) { if(*p == 0) {
break; break;
} }
std::string value = Util::trim(*p++); std::string value = util::trim(*p++);
attrmap[name] = value; attrmap[name] = value;
} }
} }
@ -79,7 +79,7 @@ static void mlEndElement(void* userData, const char* name)
SessionData* sd = reinterpret_cast<SessionData*>(userData); SessionData* sd = reinterpret_cast<SessionData*>(userData);
std::string characters; std::string characters;
if(sd->_stm->needsCharactersBuffering()) { if(sd->_stm->needsCharactersBuffering()) {
characters = Util::trim(sd->_charactersStack.front()); characters = util::trim(sd->_charactersStack.front());
sd->_charactersStack.pop_front(); sd->_charactersStack.pop_front();
} }
sd->_stm->endElement(name, characters); sd->_stm->endElement(name, characters);

View File

@ -67,7 +67,7 @@ static void mlStartElement(void* userData, const char* name, const char** attrs)
if(*p == 0) { if(*p == 0) {
break; break;
} }
std::string value = Util::trim(*p++); std::string value = util::trim(*p++);
attrmap[name] = value; attrmap[name] = value;
} }
} }
@ -82,7 +82,7 @@ static void mlEndElement(void* userData, const char* name)
SessionData* sd = reinterpret_cast<SessionData*>(userData); SessionData* sd = reinterpret_cast<SessionData*>(userData);
std::string characters; std::string characters;
if(sd->_stm->needsCharactersBuffering()) { if(sd->_stm->needsCharactersBuffering()) {
characters = Util::trim(sd->_charactersStack.top()); characters = util::trim(sd->_charactersStack.top());
sd->_charactersStack.pop(); sd->_charactersStack.pop();
} }
sd->_stm->endElement(name, characters); sd->_stm->endElement(name, characters);

View File

@ -158,7 +158,7 @@ std::string FeatureConfig::featureSummary() const
s += ", "; s += ", ";
} }
} }
return Util::trim(s, ", "); return util::trim(s, ", ");
} }
} // namespace aria2 } // namespace aria2

View File

@ -106,13 +106,13 @@ bool File::mkdirs() {
return false; return false;
} }
std::vector<std::string> dirs; std::vector<std::string> dirs;
split(name, std::back_inserter(dirs), "/"); util::split(name, std::back_inserter(dirs), "/");
if(!dirs.size()) { if(!dirs.size()) {
return true; return true;
} }
std::string accDir; std::string accDir;
if(Util::startsWith(name, A2STR::SLASH_C)) { if(util::startsWith(name, A2STR::SLASH_C)) {
accDir = A2STR::SLASH_C; accDir = A2STR::SLASH_C;
} }
for(std::vector<std::string>::const_iterator itr = dirs.begin(); for(std::vector<std::string>::const_iterator itr = dirs.begin();

View File

@ -61,7 +61,7 @@ bool FileAllocationCommand::executeInternal()
if(_fileAllocationEntry->finished()) { if(_fileAllocationEntry->finished()) {
logger->debug(MSG_ALLOCATION_COMPLETED, logger->debug(MSG_ALLOCATION_COMPLETED,
_timer.difference(), _timer.difference(),
Util::itos(_requestGroup->getTotalLength(), true).c_str()); util::itos(_requestGroup->getTotalLength(), true).c_str());
_e->_fileAllocationMan->dropPickedEntry(); _e->_fileAllocationMan->dropPickedEntry();
std::deque<Command*> commands; std::deque<Command*> commands;

View File

@ -61,7 +61,7 @@ FileEntry::~FileEntry() {}
void FileEntry::setupDir() void FileEntry::setupDir()
{ {
Util::mkdirs(File(path).getDirname()); util::mkdirs(File(path).getDirname());
} }
FileEntry& FileEntry::operator=(const FileEntry& entry) FileEntry& FileEntry::operator=(const FileEntry& entry)

View File

@ -51,7 +51,7 @@ public:
virtual std::string decorate(unsigned int number) virtual std::string decorate(unsigned int number)
{ {
std::string s = Util::uitos(number); std::string s = util::uitos(number);
while(s.size() < _width) { while(s.size() < _width) {
s.insert(0, "0"); s.insert(0, "0");
} }

View File

@ -139,7 +139,7 @@ bool FtpConnection::sendCwd()
if(_baseWorkingDir != "/") { if(_baseWorkingDir != "/") {
request += _baseWorkingDir; request += _baseWorkingDir;
} }
request += Util::urldecode(req->getDir()); request += util::urldecode(req->getDir());
request += "\r\n"; request += "\r\n";
logger->info(MSG_SENDING_REQUEST, cuid, request.c_str()); logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
_socketBuffer.feedSendBuffer(request); _socketBuffer.feedSendBuffer(request);
@ -152,7 +152,7 @@ bool FtpConnection::sendMdtm()
{ {
if(_socketBuffer.sendBufferIsEmpty()) { if(_socketBuffer.sendBufferIsEmpty()) {
std::string request = "MDTM "; std::string request = "MDTM ";
request += Util::urlencode(req->getFile()); request += util::urlencode(req->getFile());
request += "\r\n"; request += "\r\n";
logger->info(MSG_SENDING_REQUEST, cuid, request.c_str()); logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
_socketBuffer.feedSendBuffer(request); _socketBuffer.feedSendBuffer(request);
@ -165,7 +165,7 @@ bool FtpConnection::sendSize()
{ {
if(_socketBuffer.sendBufferIsEmpty()) { if(_socketBuffer.sendBufferIsEmpty()) {
std::string request = "SIZE "; std::string request = "SIZE ";
request += Util::urldecode(req->getFile()); request += util::urldecode(req->getFile());
request += "\r\n"; request += "\r\n";
logger->info(MSG_SENDING_REQUEST, cuid, request.c_str()); logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
_socketBuffer.feedSendBuffer(request); _socketBuffer.feedSendBuffer(request);
@ -204,17 +204,17 @@ bool FtpConnection::sendPort(const SharedHandle<SocketCore>& serverSocket)
&ipaddr[0], &ipaddr[1], &ipaddr[2], &ipaddr[3]); &ipaddr[0], &ipaddr[1], &ipaddr[2], &ipaddr[3]);
serverSocket->getAddrInfo(addrinfo); serverSocket->getAddrInfo(addrinfo);
std::string request = "PORT "; std::string request = "PORT ";
request += Util::uitos(ipaddr[0]); request += util::uitos(ipaddr[0]);
request += ","; request += ",";
request += Util::uitos(ipaddr[1]); request += util::uitos(ipaddr[1]);
request += ","; request += ",";
request += Util::uitos(ipaddr[2]); request += util::uitos(ipaddr[2]);
request += ","; request += ",";
request += Util::uitos(ipaddr[3]); request += util::uitos(ipaddr[3]);
request += ","; request += ",";
request += Util::uitos(addrinfo.second/256); request += util::uitos(addrinfo.second/256);
request += ","; request += ",";
request += Util::uitos(addrinfo.second%256); request += util::uitos(addrinfo.second%256);
request += "\r\n"; request += "\r\n";
logger->info(MSG_SENDING_REQUEST, cuid, request.c_str()); logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
_socketBuffer.feedSendBuffer(request); _socketBuffer.feedSendBuffer(request);
@ -230,7 +230,7 @@ bool FtpConnection::sendRest(const SegmentHandle& segment)
if(segment.isNull()) { if(segment.isNull()) {
request += "0"; request += "0";
} else { } else {
request += Util::itos(segment->getPositionToWrite()); request += util::itos(segment->getPositionToWrite());
} }
request += "\r\n"; request += "\r\n";
@ -245,7 +245,7 @@ bool FtpConnection::sendRetr()
{ {
if(_socketBuffer.sendBufferIsEmpty()) { if(_socketBuffer.sendBufferIsEmpty()) {
std::string request = "RETR "; std::string request = "RETR ";
request += Util::urldecode(req->getFile()); request += util::urldecode(req->getFile());
request += "\r\n"; request += "\r\n";
logger->info(MSG_SENDING_REQUEST, cuid, request.c_str()); logger->info(MSG_SENDING_REQUEST, cuid, request.c_str());
_socketBuffer.feedSendBuffer(request); _socketBuffer.feedSendBuffer(request);
@ -286,7 +286,7 @@ FtpConnection::findEndOfResponse(unsigned int status,
std::string::size_type p; std::string::size_type p;
std::string endPattern = A2STR::CRLF; std::string endPattern = A2STR::CRLF;
endPattern += Util::uitos(status); endPattern += util::uitos(status);
endPattern += " "; endPattern += " ";
p = buf.find(endPattern); p = buf.find(endPattern);
if(p == std::string::npos) { if(p == std::string::npos) {
@ -378,8 +378,8 @@ unsigned int FtpConnection::receiveSizeResponse(uint64_t& size)
std::pair<unsigned int, std::string> response; std::pair<unsigned int, std::string> response;
if(bulkReceiveResponse(response)) { if(bulkReceiveResponse(response)) {
if(response.first == 213) { if(response.first == 213) {
std::pair<std::string, std::string> rp = Util::split(response.second," "); std::pair<std::string, std::string> rp = util::split(response.second," ");
size = Util::parseULLInt(rp.second); size = util::parseULLInt(rp.second);
} }
return response.first; return response.first;
} else { } else {
@ -400,17 +400,17 @@ unsigned int FtpConnection::receiveMdtmResponse(Time& time)
// and included strptime doesn't parse data for this format. // and included strptime doesn't parse data for this format.
struct tm tm; struct tm tm;
memset(&tm, 0, sizeof(tm)); memset(&tm, 0, sizeof(tm));
tm.tm_sec = Util::parseInt(&buf[12]); tm.tm_sec = util::parseInt(&buf[12]);
buf[12] = '\0'; buf[12] = '\0';
tm.tm_min = Util::parseInt(&buf[10]); tm.tm_min = util::parseInt(&buf[10]);
buf[10] = '\0'; buf[10] = '\0';
tm.tm_hour = Util::parseInt(&buf[8]); tm.tm_hour = util::parseInt(&buf[8]);
buf[8] = '\0'; buf[8] = '\0';
tm.tm_mday = Util::parseInt(&buf[6]); tm.tm_mday = util::parseInt(&buf[6]);
buf[6] = '\0'; buf[6] = '\0';
tm.tm_mon = Util::parseInt(&buf[4])-1; tm.tm_mon = util::parseInt(&buf[4])-1;
buf[4] = '\0'; buf[4] = '\0';
tm.tm_year = Util::parseInt(&buf[0])-1900; tm.tm_year = util::parseInt(&buf[0])-1900;
time = Time(timegm(&tm)); time = Time(timegm(&tm));
} else { } else {
time = Time::null(); time = Time::null();
@ -435,13 +435,13 @@ unsigned int FtpConnection::receivePasvResponse(std::pair<std::string, uint16_t>
"(%u,%u,%u,%u,%u,%u).", "(%u,%u,%u,%u,%u,%u).",
&h1, &h2, &h3, &h4, &p1, &p2); &h1, &h2, &h3, &h4, &p1, &p2);
// ip address // ip address
dest.first = Util::uitos(h1); dest.first = util::uitos(h1);
dest.first += "."; dest.first += ".";
dest.first += Util::uitos(h2); dest.first += util::uitos(h2);
dest.first += "."; dest.first += ".";
dest.first += Util::uitos(h3); dest.first += util::uitos(h3);
dest.first += "."; dest.first += ".";
dest.first += Util::uitos(h4); dest.first += util::uitos(h4);
// port number // port number
dest.second = 256*p1+p2; dest.second = 256*p1+p2;
} else { } else {

View File

@ -337,7 +337,7 @@ bool FtpNegotiationCommand::onFileSizeDetermined(uint64_t totalLength)
if(getOption()->get(PREF_OUT).empty()) { if(getOption()->get(PREF_OUT).empty()) {
_fileEntry->setPath _fileEntry->setPath
(strconcat(getDownloadContext()->getDir(), (strconcat(getDownloadContext()->getDir(),
"/", Util::urldecode(req->getFile()))); "/", util::urldecode(req->getFile())));
} }
_requestGroup->preDownloadProcessing(); _requestGroup->preDownloadProcessing();
if(e->_requestGroupMan->isSameFileBeingDownloaded(_requestGroup)) { if(e->_requestGroupMan->isSameFileBeingDownloaded(_requestGroup)) {
@ -430,7 +430,7 @@ bool FtpNegotiationCommand::recvSize() {
if(size > INT64_MAX) { if(size > INT64_MAX) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(EX_TOO_LARGE_FILE, Util::uitos(size, true).c_str()).str()); (StringFormat(EX_TOO_LARGE_FILE, util::uitos(size, true).c_str()).str());
} }
if(_requestGroup->getPieceStorage().isNull()) { if(_requestGroup->getPieceStorage().isNull()) {

View File

@ -75,15 +75,15 @@ std::string HandshakeExtensionMessage::toString() const
{ {
std::string s = getExtensionName(); std::string s = getExtensionName();
if(!_clientVersion.empty()) { if(!_clientVersion.empty()) {
strappend(s, " client=", Util::urlencode(_clientVersion)); strappend(s, " client=", util::urlencode(_clientVersion));
} }
if(_tcpPort > 0) { if(_tcpPort > 0) {
strappend(s, ", tcpPort=", Util::uitos(_tcpPort)); strappend(s, ", tcpPort=", util::uitos(_tcpPort));
} }
for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin(); for(std::map<std::string, uint8_t>::const_iterator itr = _extensions.begin();
itr != _extensions.end(); ++itr) { itr != _extensions.end(); ++itr) {
const std::map<std::string, uint8_t>::value_type& vt = *itr; const std::map<std::string, uint8_t>::value_type& vt = *itr;
strappend(s, ", ", vt.first, "=", Util::uitos(vt.second)); strappend(s, ", ", vt.first, "=", util::uitos(vt.second));
} }
return s; return s;
} }
@ -126,7 +126,7 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length)
} }
HandshakeExtensionMessageHandle msg(new HandshakeExtensionMessage()); HandshakeExtensionMessageHandle msg(new HandshakeExtensionMessage());
msg->_logger->debug("Creating HandshakeExtensionMessage from %s", msg->_logger->debug("Creating HandshakeExtensionMessage from %s",
Util::urlencode(data, length).c_str()); util::urlencode(data, length).c_str());
const BDE dict = bencode::decode(data+1, length-1); const BDE dict = bencode::decode(data+1, length-1);
if(!dict.isDict()) { if(!dict.isDict()) {
throw DL_ABORT_EX("Unexpected payload format for extended message handshake"); throw DL_ABORT_EX("Unexpected payload format for extended message handshake");

View File

@ -80,9 +80,9 @@ std::string HttpConnection::eraseConfidentialInfo(const std::string& request)
while(getline(istr, line)) { while(getline(istr, line)) {
static const std::string AUTH_HEADER("Authorization: Basic"); static const std::string AUTH_HEADER("Authorization: Basic");
static const std::string PROXY_AUTH_HEADER("Proxy-Authorization: Basic"); static const std::string PROXY_AUTH_HEADER("Proxy-Authorization: Basic");
if(Util::startsWith(line, AUTH_HEADER)) { if(util::startsWith(line, AUTH_HEADER)) {
result += "Authorization: Basic ********\n"; result += "Authorization: Basic ********\n";
} else if(Util::startsWith(line, PROXY_AUTH_HEADER)) { } else if(util::startsWith(line, PROXY_AUTH_HEADER)) {
result += "Proxy-Authorization: Basic ********\n"; result += "Proxy-Authorization: Basic ********\n";
} else { } else {
strappend(result, line, "\n"); strappend(result, line, "\n");

View File

@ -85,16 +85,16 @@ const std::string HttpHeader::S401("401");
const std::string HttpHeader::S404("404"); const std::string HttpHeader::S404("404");
void HttpHeader::put(const std::string& name, const std::string& value) { void HttpHeader::put(const std::string& name, const std::string& value) {
std::multimap<std::string, std::string>::value_type vt(Util::toLower(name), value); std::multimap<std::string, std::string>::value_type vt(util::toLower(name), value);
table.insert(vt); table.insert(vt);
} }
bool HttpHeader::defined(const std::string& name) const { bool HttpHeader::defined(const std::string& name) const {
return table.count(Util::toLower(name)) >= 1; return table.count(util::toLower(name)) >= 1;
} }
const std::string& HttpHeader::getFirst(const std::string& name) const { const std::string& HttpHeader::getFirst(const std::string& name) const {
std::multimap<std::string, std::string>::const_iterator itr = table.find(Util::toLower(name)); std::multimap<std::string, std::string>::const_iterator itr = table.find(util::toLower(name));
if(itr == table.end()) { if(itr == table.end()) {
return A2STR::NIL; return A2STR::NIL;
} else { } else {
@ -105,7 +105,7 @@ const std::string& HttpHeader::getFirst(const std::string& name) const {
std::deque<std::string> HttpHeader::get(const std::string& name) const { std::deque<std::string> HttpHeader::get(const std::string& name) const {
std::deque<std::string> v; std::deque<std::string> v;
std::string n(Util::toLower(name)); std::string n(util::toLower(name));
std::multimap<std::string, std::string>::const_iterator first = std::multimap<std::string, std::string>::const_iterator first =
table.lower_bound(n); table.lower_bound(n);
@ -128,7 +128,7 @@ uint64_t HttpHeader::getFirstAsULLInt(const std::string& name) const {
if(value.empty()) { if(value.empty()) {
return 0; return 0;
} else { } else {
return Util::parseULLInt(value); return util::parseULLInt(value);
} }
} }
@ -140,7 +140,7 @@ RangeHandle HttpHeader::getRange() const
if(contentLengthStr.empty()) { if(contentLengthStr.empty()) {
return SharedHandle<Range>(new Range()); return SharedHandle<Range>(new Range());
} else { } else {
uint64_t contentLength = Util::parseULLInt(contentLengthStr); uint64_t contentLength = util::parseULLInt(contentLengthStr);
if(contentLength == 0) { if(contentLength == 0) {
return SharedHandle<Range>(new Range()); return SharedHandle<Range>(new Range());
} else { } else {
@ -154,7 +154,7 @@ RangeHandle HttpHeader::getRange() const
// but some server returns '100-199/100', omitting bytes-unit sepcifier // but some server returns '100-199/100', omitting bytes-unit sepcifier
// 'bytes'. // 'bytes'.
std::pair<std::string, std::string> splist; std::pair<std::string, std::string> splist;
Util::split(splist, rangeStr, ' '); util::split(splist, rangeStr, ' ');
if(splist.second.empty()) { if(splist.second.empty()) {
// we assume bytes-unit specifier omitted. // we assume bytes-unit specifier omitted.
byteRangeSpec = splist.first; byteRangeSpec = splist.first;
@ -163,14 +163,14 @@ RangeHandle HttpHeader::getRange() const
} }
} }
std::pair<std::string, std::string> byteRangeSpecPair; std::pair<std::string, std::string> byteRangeSpecPair;
Util::split(byteRangeSpecPair, byteRangeSpec, '/'); util::split(byteRangeSpecPair, byteRangeSpec, '/');
std::pair<std::string, std::string> byteRangeRespSpecPair; std::pair<std::string, std::string> byteRangeRespSpecPair;
Util::split(byteRangeRespSpecPair, byteRangeSpecPair.first, '-'); util::split(byteRangeRespSpecPair, byteRangeSpecPair.first, '-');
off_t startByte = Util::parseLLInt(byteRangeRespSpecPair.first); off_t startByte = util::parseLLInt(byteRangeRespSpecPair.first);
off_t endByte = Util::parseLLInt(byteRangeRespSpecPair.second); off_t endByte = util::parseLLInt(byteRangeRespSpecPair.second);
uint64_t entityLength = Util::parseULLInt(byteRangeSpecPair.second); uint64_t entityLength = util::parseULLInt(byteRangeSpecPair.second);
return SharedHandle<Range>(new Range(startByte, endByte, entityLength)); return SharedHandle<Range>(new Range(startByte, endByte, entityLength));
} }
@ -199,12 +199,12 @@ void HttpHeader::fill(std::istream& in)
{ {
std::string line; std::string line;
while(std::getline(in, line)) { while(std::getline(in, line)) {
line = Util::trim(line); line = util::trim(line);
if(line.empty()) { if(line.empty()) {
continue; continue;
} }
std::pair<std::string, std::string> hp; std::pair<std::string, std::string> hp;
Util::split(hp, line, ':'); util::split(hp, line, ':');
put(hp.first, hp.second); put(hp.first, hp.second);
} }
} }

View File

@ -126,7 +126,7 @@ SharedHandle<HttpHeader> HttpHeaderProcessor::getHttpRequestHeader()
throw DL_RETRY_EX(EX_NO_STATUS_HEADER); throw DL_RETRY_EX(EX_NO_STATUS_HEADER);
} }
std::vector<std::string> firstLine; std::vector<std::string> firstLine;
split(_buf.substr(0, delimpos), std::back_inserter(firstLine), " ", true); util::split(_buf.substr(0, delimpos), std::back_inserter(firstLine)," ",true);
if(firstLine.size() != 3) { if(firstLine.size() != 3) {
throw DL_ABORT_EX("Malformed HTTP request header."); throw DL_ABORT_EX("Malformed HTTP request header.");
} }

View File

@ -122,7 +122,7 @@ static std::string getHostText(const std::string& host, uint16_t port)
{ {
std::string hosttext = host; std::string hosttext = host;
if(!(port == 80 || port == 443)) { if(!(port == 80 || port == 443)) {
strappend(hosttext, ":", Util::uitos(port)); strappend(hosttext, ":", util::uitos(port));
} }
return hosttext; return hosttext;
} }
@ -138,7 +138,7 @@ std::string HttpRequest::createRequest()
// Insert user into URI, like ftp://USER@host/ // Insert user into URI, like ftp://USER@host/
std::string uri = getCurrentURI(); std::string uri = getCurrentURI();
assert(uri.size() >= 6); assert(uri.size() >= 6);
uri.insert(6, Util::urlencode(_authConfig->getUser())+"@"); uri.insert(6, util::urlencode(_authConfig->getUser())+"@");
requestLine += uri; requestLine += uri;
} else { } else {
requestLine += getCurrentURI(); requestLine += getCurrentURI();
@ -183,10 +183,10 @@ std::string HttpRequest::createRequest()
if(!segment.isNull() && segment->getLength() > 0 && if(!segment.isNull() && segment->getLength() > 0 &&
(request->isPipeliningEnabled() || getStartByte() > 0)) { (request->isPipeliningEnabled() || getStartByte() > 0)) {
requestLine += "Range: bytes="; requestLine += "Range: bytes=";
requestLine += Util::itos(getStartByte()); requestLine += util::itos(getStartByte());
requestLine += "-"; requestLine += "-";
if(request->isPipeliningEnabled()) { if(request->isPipeliningEnabled()) {
requestLine += Util::itos(getEndByte()); requestLine += util::itos(getEndByte());
} }
requestLine += "\r\n"; requestLine += "\r\n";
} }
@ -237,7 +237,7 @@ std::string HttpRequest::createProxyRequest() const
{ {
assert(!_proxyRequest.isNull()); assert(!_proxyRequest.isNull());
std::string hostport = getURIHost(); std::string hostport = getURIHost();
strappend(hostport, ":", Util::uitos(getPort())); strappend(hostport, ":", util::uitos(getPort()));
std::string requestLine = "CONNECT "; std::string requestLine = "CONNECT ";
strappend(requestLine, hostport, " HTTP/1.1\r\n"); strappend(requestLine, hostport, " HTTP/1.1\r\n");
@ -278,7 +278,7 @@ void HttpRequest::disableContentEncoding()
void HttpRequest::addHeader(const std::string& headersString) void HttpRequest::addHeader(const std::string& headersString)
{ {
std::vector<std::string> headers; std::vector<std::string> headers;
split(headersString, std::back_inserter(headers), "\n", true); util::split(headersString, std::back_inserter(headers), "\n", true);
_headers.insert(_headers.end(), headers.begin(), headers.end()); _headers.insert(_headers.end(), headers.begin(), headers.end());
} }

View File

@ -76,7 +76,7 @@ void HttpResponse::validateResponse() const
if(!httpHeader->defined(HttpHeader::LOCATION)) { if(!httpHeader->defined(HttpHeader::LOCATION)) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(EX_LOCATION_HEADER_REQUIRED, (StringFormat(EX_LOCATION_HEADER_REQUIRED,
Util::parseUInt(status)).str()); util::parseUInt(status)).str());
} }
} else if(!httpHeader->defined(HttpHeader::TRANSFER_ENCODING)) { } else if(!httpHeader->defined(HttpHeader::TRANSFER_ENCODING)) {
// compare the received range against the requested range // compare the received range against the requested range
@ -85,12 +85,12 @@ void HttpResponse::validateResponse() const
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat (StringFormat
(EX_INVALID_RANGE_HEADER, (EX_INVALID_RANGE_HEADER,
Util::itos(httpRequest->getStartByte(), true).c_str(), util::itos(httpRequest->getStartByte(), true).c_str(),
Util::itos(httpRequest->getEndByte(), true).c_str(), util::itos(httpRequest->getEndByte(), true).c_str(),
Util::uitos(httpRequest->getEntityLength(), true).c_str(), util::uitos(httpRequest->getEntityLength(), true).c_str(),
Util::itos(responseRange->getStartByte(), true).c_str(), util::itos(responseRange->getStartByte(), true).c_str(),
Util::itos(responseRange->getEndByte(), true).c_str(), util::itos(responseRange->getEndByte(), true).c_str(),
Util::uitos(responseRange->getEntityLength(), true).c_str()).str()); util::uitos(responseRange->getEntityLength(), true).c_str()).str());
} }
} }
} }
@ -98,10 +98,10 @@ void HttpResponse::validateResponse() const
std::string HttpResponse::determinFilename() const std::string HttpResponse::determinFilename() const
{ {
std::string contentDisposition = std::string contentDisposition =
Util::getContentDispositionFilename util::getContentDispositionFilename
(httpHeader->getFirst(HttpHeader::CONTENT_DISPOSITION)); (httpHeader->getFirst(HttpHeader::CONTENT_DISPOSITION));
if(contentDisposition.empty()) { if(contentDisposition.empty()) {
std::string file = Util::urldecode(httpRequest->getFile()); std::string file = util::urldecode(httpRequest->getFile());
if(file.empty()) { if(file.empty()) {
return "index.html"; return "index.html";
} else { } else {
@ -110,7 +110,7 @@ std::string HttpResponse::determinFilename() const
} else { } else {
logger->info(MSG_CONTENT_DISPOSITION_DETECTED, logger->info(MSG_CONTENT_DISPOSITION_DETECTED,
cuid, contentDisposition.c_str()); cuid, contentDisposition.c_str());
return Util::urldecode(contentDisposition); return util::urldecode(contentDisposition);
} }
} }
@ -219,7 +219,7 @@ std::string HttpResponse::getContentType() const
return A2STR::NIL; return A2STR::NIL;
} else { } else {
return return
Util::split(httpHeader->getFirst(HttpHeader::CONTENT_TYPE), ";").first; util::split(httpHeader->getFirst(HttpHeader::CONTENT_TYPE), ";").first;
} }
} }
@ -257,7 +257,7 @@ Time HttpResponse::getLastModifiedTime() const
bool HttpResponse::supportsPersistentConnection() const bool HttpResponse::supportsPersistentConnection() const
{ {
std::string connection = std::string connection =
Util::toLower(httpHeader->getFirst(HttpHeader::CONNECTION)); util::toLower(httpHeader->getFirst(HttpHeader::CONNECTION));
std::string version = httpHeader->getVersion(); std::string version = httpHeader->getVersion();
return return
@ -265,7 +265,7 @@ bool HttpResponse::supportsPersistentConnection() const
(version == HttpHeader::HTTP_1_1 || (version == HttpHeader::HTTP_1_1 ||
connection.find("keep-alive") != std::string::npos) && connection.find("keep-alive") != std::string::npos) &&
(!httpRequest->isProxyRequestSet() || (!httpRequest->isProxyRequestSet() ||
Util::toLower(httpHeader->getFirst("Proxy-Connection")).find("keep-alive") util::toLower(httpHeader->getFirst("Proxy-Connection")).find("keep-alive")
!= std::string::npos); != std::string::npos);
} }

View File

@ -196,8 +196,8 @@ void HttpResponseCommand::updateLastModifiedTime(const Time& lastModified)
static bool fileIsGzipped(const SharedHandle<HttpResponse>& httpResponse) static bool fileIsGzipped(const SharedHandle<HttpResponse>& httpResponse)
{ {
std::string filename = std::string filename =
Util::toLower(httpResponse->getHttpRequest()->getRequest()->getFile()); util::toLower(httpResponse->getHttpRequest()->getRequest()->getFile());
return Util::endsWith(filename, ".gz") || Util::endsWith(filename, ".tgz"); return util::endsWith(filename, ".gz") || util::endsWith(filename, ".tgz");
} }
bool HttpResponseCommand::shouldInflateContentEncoding bool HttpResponseCommand::shouldInflateContentEncoding

View File

@ -128,7 +128,7 @@ bool HttpServer::supportsPersistentConnection() const
} }
std::string connection = std::string connection =
Util::toLower(_lastRequestHeader->getFirst(HttpHeader::CONNECTION)); util::toLower(_lastRequestHeader->getFirst(HttpHeader::CONNECTION));
return connection.find(HttpHeader::CLOSE) == std::string::npos && return connection.find(HttpHeader::CLOSE) == std::string::npos &&
(_lastRequestHeader->getVersion() == HttpHeader::HTTP_1_1 || (_lastRequestHeader->getVersion() == HttpHeader::HTTP_1_1 ||
@ -148,14 +148,14 @@ void HttpServer::feedResponse(const std::string& status,
std::string header = "HTTP/1.1 "; std::string header = "HTTP/1.1 ";
strappend(header, status, "\r\n", strappend(header, status, "\r\n",
"Content-Type: ", contentType, "\r\n", "Content-Type: ", contentType, "\r\n",
"Content-Length: ", Util::uitos(text.size()), "\r\n"); "Content-Length: ", util::uitos(text.size()), "\r\n");
if(!supportsPersistentConnection()) { if(!supportsPersistentConnection()) {
header += "Connection: close\r\n"; header += "Connection: close\r\n";
} }
if(!headers.empty()) { if(!headers.empty()) {
header += headers; header += headers;
if(!Util::endsWith(headers, "\r\n")) { if(!util::endsWith(headers, "\r\n")) {
header += "\r\n"; header += "\r\n";
} }
} }
@ -188,12 +188,12 @@ bool HttpServer::authenticate()
if(authHeader.empty()) { if(authHeader.empty()) {
return false; return false;
} }
std::pair<std::string, std::string> p = Util::split(authHeader, " "); std::pair<std::string, std::string> p = util::split(authHeader, " ");
if(p.first != "Basic") { if(p.first != "Basic") {
return false; return false;
} }
std::string userpass = Base64::decode(p.second); std::string userpass = Base64::decode(p.second);
std::pair<std::string, std::string> userpassPair = Util::split(userpass, ":"); std::pair<std::string, std::string> userpassPair = util::split(userpass, ":");
return _username == userpassPair.first && _password == userpassPair.second; return _username == userpassPair.first && _password == userpassPair.second;
} }

View File

@ -113,7 +113,7 @@ bool HttpServerCommand::execute()
logger->info("Request too long. ContentLength=%s." logger->info("Request too long. ContentLength=%s."
" See --xml-rpc-max-request-size option to loose" " See --xml-rpc-max-request-size option to loose"
" this limitation.", " this limitation.",
Util::uitos(_httpServer->getContentLength()).c_str()); util::uitos(_httpServer->getContentLength()).c_str());
return true; return true;
} }
Command* command = new HttpServerBodyCommand(cuid, _httpServer, _e, Command* command = new HttpServerBodyCommand(cuid, _httpServer, _e,

View File

@ -171,7 +171,7 @@ bool HttpSkipResponseCommand::processResponse()
throw DL_ABORT_EX2(MSG_RESOURCE_NOT_FOUND, throw DL_ABORT_EX2(MSG_RESOURCE_NOT_FOUND,
downloadresultcode::RESOURCE_NOT_FOUND); downloadresultcode::RESOURCE_NOT_FOUND);
} else { } else {
throw DL_ABORT_EX(StringFormat(EX_BAD_STATUS, Util::parseUInt(_httpResponse->getResponseStatus())).str()); throw DL_ABORT_EX(StringFormat(EX_BAD_STATUS, util::parseUInt(_httpResponse->getResponseStatus())).str());
} }
} else { } else {
return prepareForRetry(0); return prepareForRetry(0);

View File

@ -62,7 +62,7 @@ size_t IndexBtMessage::getMessageLength()
std::string IndexBtMessage::toString() const std::string IndexBtMessage::toString() const
{ {
return strconcat(getName(), " index=", Util::itos(_index)); return strconcat(getName(), " index=", util::itos(_index));
} }
} // namespace aria2 } // namespace aria2

View File

@ -79,7 +79,7 @@ void IteratableChecksumValidator::validateChunk()
_ctx->digestUpdate(_buffer, length); _ctx->digestUpdate(_buffer, length);
_currentOffset += length; _currentOffset += length;
if(finished()) { if(finished()) {
std::string actualChecksum = Util::toHex((const unsigned char*)_ctx->digestFinal().c_str(), _ctx->digestLength()); std::string actualChecksum = util::toHex((const unsigned char*)_ctx->digestFinal().c_str(), _ctx->digestLength());
if(_dctx->getChecksum() == actualChecksum) { if(_dctx->getChecksum() == actualChecksum) {
_pieceStorage->markAllPiecesDone(); _pieceStorage->markAllPiecesDone();
} else { } else {
@ -109,7 +109,7 @@ void IteratableChecksumValidator::init()
{ {
#ifdef HAVE_POSIX_MEMALIGN #ifdef HAVE_POSIX_MEMALIGN
free(_buffer); free(_buffer);
_buffer = (unsigned char*)Util::allocateAlignedMemory(ALIGNMENT, BUFSIZE); _buffer = (unsigned char*)util::allocateAlignedMemory(ALIGNMENT, BUFSIZE);
#else // !HAVE_POSIX_MEMALIGN #else // !HAVE_POSIX_MEMALIGN
delete [] _buffer; delete [] _buffer;
_buffer = new unsigned char[BUFSIZE]; _buffer = new unsigned char[BUFSIZE];

View File

@ -88,7 +88,7 @@ void IteratableChunkChecksumValidator::validateChunk()
} else { } else {
_logger->info(EX_INVALID_CHUNK_CHECKSUM, _logger->info(EX_INVALID_CHUNK_CHECKSUM,
_currentIndex, _currentIndex,
Util::itos(getCurrentOffset(), true).c_str(), util::itos(getCurrentOffset(), true).c_str(),
_dctx->getPieceHashes()[_currentIndex].c_str(), _dctx->getPieceHashes()[_currentIndex].c_str(),
actualChecksum.c_str()); actualChecksum.c_str());
_bitfield->unsetBit(_currentIndex); _bitfield->unsetBit(_currentIndex);
@ -122,7 +122,7 @@ void IteratableChunkChecksumValidator::init()
{ {
#ifdef HAVE_POSIX_MEMALIGN #ifdef HAVE_POSIX_MEMALIGN
free(_buffer); free(_buffer);
_buffer = (unsigned char*)Util::allocateAlignedMemory(ALIGNMENT, BUFSIZE); _buffer = (unsigned char*)util::allocateAlignedMemory(ALIGNMENT, BUFSIZE);
#else // !HAVE_POSIX_MEMALIGN #else // !HAVE_POSIX_MEMALIGN
delete [] _buffer; delete [] _buffer;
_buffer = new unsigned char[BUFSIZE]; _buffer = new unsigned char[BUFSIZE];
@ -166,7 +166,7 @@ std::string IteratableChunkChecksumValidator::digest(off_t offset, size_t length
curoffset += r; curoffset += r;
woffset = 0; woffset = 0;
} }
return Util::toHex((const unsigned char*)_ctx->digestFinal().c_str(), _ctx->digestLength()); return util::toHex((const unsigned char*)_ctx->digestFinal().c_str(), _ctx->digestLength());
} }

View File

@ -453,7 +453,7 @@ bool MSEHandshake::receiveReceiverHashAndPadCLength
createReq23Hash(md, torrentAttrs[bittorrent::INFO_HASH].uc()); createReq23Hash(md, torrentAttrs[bittorrent::INFO_HASH].uc());
if(memcmp(md, rbufptr, sizeof(md)) == 0) { if(memcmp(md, rbufptr, sizeof(md)) == 0) {
_logger->debug("CUID#%d - info hash found: %s", _cuid, _logger->debug("CUID#%d - info hash found: %s", _cuid,
Util::toHex(torrentAttrs[bittorrent::INFO_HASH].s()).c_str()); util::toHex(torrentAttrs[bittorrent::INFO_HASH].s()).c_str());
downloadContext = *i; downloadContext = *i;
break; break;
} }
@ -577,7 +577,7 @@ void MSEHandshake::verifyVC(const unsigned char* vcbuf)
_decryptor->decrypt(vc, sizeof(vc), vcbuf, sizeof(vc)); _decryptor->decrypt(vc, sizeof(vc), vcbuf, sizeof(vc));
if(memcmp(VC, vc, sizeof(VC)) != 0) { if(memcmp(VC, vc, sizeof(VC)) != 0) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("Invalid VC: %s", Util::toHex(vc, VC_LENGTH).c_str()).str()); (StringFormat("Invalid VC: %s", util::toHex(vc, VC_LENGTH).c_str()).str());
} }
} }

View File

@ -106,7 +106,7 @@ std::string MessageDigestHelper::digest(MessageDigestContext* ctx,
ctx->digestUpdate(BUF, readLength); ctx->digestUpdate(BUF, readLength);
} }
std::string rawMD = ctx->digestFinal(); std::string rawMD = ctx->digestFinal();
return Util::toHex((const unsigned char*)rawMD.c_str(), rawMD.size()); return util::toHex((const unsigned char*)rawMD.c_str(), rawMD.size());
} }
std::string MessageDigestHelper::digest(const std::string& algo, const std::string& filename) std::string MessageDigestHelper::digest(const std::string& algo, const std::string& filename)
@ -123,7 +123,7 @@ std::string MessageDigestHelper::digest(const std::string& algo, const void* dat
ctx.digestInit(); ctx.digestInit();
ctx.digestUpdate(data, length); ctx.digestUpdate(data, length);
std::string rawMD = ctx.digestFinal(); std::string rawMD = ctx.digestFinal();
return Util::toHex((const unsigned char*)rawMD.c_str(), rawMD.size()); return util::toHex((const unsigned char*)rawMD.c_str(), rawMD.size());
} }
void MessageDigestHelper::digest(unsigned char* md, size_t mdLength, void MessageDigestHelper::digest(unsigned char* md, size_t mdLength,

View File

@ -130,7 +130,7 @@ Metalink2RequestGroup::createRequestGroup
return; return;
} }
std::deque<int32_t> selectIndexes = std::deque<int32_t> selectIndexes =
Util::parseIntRange(option->get(PREF_SELECT_FILE)).flush(); util::parseIntRange(option->get(PREF_SELECT_FILE)).flush();
bool useIndex; bool useIndex;
if(selectIndexes.size()) { if(selectIndexes.size()) {
useIndex = true; useIndex = true;
@ -143,8 +143,8 @@ Metalink2RequestGroup::createRequestGroup
SharedHandle<MetalinkEntry>& entry = *itr; SharedHandle<MetalinkEntry>& entry = *itr;
if(option->defined(PREF_METALINK_LOCATION)) { if(option->defined(PREF_METALINK_LOCATION)) {
std::deque<std::string> locations; std::deque<std::string> locations;
split(option->get(PREF_METALINK_LOCATION), std::back_inserter(locations), util::split(option->get(PREF_METALINK_LOCATION),
",", true); std::back_inserter(locations), ",", true);
entry->setLocationPreference(locations, 100); entry->setLocationPreference(locations, 100);
} }
if(option->get(PREF_METALINK_PREFERRED_PROTOCOL) != V_NONE) { if(option->get(PREF_METALINK_PREFERRED_PROTOCOL) != V_NONE) {

View File

@ -64,7 +64,7 @@ public:
AddLocationPreference(const std::deque<std::string>& locations, int preferenceToAdd): AddLocationPreference(const std::deque<std::string>& locations, int preferenceToAdd):
_locations(locations), _preferenceToAdd(preferenceToAdd) _locations(locations), _preferenceToAdd(preferenceToAdd)
{ {
std::transform(_locations.begin(), _locations.end(), _locations.begin(), Util::toUpper); std::transform(_locations.begin(), _locations.end(), _locations.begin(), util::toUpper);
std::sort(_locations.begin(), _locations.end()); std::sort(_locations.begin(), _locations.end());
} }

View File

@ -77,8 +77,8 @@ void MetalinkParserController::setFileNameOfEntry(const std::string& filename)
return; return;
} }
std::vector<std::string> elements; std::vector<std::string> elements;
split(filename, std::back_inserter(elements), "/"); util::split(filename, std::back_inserter(elements), "/");
std::string path = Util::joinPath(elements.begin(), elements.end()); std::string path = util::joinPath(elements.begin(), elements.end());
if(_tEntry->file.isNull()) { if(_tEntry->file.isNull()) {
_tEntry->file.reset(new FileEntry(path, 0, 0)); _tEntry->file.reset(new FileEntry(path, 0, 0));

View File

@ -131,7 +131,7 @@ void FileMetalinkParserState::beginElement
maxConnections = -1; maxConnections = -1;
} else { } else {
try { try {
maxConnections = Util::parseInt((*itr).second); maxConnections = util::parseInt((*itr).second);
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
maxConnections = -1; maxConnections = -1;
} }
@ -165,7 +165,7 @@ void SizeMetalinkParserState::endElement
const std::string& characters) const std::string& characters)
{ {
try { try {
stm->setFileLengthOfEntry(Util::parseLLInt(characters)); stm->setFileLengthOfEntry(util::parseLLInt(characters));
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
// current metalink specification doesn't require size element. // current metalink specification doesn't require size element.
} }
@ -245,7 +245,7 @@ void VerificationMetalinkParserState::beginElement
if(itr == attrs.end()) { if(itr == attrs.end()) {
return; return;
} else { } else {
length = Util::parseInt((*itr).second); length = util::parseInt((*itr).second);
} }
} }
std::string type; std::string type;
@ -314,7 +314,7 @@ void PiecesMetalinkParserState::beginElement
stm->cancelChunkChecksumTransaction(); stm->cancelChunkChecksumTransaction();
} else { } else {
try { try {
stm->createNewHashOfChunkChecksum(Util::parseInt((*itr).second)); stm->createNewHashOfChunkChecksum(util::parseInt((*itr).second));
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
stm->cancelChunkChecksumTransaction(); stm->cancelChunkChecksumTransaction();
} }
@ -387,7 +387,7 @@ void ResourcesMetalinkParserState::beginElement
std::map<std::string, std::string>::const_iterator itr = std::map<std::string, std::string>::const_iterator itr =
attrs.find(LOCATION); attrs.find(LOCATION);
if(itr != attrs.end()) { if(itr != attrs.end()) {
location = Util::toUpper((*itr).second); location = util::toUpper((*itr).second);
} }
} }
int preference; int preference;
@ -398,7 +398,7 @@ void ResourcesMetalinkParserState::beginElement
preference = 0; preference = 0;
} else { } else {
try { try {
preference = Util::parseInt((*itr).second); preference = util::parseInt((*itr).second);
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
preference = 0; preference = 0;
} }
@ -412,7 +412,7 @@ void ResourcesMetalinkParserState::beginElement
maxConnections = -1; maxConnections = -1;
} else { } else {
try { try {
maxConnections = Util::parseInt((*itr).second); maxConnections = util::parseInt((*itr).second);
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
maxConnections = -1; maxConnections = -1;
} }

View File

@ -271,7 +271,7 @@ void MultiDiskAdaptor::openIfNot
{ {
if(!entry->isOpen()) { if(!entry->isOpen()) {
// logger->debug("DiskWriterEntry: Cache MISS. offset=%s", // logger->debug("DiskWriterEntry: Cache MISS. offset=%s",
// Util::itos(entry->getFileEntry()->getOffset()).c_str()); // util::itos(entry->getFileEntry()->getOffset()).c_str());
size_t numOpened = _openedDiskWriterEntries.size(); size_t numOpened = _openedDiskWriterEntries.size();
(entry.get()->*open)(); (entry.get()->*open)();
@ -289,7 +289,7 @@ void MultiDiskAdaptor::openIfNot
} }
} else { } else {
// logger->debug("DiskWriterEntry: Cache HIT. offset=%s", // logger->debug("DiskWriterEntry: Cache HIT. offset=%s",
// Util::itos(entry->getFileEntry()->getOffset()).c_str()); // util::itos(entry->getFileEntry()->getOffset()).c_str());
} }
} }
@ -369,7 +369,7 @@ findFirstDiskWriterEntry(const DiskWriterEntries& diskWriterEntries, off_t offse
if(!isInRange(*first, offset)) { if(!isInRange(*first, offset)) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(EX_FILE_OFFSET_OUT_OF_RANGE, (StringFormat(EX_FILE_OFFSET_OUT_OF_RANGE,
Util::itos(offset, true).c_str()).str()); util::itos(offset, true).c_str()).str());
} }
return first; return first;
} }
@ -379,7 +379,7 @@ static void throwOnDiskWriterNotOpened(const SharedHandle<DiskWriterEntry>& e,
{ {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("DiskWriter for offset=%s, filename=%s is not opened.", (StringFormat("DiskWriter for offset=%s, filename=%s is not opened.",
Util::itos(offset).c_str(), util::itos(offset).c_str(),
e->getFilePath().c_str()).str()); e->getFilePath().c_str()).str());
} }

View File

@ -170,8 +170,8 @@ downloadresultcode::RESULT MultiUrlRequestInfo::execute()
// This is done every 1 second. At the same time, it removes finished/error // This is done every 1 second. At the same time, it removes finished/error
// RequestGroup from DownloadEngine. // RequestGroup from DownloadEngine.
Util::setGlobalSignalHandler(SIGINT, handler, 0); util::setGlobalSignalHandler(SIGINT, handler, 0);
Util::setGlobalSignalHandler(SIGTERM, handler, 0); util::setGlobalSignalHandler(SIGTERM, handler, 0);
e->run(); e->run();
@ -199,8 +199,8 @@ downloadresultcode::RESULT MultiUrlRequestInfo::execute()
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
_logger->error(EX_EXCEPTION_CAUGHT, e); _logger->error(EX_EXCEPTION_CAUGHT, e);
} }
Util::setGlobalSignalHandler(SIGINT, SIG_DFL, 0); util::setGlobalSignalHandler(SIGINT, SIG_DFL, 0);
Util::setGlobalSignalHandler(SIGTERM, SIG_DFL, 0); util::setGlobalSignalHandler(SIGTERM, SIG_DFL, 0);
return returnValue; return returnValue;
} }

View File

@ -118,7 +118,7 @@ public:
std::stringstream s; std::stringstream s;
std::copy(_tags.begin(), _tags.end(), std::copy(_tags.begin(), _tags.end(),
std::ostream_iterator<std::string>(s, ",")); std::ostream_iterator<std::string>(s, ","));
return Util::trim(s.str(), ", "); return util::trim(s.str(), ", ");
} }
virtual const std::string& getName() const virtual const std::string& getName() const

View File

@ -62,7 +62,7 @@ void NameResolver::resolve(std::deque<std::string>& resolvedAddresses,
struct addrinfo* rp; struct addrinfo* rp;
for(rp = res; rp; rp = rp->ai_next) { for(rp = res; rp; rp = rp->ai_next) {
std::pair<std::string, uint16_t> addressPort std::pair<std::string, uint16_t> addressPort
= Util::getNumericNameInfo(rp->ai_addr, rp->ai_addrlen); = util::getNumericNameInfo(rp->ai_addr, rp->ai_addrlen);
resolvedAddresses.push_back(addressPort.first); resolvedAddresses.push_back(addressPort.first);
} }
freeaddrinfo(res); freeaddrinfo(res);

View File

@ -89,11 +89,11 @@ void Netrc::parse(const std::string& path)
std::string line; std::string line;
STATE state = GET_TOKEN; STATE state = GET_TOKEN;
while(getline(f, line)) { while(getline(f, line)) {
if(Util::startsWith(line, "#")) { if(util::startsWith(line, "#")) {
continue; continue;
} }
std::vector<std::string> tokens; std::vector<std::string> tokens;
split(line, std::back_inserter(tokens), " \t", true); util::split(line, std::back_inserter(tokens), " \t", true);
for(std::vector<std::string>::const_iterator iter = tokens.begin(); for(std::vector<std::string>::const_iterator iter = tokens.begin();
iter != tokens.end(); ++iter) { iter != tokens.end(); ++iter) {
const std::string& token = *iter; const std::string& token = *iter;

View File

@ -53,12 +53,12 @@ static const std::string C_TRUE("TRUE");
static Cookie parseNsCookie(const std::string& nsCookieStr) static Cookie parseNsCookie(const std::string& nsCookieStr)
{ {
std::vector<std::string> vs; std::vector<std::string> vs;
split(nsCookieStr, std::back_inserter(vs), "\t", true); util::split(nsCookieStr, std::back_inserter(vs), "\t", true);
if(vs.size() < 6 ) { if(vs.size() < 6 ) {
return Cookie(); return Cookie();
} }
int64_t expireDate = Util::parseLLInt(vs[4]); int64_t expireDate = util::parseLLInt(vs[4]);
// TODO assuming time_t is int32_t... // TODO assuming time_t is int32_t...
if(expireDate > INT32_MAX) { if(expireDate > INT32_MAX) {
expireDate = INT32_MAX; expireDate = INT32_MAX;
@ -84,7 +84,7 @@ std::deque<Cookie> NsCookieParser::parse(const std::string& filename)
std::string line; std::string line;
std::deque<Cookie> cookies; std::deque<Cookie> cookies;
while(getline(s, line)) { while(getline(s, line)) {
if(Util::startsWith(line, A2STR::SHARP_C)) { if(util::startsWith(line, A2STR::SHARP_C)) {
continue; continue;
} }
try { try {

View File

@ -115,7 +115,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
SharedHandle<OptionHandler> op(new DefaultOptionHandler SharedHandle<OptionHandler> op(new DefaultOptionHandler
(PREF_CONF_PATH, (PREF_CONF_PATH,
TEXT_CONF_PATH, TEXT_CONF_PATH,
Util::getHomeDir()+"/.aria2/aria2.conf")); util::getHomeDir()+"/.aria2/aria2.conf"));
op->addTag(TAG_ADVANCED); op->addTag(TAG_ADVANCED);
handlers.push_back(op); handlers.push_back(op);
} }
@ -827,7 +827,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
SharedHandle<DefaultOptionHandler> op(new DefaultOptionHandler SharedHandle<DefaultOptionHandler> op(new DefaultOptionHandler
(PREF_NETRC_PATH, (PREF_NETRC_PATH,
NO_DESCRIPTION, NO_DESCRIPTION,
Util::getHomeDir()+"/.netrc", util::getHomeDir()+"/.netrc",
"/PATH/TO/NETRC")); "/PATH/TO/NETRC"));
op->hide(); op->hide();
handlers.push_back(op); handlers.push_back(op);
@ -1045,7 +1045,7 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
SharedHandle<OptionHandler> op(new DefaultOptionHandler SharedHandle<OptionHandler> op(new DefaultOptionHandler
(PREF_DHT_FILE_PATH, (PREF_DHT_FILE_PATH,
TEXT_DHT_FILE_PATH, TEXT_DHT_FILE_PATH,
Util::getHomeDir()+"/.aria2/dht.dat", util::getHomeDir()+"/.aria2/dht.dat",
"/PATH/TO/DHT_DAT")); "/PATH/TO/DHT_DAT"));
op->addTag(TAG_BITTORRENT); op->addTag(TAG_BITTORRENT);
handlers.push_back(op); handlers.push_back(op);

View File

@ -159,15 +159,15 @@ public:
virtual void parseArg(Option& option, const std::string& optarg) virtual void parseArg(Option& option, const std::string& optarg)
{ {
IntSequence seq = Util::parseIntRange(optarg); IntSequence seq = util::parseIntRange(optarg);
while(seq.hasNext()) { while(seq.hasNext()) {
int32_t v = seq.next(); int32_t v = seq.next();
if(v < _min || _max < v) { if(v < _min || _max < v) {
std::string msg = _optName; std::string msg = _optName;
strappend(msg, " ", _("must be between %s and %s.")); strappend(msg, " ", _("must be between %s and %s."));
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(msg.c_str(), Util::itos(_min).c_str(), (StringFormat(msg.c_str(), util::itos(_min).c_str(),
Util::itos(_max).c_str()).str()); util::itos(_max).c_str()).str());
} }
option.put(_optName, optarg); option.put(_optName, optarg);
} }
@ -175,7 +175,7 @@ public:
virtual std::string createPossibleValuesString() const virtual std::string createPossibleValuesString() const
{ {
return Util::itos(_min)+"-"+Util::itos(_max); return util::itos(_min)+"-"+util::itos(_max);
} }
}; };
@ -198,26 +198,26 @@ public:
virtual void parseArg(Option& option, const std::string& optarg) virtual void parseArg(Option& option, const std::string& optarg)
{ {
int64_t num = Util::parseLLInt(optarg); int64_t num = util::parseLLInt(optarg);
parseArg(option, num); parseArg(option, num);
} }
void parseArg(Option& option, int64_t number) void parseArg(Option& option, int64_t number)
{ {
if((_min == -1 || _min <= number) && (_max == -1 || number <= _max)) { if((_min == -1 || _min <= number) && (_max == -1 || number <= _max)) {
option.put(_optName, Util::itos(number)); option.put(_optName, util::itos(number));
} else { } else {
std::string msg = _optName; std::string msg = _optName;
msg += " "; msg += " ";
if(_min == -1 && _max != -1) { if(_min == -1 && _max != -1) {
msg += StringFormat(_("must be smaller than or equal to %s."), msg += StringFormat(_("must be smaller than or equal to %s."),
Util::itos(_max).c_str()).str(); util::itos(_max).c_str()).str();
} else if(_min != -1 && _max != -1) { } else if(_min != -1 && _max != -1) {
msg += StringFormat(_("must be between %s and %s."), msg += StringFormat(_("must be between %s and %s."),
Util::itos(_min).c_str(), Util::itos(_max).c_str()).str(); util::itos(_min).c_str(), util::itos(_max).c_str()).str();
} else if(_min != -1 && _max == -1) { } else if(_min != -1 && _max == -1) {
msg += StringFormat(_("must be greater than or equal to %s."), msg += StringFormat(_("must be greater than or equal to %s."),
Util::itos(_min).c_str()).str(); util::itos(_min).c_str()).str();
} else { } else {
msg += _("must be a number."); msg += _("must be a number.");
} }
@ -231,13 +231,13 @@ public:
if(_min == -1) { if(_min == -1) {
values += "*"; values += "*";
} else { } else {
values += Util::itos(_min); values += util::itos(_min);
} }
values += "-"; values += "-";
if(_max == -1) { if(_max == -1) {
values += "*"; values += "*";
} else { } else {
values += Util::itos(_max); values += util::itos(_max);
} }
return values; return values;
} }
@ -258,7 +258,7 @@ public:
virtual void parseArg(Option& option, const std::string& optarg) virtual void parseArg(Option& option, const std::string& optarg)
{ {
int64_t num = Util::getRealSize(optarg); int64_t num = util::getRealSize(optarg);
NumberOptionHandler::parseArg(option, num); NumberOptionHandler::parseArg(option, num);
} }
}; };
@ -400,7 +400,7 @@ public:
virtual void parseArg(Option& option, const std::string& optarg) virtual void parseArg(Option& option, const std::string& optarg)
{ {
// See optarg is in the fomrat of "INDEX=PATH" // See optarg is in the fomrat of "INDEX=PATH"
Util::parseIndexPath(optarg); util::parseIndexPath(optarg);
std::string value = option.get(_optName); std::string value = option.get(_optName);
strappend(value, optarg, "\n"); strappend(value, optarg, "\n");
option.put(_optName, value); option.put(_optName, value);
@ -492,7 +492,7 @@ public:
std::stringstream s; std::stringstream s;
std::copy(_validParamValues.begin(), _validParamValues.end(), std::copy(_validParamValues.begin(), _validParamValues.end(),
std::ostream_iterator<std::string>(s, ",")); std::ostream_iterator<std::string>(s, ","));
return Util::trim(s.str(), ", "); return util::trim(s.str(), ", ");
} }
}; };
@ -517,8 +517,8 @@ public:
virtual void parseArg(Option& option, const std::string& optarg) virtual void parseArg(Option& option, const std::string& optarg)
{ {
std::pair<std::string, std::string> proxy = Util::split(optarg, ":"); std::pair<std::string, std::string> proxy = util::split(optarg, ":");
int32_t port = Util::parseInt(proxy.second); int32_t port = util::parseInt(proxy.second);
if(proxy.first.empty() || proxy.second.empty() || if(proxy.first.empty() || proxy.second.empty() ||
port <= 0 || 65535 < port) { port <= 0 || 65535 < port) {
throw DL_ABORT_EX(_("unrecognized proxy format")); throw DL_ABORT_EX(_("unrecognized proxy format"));
@ -530,7 +530,7 @@ public:
void setHostAndPort(Option& option, const std::string& hostname, uint16_t port) void setHostAndPort(Option& option, const std::string& hostname, uint16_t port)
{ {
option.put(_hostOptionName, hostname); option.put(_hostOptionName, hostname);
option.put(_portOptionName, Util::uitos(port)); option.put(_portOptionName, util::uitos(port));
} }
virtual std::string createPossibleValuesString() const virtual std::string createPossibleValuesString() const
@ -556,7 +556,7 @@ public:
{ {
Request req; Request req;
std::string url; std::string url;
if(Util::startsWith(optarg, "http://")) { if(util::startsWith(optarg, "http://")) {
url = optarg; url = optarg;
} else { } else {
url = "http://"+optarg; url = "http://"+optarg;

View File

@ -163,10 +163,10 @@ void OptionParser::parse(Option& option, std::istream& is)
int32_t linenum = 0; int32_t linenum = 0;
while(getline(is, line)) { while(getline(is, line)) {
++linenum; ++linenum;
if(Util::startsWith(line, A2STR::SHARP_C)) { if(util::startsWith(line, A2STR::SHARP_C)) {
continue; continue;
} }
std::pair<std::string, std::string> nv = Util::split(line, A2STR::EQUAL_C); std::pair<std::string, std::string> nv = util::split(line, A2STR::EQUAL_C);
OptionHandlerHandle handler = getOptionHandlerByName(nv.first); OptionHandlerHandle handler = getOptionHandlerByName(nv.first);
handler->parse(option, nv.second); handler->parse(option, nv.second);
} }

View File

@ -91,8 +91,8 @@ PStringDatumHandle ParameterizedStringParser::createSelect(const std::string& sr
throw DL_ABORT_EX("Missing '}' in the parameterized string."); throw DL_ABORT_EX("Missing '}' in the parameterized string.");
} }
std::deque<std::string> values; std::deque<std::string> values;
split(src.substr(offset, rightParenIndex-offset), std::back_inserter(values), util::split(src.substr(offset, rightParenIndex-offset),
",", true); std::back_inserter(values), ",", true);
if(values.empty()) { if(values.empty()) {
throw DL_ABORT_EX("Empty {} is not allowed."); throw DL_ABORT_EX("Empty {} is not allowed.");
} }
@ -116,32 +116,32 @@ PStringDatumHandle ParameterizedStringParser::createLoop(const std::string& src,
std::string::size_type colonIndex = loopStr.find(":"); std::string::size_type colonIndex = loopStr.find(":");
if(colonIndex != std::string::npos) { if(colonIndex != std::string::npos) {
std::string stepStr = loopStr.substr(colonIndex+1); std::string stepStr = loopStr.substr(colonIndex+1);
if(Util::isNumber(stepStr)) { if(util::isNumber(stepStr)) {
step = Util::parseUInt(stepStr); step = util::parseUInt(stepStr);
} else { } else {
throw DL_ABORT_EX("A step count must be a positive number."); throw DL_ABORT_EX("A step count must be a positive number.");
} }
loopStr.erase(colonIndex); loopStr.erase(colonIndex);
} }
std::pair<std::string, std::string> range = Util::split(loopStr, "-"); std::pair<std::string, std::string> range = util::split(loopStr, "-");
if(range.first.empty() || range.second.empty()) { if(range.first.empty() || range.second.empty()) {
throw DL_ABORT_EX("Loop range missing."); throw DL_ABORT_EX("Loop range missing.");
} }
NumberDecoratorHandle nd; NumberDecoratorHandle nd;
unsigned int start; unsigned int start;
unsigned int end; unsigned int end;
if(Util::isNumber(range.first) && Util::isNumber(range.second)) { if(util::isNumber(range.first) && util::isNumber(range.second)) {
nd.reset(new FixedWidthNumberDecorator(range.first.size())); nd.reset(new FixedWidthNumberDecorator(range.first.size()));
start = Util::parseUInt(range.first); start = util::parseUInt(range.first);
end = Util::parseUInt(range.second); end = util::parseUInt(range.second);
} else if(Util::isLowercase(range.first) && Util::isLowercase(range.second)) { } else if(util::isLowercase(range.first) && util::isLowercase(range.second)) {
nd.reset(new AlphaNumberDecorator(range.first.size())); nd.reset(new AlphaNumberDecorator(range.first.size()));
start = Util::alphaToNum(range.first); start = util::alphaToNum(range.first);
end = Util::alphaToNum(range.second); end = util::alphaToNum(range.second);
} else if(Util::isUppercase(range.first) && Util::isUppercase(range.second)) { } else if(util::isUppercase(range.first) && util::isUppercase(range.second)) {
nd.reset(new AlphaNumberDecorator(range.first.size(), true)); nd.reset(new AlphaNumberDecorator(range.first.size(), true));
start = Util::alphaToNum(range.first); start = util::alphaToNum(range.first);
end = Util::alphaToNum(range.second); end = util::alphaToNum(range.second);
} else { } else {
throw DL_ABORT_EX("Invalid loop range."); throw DL_ABORT_EX("Invalid loop range.");
} }

View File

@ -60,7 +60,7 @@ Peer::Peer(std::string ipaddr, uint16_t port, bool incoming):
memset(_peerId, 0, PEER_ID_LENGTH); memset(_peerId, 0, PEER_ID_LENGTH);
resetStatus(); resetStatus();
std::string idSeed = ipaddr; std::string idSeed = ipaddr;
strappend(idSeed, ":", Util::uitos(port)); strappend(idSeed, ":", util::uitos(port));
#ifdef ENABLE_MESSAGE_DIGEST #ifdef ENABLE_MESSAGE_DIGEST
id = MessageDigestHelper::digestString(MessageDigestContext::SHA1, idSeed); id = MessageDigestHelper::digestString(MessageDigestContext::SHA1, idSeed);
#else #else

View File

@ -102,7 +102,7 @@ bool PeerReceiveHandshakeCommand::executeInternal()
if(downloadContext.isNull() || !btRuntime->ready()) { if(downloadContext.isNull() || !btRuntime->ready()) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat("Unknown info hash %s", (StringFormat("Unknown info hash %s",
Util::toHex(infoHash).c_str()).str()); util::toHex(infoHash).c_str()).str());
} }
TransferStat tstat = TransferStat tstat =
downloadContext->getOwnerRequestGroup()->calculateStat(); downloadContext->getOwnerRequestGroup()->calculateStat();

View File

@ -195,8 +195,8 @@ bool Piece::getAllMissingBlockIndexes
} }
std::string Piece::toString() const { std::string Piece::toString() const {
return strconcat("piece: index=", Util::itos(index), return strconcat("piece: index=", util::itos(index),
", length=", Util::itos(length)); ", length=", util::itos(length));
} }
void Piece::reconfigure(size_t length) void Piece::reconfigure(size_t length)
@ -256,7 +256,7 @@ std::string Piece::getHashString()
if(_mdctx.isNull()) { if(_mdctx.isNull()) {
return A2STR::NIL; return A2STR::NIL;
} else { } else {
return Util::toHex(_mdctx->digestFinal()); return util::toHex(_mdctx->digestFinal());
} }
} }

View File

@ -80,9 +80,9 @@ size_t RangeBtMessage::getMessageLength()
std::string RangeBtMessage::toString() const std::string RangeBtMessage::toString() const
{ {
return strconcat(getName(), " index=", Util::uitos(_index), return strconcat(getName(), " index=", util::uitos(_index),
", begin=", Util::uitos(_begin), ", begin=", util::uitos(_begin),
", length=", Util::uitos(_length)); ", length=", util::uitos(_length));
} }
} // namespace aria2 } // namespace aria2

View File

@ -101,7 +101,7 @@ static std::string urlencode(const std::string& src)
for(int index = src.size()-1; index >= 0; --index) { for(int index = src.size()-1; index >= 0; --index) {
const unsigned char c = result[index]; const unsigned char c = result[index];
// '/' is not urlencoded because src is expected to be a path. // '/' is not urlencoded because src is expected to be a path.
if(!Util::inRFC3986ReservedChars(c) && !Util::inRFC3986UnreservedChars(c)) { if(!util::inRFC3986ReservedChars(c) && !util::inRFC3986UnreservedChars(c)) {
if(c == '%') { if(c == '%') {
if(!isHexNumber(result[index+1]) || !isHexNumber(result[index+2])) { if(!isHexNumber(result[index+1]) || !isHexNumber(result[index+2])) {
result.replace(index, 1, "%25"); result.replace(index, 1, "%25");
@ -139,7 +139,7 @@ bool Request::redirectUrl(const std::string& url) {
if(url.find("://") == std::string::npos) { if(url.find("://") == std::string::npos) {
// rfc2616 requires absolute URI should be provided by Location header // rfc2616 requires absolute URI should be provided by Location header
// field, but some servers don't obey this rule. // field, but some servers don't obey this rule.
if(Util::startsWith(url, "/")) { if(util::startsWith(url, "/")) {
// abosulute path // abosulute path
return parseUrl(strconcat(protocol, "://", host, url)); return parseUrl(strconcat(protocol, "://", host, url));
} else { } else {
@ -190,15 +190,15 @@ bool Request::parseUrl(const std::string& url) {
if(atmarkp != std::string::npos) { if(atmarkp != std::string::npos) {
std::string authPart = hostPart.substr(0, atmarkp); std::string authPart = hostPart.substr(0, atmarkp);
std::pair<std::string, std::string> userPass = std::pair<std::string, std::string> userPass =
Util::split(authPart, A2STR::COLON_C); util::split(authPart, A2STR::COLON_C);
_username = Util::urldecode(userPass.first); _username = util::urldecode(userPass.first);
_password = Util::urldecode(userPass.second); _password = util::urldecode(userPass.second);
hostPart.erase(0, atmarkp+1); hostPart.erase(0, atmarkp+1);
} }
{ {
std::string::size_type colonpos; std::string::size_type colonpos;
// Detect IPv6 literal address in square brackets // Detect IPv6 literal address in square brackets
if(Util::startsWith(hostPart, "[")) { if(util::startsWith(hostPart, "[")) {
std::string::size_type rbracketpos = hostPart.find("]"); std::string::size_type rbracketpos = hostPart.find("]");
if(rbracketpos == std::string::npos) { if(rbracketpos == std::string::npos) {
return false; return false;
@ -215,7 +215,7 @@ bool Request::parseUrl(const std::string& url) {
port = defPort; port = defPort;
} else { } else {
try { try {
unsigned int tempPort = Util::parseUInt(hostPart.substr(colonpos+1)); unsigned int tempPort = util::parseUInt(hostPart.substr(colonpos+1));
if(65535 < tempPort) { if(65535 < tempPort) {
return false; return false;
} }

View File

@ -214,7 +214,7 @@ void RequestGroup::createInitialCommand(std::deque<Command*>& commands,
throw DOWNLOAD_FAILURE_EXCEPTION throw DOWNLOAD_FAILURE_EXCEPTION
(StringFormat (StringFormat
("InfoHash %s is already registered.", ("InfoHash %s is already registered.",
Util::toHex(torrentAttrs[bittorrent::INFO_HASH].s()).c_str()).str()); util::toHex(torrentAttrs[bittorrent::INFO_HASH].s()).c_str()).str());
} }
if(e->_requestGroupMan->isSameFileBeingDownloaded(this)) { if(e->_requestGroupMan->isSameFileBeingDownloaded(this)) {
@ -280,8 +280,8 @@ void RequestGroup::createInitialCommand(std::deque<Command*>& commands,
// truncate the file to _downloadContext->getTotalLength() // truncate the file to _downloadContext->getTotalLength()
_logger->debug("File size not match. File is opened in writable mode." _logger->debug("File size not match. File is opened in writable mode."
" Expected:%s Actual:%s", " Expected:%s Actual:%s",
Util::uitos(_downloadContext->getTotalLength()).c_str(), util::uitos(_downloadContext->getTotalLength()).c_str(),
Util::uitos(actualFileSize).c_str()); util::uitos(actualFileSize).c_str());
} }
} }
// Call Load, Save and file allocation command here // Call Load, Save and file allocation command here
@ -568,7 +568,7 @@ bool RequestGroup::tryAutoFileRenaming()
return false; return false;
} }
for(unsigned int i = 1; i < 10000; ++i) { for(unsigned int i = 1; i < 10000; ++i) {
File newfile(strconcat(filepath, ".", Util::uitos(i))); File newfile(strconcat(filepath, ".", util::uitos(i)));
File ctrlfile(newfile.getPath()+DefaultBtProgressInfoFile::getSuffix()); File ctrlfile(newfile.getPath()+DefaultBtProgressInfoFile::getSuffix());
if(!newfile.exists() || (newfile.exists() && ctrlfile.exists())) { if(!newfile.exists() || (newfile.exists() && ctrlfile.exists())) {
_downloadContext->getFirstFileEntry()->setPath(newfile.getPath()); _downloadContext->getFirstFileEntry()->setPath(newfile.getPath());
@ -666,8 +666,8 @@ void RequestGroup::validateTotalLength(uint64_t expectedTotalLength,
if(expectedTotalLength != actualTotalLength) { if(expectedTotalLength != actualTotalLength) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(EX_SIZE_MISMATCH, (StringFormat(EX_SIZE_MISMATCH,
Util::itos(expectedTotalLength, true).c_str(), util::itos(expectedTotalLength, true).c_str(),
Util::itos(actualTotalLength, true).c_str()).str()); util::itos(actualTotalLength, true).c_str()).str());
} }
} }
@ -942,8 +942,8 @@ void RequestGroup::reportDownloadFinished()
double shareRatio = ((stat.getAllTimeUploadLength()*10)/getCompletedLength())/10.0; double shareRatio = ((stat.getAllTimeUploadLength()*10)/getCompletedLength())/10.0;
_logger->notice(MSG_SHARE_RATIO_REPORT, _logger->notice(MSG_SHARE_RATIO_REPORT,
shareRatio, shareRatio,
Util::abbrevSize(stat.getAllTimeUploadLength()).c_str(), util::abbrevSize(stat.getAllTimeUploadLength()).c_str(),
Util::abbrevSize(getCompletedLength()).c_str()); util::abbrevSize(getCompletedLength()).c_str());
} }
#endif // ENABLE_BITTORRENT #endif // ENABLE_BITTORRENT
} }

View File

@ -204,7 +204,7 @@ static void executeHook(const std::string& command, int gid)
LogFactory::getInstance()->error("fork() failed." LogFactory::getInstance()->error("fork() failed."
" Cannot execute user command."); " Cannot execute user command.");
} else if(cpid == 0) { } else if(cpid == 0) {
execl(command.c_str(), command.c_str(), Util::itos(gid).c_str(), (char*)0); execl(command.c_str(), command.c_str(), util::itos(gid).c_str(), (char*)0);
perror(("Could not execute user command: "+command).c_str()); perror(("Could not execute user command: "+command).c_str());
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
@ -218,7 +218,7 @@ static void executeHook(const std::string& command, int gid)
memset(&pi, 0, sizeof (pi)); memset(&pi, 0, sizeof (pi));
std::string cmdline = command; std::string cmdline = command;
strappend(cmdline, " ", Util::itos(gid)); strappend(cmdline, " ", util::itos(gid));
DWORD rc = CreateProcess( DWORD rc = CreateProcess(
NULL, NULL,
@ -623,7 +623,7 @@ std::string RequestGroupMan::formatDownloadResult(const std::string& status, con
<< std::setw(4) << status << "|" << std::setw(4) << status << "|"
<< std::setw(11); << std::setw(11);
if(downloadResult->sessionTime > 0) { if(downloadResult->sessionTime > 0) {
o << Util::abbrevSize o << util::abbrevSize
(downloadResult->sessionDownloadLength*1000/downloadResult->sessionTime)+ (downloadResult->sessionDownloadLength*1000/downloadResult->sessionTime)+
"B/s"; "B/s";
} else { } else {

View File

@ -98,18 +98,18 @@ bool ServerStatMan::load(std::istream& in)
std::string line; std::string line;
while(getline(in, line)) { while(getline(in, line)) {
Util::trimSelf(line); util::trimSelf(line);
if(line.empty()) { if(line.empty()) {
continue; continue;
} }
std::vector<std::string> items; std::vector<std::string> items;
split(line, std::back_inserter(items), ","); util::split(line, std::back_inserter(items), ",");
std::map<std::string, std::string> m; std::map<std::string, std::string> m;
for(std::vector<std::string>::const_iterator i = items.begin(); for(std::vector<std::string>::const_iterator i = items.begin();
i != items.end(); ++i) { i != items.end(); ++i) {
std::pair<std::string, std::string> p = Util::split(*i, "="); std::pair<std::string, std::string> p = util::split(*i, "=");
Util::trimSelf(p.first); util::trimSelf(p.first);
Util::trimSelf(p.second); util::trimSelf(p.second);
m[p.first] = p.second; m[p.first] = p.second;
} }
if(m[S_HOST].empty() || m[S_PROTOCOL].empty()) { if(m[S_HOST].empty() || m[S_PROTOCOL].empty()) {
@ -117,20 +117,20 @@ bool ServerStatMan::load(std::istream& in)
} }
SharedHandle<ServerStat> sstat(new ServerStat(m[S_HOST], m[S_PROTOCOL])); SharedHandle<ServerStat> sstat(new ServerStat(m[S_HOST], m[S_PROTOCOL]));
try { try {
sstat->setDownloadSpeed(Util::parseUInt(m[S_DL_SPEED])); sstat->setDownloadSpeed(util::parseUInt(m[S_DL_SPEED]));
// Old serverstat file doesn't contains SC_AVG_SPEED // Old serverstat file doesn't contains SC_AVG_SPEED
if(m.find(S_SC_AVG_SPEED) != m.end()) { if(m.find(S_SC_AVG_SPEED) != m.end()) {
sstat->setSingleConnectionAvgSpeed(Util::parseUInt(m[S_SC_AVG_SPEED])); sstat->setSingleConnectionAvgSpeed(util::parseUInt(m[S_SC_AVG_SPEED]));
} }
// Old serverstat file doesn't contains MC_AVG_SPEED // Old serverstat file doesn't contains MC_AVG_SPEED
if(m.find(S_MC_AVG_SPEED) != m.end()) { if(m.find(S_MC_AVG_SPEED) != m.end()) {
sstat->setMultiConnectionAvgSpeed(Util::parseUInt(m[S_MC_AVG_SPEED])); sstat->setMultiConnectionAvgSpeed(util::parseUInt(m[S_MC_AVG_SPEED]));
} }
// Old serverstat file doesn't contains COUNTER_SPEED // Old serverstat file doesn't contains COUNTER_SPEED
if(m.find(S_COUNTER) != m.end()) { if(m.find(S_COUNTER) != m.end()) {
sstat->setCounter(Util::parseUInt(m[S_COUNTER])); sstat->setCounter(util::parseUInt(m[S_COUNTER]));
} }
sstat->setLastUpdated(Time(Util::parseInt(m[S_LAST_UPDATED]))); sstat->setLastUpdated(Time(util::parseInt(m[S_LAST_UPDATED])));
sstat->setStatus(m[S_STATUS]); sstat->setStatus(m[S_STATUS]);
add(sstat); add(sstat);
} catch(RecoverableException& e) { } catch(RecoverableException& e) {

View File

@ -69,7 +69,7 @@ void SimpleLogger::writeLog
writeHeader(o, datestr, logLevelLabel); writeHeader(o, datestr, logLevelLabel);
{ {
char buf[1024]; char buf[1024];
std::string body = Util::replace(msg, A2STR::CR_C, A2STR::NIL); std::string body = util::replace(msg, A2STR::CR_C, A2STR::NIL);
body += A2STR::LF_C; body += A2STR::LF_C;
if(vsnprintf(buf, sizeof(buf), body.c_str(), ap) < 0) { if(vsnprintf(buf, sizeof(buf), body.c_str(), ap) < 0) {
o << "SimpleLogger error, failed to format message.\n"; o << "SimpleLogger error, failed to format message.\n";

View File

@ -63,7 +63,7 @@ SingleFileAllocationIterator::~SingleFileAllocationIterator()
void SingleFileAllocationIterator::init() void SingleFileAllocationIterator::init()
{ {
#ifdef HAVE_POSIX_MEMALIGN #ifdef HAVE_POSIX_MEMALIGN
_buffer = (unsigned char*)Util::allocateAlignedMemory(ALIGNMENT, BUFSIZE); _buffer = (unsigned char*)util::allocateAlignedMemory(ALIGNMENT, BUFSIZE);
#else #else
_buffer = new unsigned char[BUFSIZE]; _buffer = new unsigned char[BUFSIZE];
#endif // HAVE_POSIX_MEMALIGN #endif // HAVE_POSIX_MEMALIGN

View File

@ -226,7 +226,7 @@ void SocketCore::getAddrInfo(std::pair<std::string, uint16_t>& addrinfo) const
if(getsockname(sockfd, addrp, &len) == -1) { if(getsockname(sockfd, addrp, &len) == -1) {
throw DL_ABORT_EX(StringFormat(EX_SOCKET_GET_NAME, errorMsg()).str()); throw DL_ABORT_EX(StringFormat(EX_SOCKET_GET_NAME, errorMsg()).str());
} }
addrinfo = Util::getNumericNameInfo(addrp, len); addrinfo = util::getNumericNameInfo(addrp, len);
} }
void SocketCore::getPeerInfo(std::pair<std::string, uint16_t>& peerinfo) const void SocketCore::getPeerInfo(std::pair<std::string, uint16_t>& peerinfo) const
@ -237,7 +237,7 @@ void SocketCore::getPeerInfo(std::pair<std::string, uint16_t>& peerinfo) const
if(getpeername(sockfd, addrp, &len) == -1) { if(getpeername(sockfd, addrp, &len) == -1) {
throw DL_ABORT_EX(StringFormat(EX_SOCKET_GET_NAME, errorMsg()).str()); throw DL_ABORT_EX(StringFormat(EX_SOCKET_GET_NAME, errorMsg()).str());
} }
peerinfo = Util::getNumericNameInfo(addrp, len); peerinfo = util::getNumericNameInfo(addrp, len);
} }
void SocketCore::establishConnection(const std::string& host, uint16_t port) void SocketCore::establishConnection(const std::string& host, uint16_t port)
@ -1029,7 +1029,7 @@ ssize_t SocketCore::readDataFrom(char* data, size_t len,
throw DL_RETRY_EX(StringFormat(EX_SOCKET_RECV, errorMsg()).str()); throw DL_RETRY_EX(StringFormat(EX_SOCKET_RECV, errorMsg()).str());
} }
} else { } else {
sender = Util::getNumericNameInfo(addrp, sockaddrlen); sender = util::getNumericNameInfo(addrp, sockaddrlen);
} }
return r; return r;

View File

@ -65,7 +65,7 @@ static int cookieRowMapper(void* data, int rowIndex,
char** values, char** names) char** values, char** names)
{ {
try { try {
int64_t expireDate = Util::parseLLInt(toString(values[3])); int64_t expireDate = util::parseLLInt(toString(values[3]));
// TODO assuming time_t is int32_t... // TODO assuming time_t is int32_t...
if(expireDate > INT32_MAX) { if(expireDate > INT32_MAX) {
expireDate = INT32_MAX; expireDate = INT32_MAX;

View File

@ -76,7 +76,7 @@ Time& Time::operator=(const Time& time)
bool Time::operator<(const Time& time) const bool Time::operator<(const Time& time) const
{ {
return Util::difftv(time.tv, tv) > 0; return util::difftv(time.tv, tv) > 0;
} }
void Time::reset() { void Time::reset() {
@ -99,36 +99,36 @@ bool Time::elapsed(time_t sec) const {
return true; return true;
} else if(tv.tv_sec+sec == now) { } else if(tv.tv_sec+sec == now) {
return return
Util::difftv(getCurrentTime(), tv) >= static_cast<int64_t>(sec)*1000000; util::difftv(getCurrentTime(), tv) >= static_cast<int64_t>(sec)*1000000;
} else { } else {
return false; return false;
} }
} }
bool Time::elapsedInMillis(int64_t millis) const { bool Time::elapsedInMillis(int64_t millis) const {
return Util::difftv(getCurrentTime(), tv)/1000 >= millis; return util::difftv(getCurrentTime(), tv)/1000 >= millis;
} }
bool Time::isNewer(const Time& time) const { bool Time::isNewer(const Time& time) const {
return Util::difftv(this->tv, time.tv) > 0; return util::difftv(this->tv, time.tv) > 0;
} }
time_t Time::difference() const { time_t Time::difference() const {
return Util::difftvsec(getCurrentTime(), tv); return util::difftvsec(getCurrentTime(), tv);
} }
time_t Time::difference(const struct timeval& now) const time_t Time::difference(const struct timeval& now) const
{ {
return Util::difftvsec(now, tv); return util::difftvsec(now, tv);
} }
int64_t Time::differenceInMillis() const { int64_t Time::differenceInMillis() const {
return Util::difftv(getCurrentTime(), tv)/1000; return util::difftv(getCurrentTime(), tv)/1000;
} }
int64_t Time::differenceInMillis(const struct timeval& now) const int64_t Time::differenceInMillis(const struct timeval& now) const
{ {
return Util::difftv(now, tv)/1000; return util::difftv(now, tv)/1000;
} }
bool Time::isZero() const bool Time::isZero() const

View File

@ -87,8 +87,8 @@ UTPexExtensionMessage::createCompactPeerListAndFlag(const Peers& peers)
std::string UTPexExtensionMessage::toString() const std::string UTPexExtensionMessage::toString() const
{ {
return strconcat("ut_pex added=", Util::uitos(_freshPeers.size()), return strconcat("ut_pex added=", util::uitos(_freshPeers.size()),
", dropped=", Util::uitos(_droppedPeers.size())); ", dropped=", util::uitos(_droppedPeers.size()));
} }
void UTPexExtensionMessage::doReceivedAction() void UTPexExtensionMessage::doReceivedAction()

View File

@ -55,7 +55,7 @@ void UriListParser::getOptions(Option& op)
{ {
std::stringstream ss; std::stringstream ss;
while(getline(_in, _line)) { while(getline(_in, _line)) {
if(Util::startsWith(_line, " ")) { if(util::startsWith(_line, " ")) {
ss << _line << "\n"; ss << _line << "\n";
} else { } else {
break; break;
@ -73,8 +73,8 @@ void UriListParser::parseNext(std::deque<std::string>& uris, Option& op)
return; return;
} }
do { do {
if(!Util::trim(_line).empty()) { if(!util::trim(_line).empty()) {
split(_line, std::back_inserter(uris), "\t", true); util::split(_line, std::back_inserter(uris), "\t", true);
getOptions(op); getOptions(op);
return; return;
} }

View File

@ -83,16 +83,18 @@
namespace aria2 { namespace aria2 {
const std::string Util::DEFAULT_TRIM_CHARSET("\r\n\t "); namespace util {
std::string Util::trim(const std::string& src, const std::string& trimCharset) const std::string DEFAULT_TRIM_CHARSET("\r\n\t ");
std::string trim(const std::string& src, const std::string& trimCharset)
{ {
std::string temp(src); std::string temp(src);
trimSelf(temp, trimCharset); trimSelf(temp, trimCharset);
return temp; return temp;
} }
void Util::trimSelf(std::string& str, const std::string& trimCharset) void trimSelf(std::string& str, const std::string& trimCharset)
{ {
std::string::size_type first = str.find_first_not_of(trimCharset); std::string::size_type first = str.find_first_not_of(trimCharset);
if(first == std::string::npos) { if(first == std::string::npos) {
@ -104,7 +106,7 @@ void Util::trimSelf(std::string& str, const std::string& trimCharset)
} }
} }
void Util::split(std::pair<std::string, std::string>& hp, const std::string& src, char delim) void split(std::pair<std::string, std::string>& hp, const std::string& src, char delim)
{ {
hp.first = A2STR::NIL; hp.first = A2STR::NIL;
hp.second = A2STR::NIL; hp.second = A2STR::NIL;
@ -118,7 +120,7 @@ void Util::split(std::pair<std::string, std::string>& hp, const std::string& src
} }
} }
std::pair<std::string, std::string> Util::split(const std::string& src, const std::string& delims) std::pair<std::string, std::string> split(const std::string& src, const std::string& delims)
{ {
std::pair<std::string, std::string> hp; std::pair<std::string, std::string> hp;
hp.first = A2STR::NIL; hp.first = A2STR::NIL;
@ -134,7 +136,7 @@ std::pair<std::string, std::string> Util::split(const std::string& src, const st
return hp; return hp;
} }
int64_t Util::difftv(struct timeval tv1, struct timeval tv2) { int64_t difftv(struct timeval tv1, struct timeval tv2) {
if((tv1.tv_sec < tv2.tv_sec) || if((tv1.tv_sec < tv2.tv_sec) ||
((tv1.tv_sec == tv2.tv_sec) && (tv1.tv_usec < tv2.tv_usec))) { ((tv1.tv_sec == tv2.tv_sec) && (tv1.tv_usec < tv2.tv_usec))) {
return 0; return 0;
@ -143,14 +145,14 @@ int64_t Util::difftv(struct timeval tv1, struct timeval tv2) {
tv1.tv_usec-tv2.tv_usec); tv1.tv_usec-tv2.tv_usec);
} }
int32_t Util::difftvsec(struct timeval tv1, struct timeval tv2) { int32_t difftvsec(struct timeval tv1, struct timeval tv2) {
if(tv1.tv_sec < tv2.tv_sec) { if(tv1.tv_sec < tv2.tv_sec) {
return 0; return 0;
} }
return tv1.tv_sec-tv2.tv_sec; return tv1.tv_sec-tv2.tv_sec;
} }
bool Util::startsWith(const std::string& target, const std::string& part) { bool startsWith(const std::string& target, const std::string& part) {
if(target.size() < part.size()) { if(target.size() < part.size()) {
return false; return false;
} }
@ -164,7 +166,7 @@ bool Util::startsWith(const std::string& target, const std::string& part) {
} }
} }
bool Util::endsWith(const std::string& target, const std::string& part) { bool endsWith(const std::string& target, const std::string& part) {
if(target.size() < part.size()) { if(target.size() < part.size()) {
return false; return false;
} }
@ -178,7 +180,7 @@ bool Util::endsWith(const std::string& target, const std::string& part) {
} }
} }
std::string Util::replace(const std::string& target, const std::string& oldstr, const std::string& newstr) { std::string replace(const std::string& target, const std::string& oldstr, const std::string& newstr) {
if(target.empty() || oldstr.empty()) { if(target.empty() || oldstr.empty()) {
return target; return target;
} }
@ -196,7 +198,7 @@ std::string Util::replace(const std::string& target, const std::string& oldstr,
return result; return result;
} }
bool Util::inRFC3986ReservedChars(const char c) bool inRFC3986ReservedChars(const char c)
{ {
static const char reserved[] = { static const char reserved[] = {
':' , '/' , '?' , '#' , '[' , ']' , '@', ':' , '/' , '?' , '#' , '[' , ']' , '@',
@ -206,7 +208,7 @@ bool Util::inRFC3986ReservedChars(const char c)
&reserved[arrayLength(reserved)]; &reserved[arrayLength(reserved)];
} }
bool Util::inRFC3986UnreservedChars(const char c) bool inRFC3986UnreservedChars(const char c)
{ {
static const char unreserved[] = { '-', '.', '_', '~' }; static const char unreserved[] = { '-', '.', '_', '~' };
return return
@ -218,7 +220,7 @@ bool Util::inRFC3986UnreservedChars(const char c)
&unreserved[arrayLength(unreserved)]; &unreserved[arrayLength(unreserved)];
} }
std::string Util::urlencode(const unsigned char* target, size_t len) { std::string urlencode(const unsigned char* target, size_t len) {
std::string dest; std::string dest;
for(size_t i = 0; i < len; ++i) { for(size_t i = 0; i < len; ++i) {
if(!inRFC3986UnreservedChars(target[i])) { if(!inRFC3986UnreservedChars(target[i])) {
@ -230,7 +232,12 @@ std::string Util::urlencode(const unsigned char* target, size_t len) {
return dest; return dest;
} }
std::string Util::torrentUrlencode(const unsigned char* target, size_t len) { std::string urlencode(const std::string& target)
{
return urlencode((const unsigned char*)target.c_str(), target.size());
}
std::string torrentUrlencode(const unsigned char* target, size_t len) {
std::string dest; std::string dest;
for(size_t i = 0; i < len; ++i) { for(size_t i = 0; i < len; ++i) {
if(('0' <= target[i] && target[i] <= '9') || if(('0' <= target[i] && target[i] <= '9') ||
@ -244,14 +251,20 @@ std::string Util::torrentUrlencode(const unsigned char* target, size_t len) {
return dest; return dest;
} }
std::string Util::urldecode(const std::string& target) { std::string torrentUrlencode(const std::string& target)
{
return torrentUrlencode
(reinterpret_cast<const unsigned char*>(target.c_str()), target.size());
}
std::string urldecode(const std::string& target) {
std::string result; std::string result;
for(std::string::const_iterator itr = target.begin(); for(std::string::const_iterator itr = target.begin();
itr != target.end(); ++itr) { itr != target.end(); ++itr) {
if(*itr == '%') { if(*itr == '%') {
if(itr+1 != target.end() && itr+2 != target.end() && if(itr+1 != target.end() && itr+2 != target.end() &&
isxdigit(*(itr+1)) && isxdigit(*(itr+2))) { isxdigit(*(itr+1)) && isxdigit(*(itr+2))) {
result += Util::parseInt(std::string(itr+1, itr+3), 16); result += parseInt(std::string(itr+1, itr+3), 16);
itr += 2; itr += 2;
} else { } else {
result += *itr; result += *itr;
@ -263,7 +276,7 @@ std::string Util::urldecode(const std::string& target) {
return result; return result;
} }
std::string Util::toHex(const unsigned char* src, size_t len) { std::string toHex(const unsigned char* src, size_t len) {
char* temp = new char[len*2+1]; char* temp = new char[len*2+1];
for(size_t i = 0; i < len; ++i) { for(size_t i = 0; i < len; ++i) {
sprintf(temp+i*2, "%02x", src[i]); sprintf(temp+i*2, "%02x", src[i]);
@ -274,12 +287,22 @@ std::string Util::toHex(const unsigned char* src, size_t len) {
return hex; return hex;
} }
FILE* Util::openFile(const std::string& filename, const std::string& mode) { std::string toHex(const char* src, size_t len)
{
return toHex(reinterpret_cast<const unsigned char*>(src), len);
}
std::string toHex(const std::string& src)
{
return toHex(reinterpret_cast<const unsigned char*>(src.c_str()), src.size());
}
FILE* openFile(const std::string& filename, const std::string& mode) {
FILE* file = fopen(filename.c_str(), mode.c_str()); FILE* file = fopen(filename.c_str(), mode.c_str());
return file; return file;
} }
bool Util::isPowerOf(int num, int base) { bool isPowerOf(int num, int base) {
if(base <= 0) { return false; } if(base <= 0) { return false; }
if(base == 1) { return true; } if(base == 1) { return true; }
@ -292,7 +315,7 @@ bool Util::isPowerOf(int num, int base) {
return false; return false;
} }
std::string Util::secfmt(time_t sec) { std::string secfmt(time_t sec) {
std::string str; std::string str;
if(sec >= 3600) { if(sec >= 3600) {
str = itos(sec/3600); str = itos(sec/3600);
@ -325,9 +348,9 @@ int getNum(const char* buf, int offset, size_t length) {
return x; return x;
} }
int32_t Util::parseInt(const std::string& s, int32_t base) int32_t parseInt(const std::string& s, int32_t base)
{ {
std::string trimed = Util::trim(s); std::string trimed = trim(s);
if(trimed.empty()) { if(trimed.empty()) {
throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE, throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE,
"empty string").str()); "empty string").str());
@ -347,9 +370,9 @@ int32_t Util::parseInt(const std::string& s, int32_t base)
return v; return v;
} }
uint32_t Util::parseUInt(const std::string& s, int base) uint32_t parseUInt(const std::string& s, int base)
{ {
std::string trimed = Util::trim(s); std::string trimed = trim(s);
if(trimed.empty()) { if(trimed.empty()) {
throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE, throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE,
"empty string").str()); "empty string").str());
@ -372,9 +395,9 @@ uint32_t Util::parseUInt(const std::string& s, int base)
return v; return v;
} }
int64_t Util::parseLLInt(const std::string& s, int32_t base) int64_t parseLLInt(const std::string& s, int32_t base)
{ {
std::string trimed = Util::trim(s); std::string trimed = trim(s);
if(trimed.empty()) { if(trimed.empty()) {
throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE, throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE,
"empty string").str()); "empty string").str());
@ -392,9 +415,9 @@ int64_t Util::parseLLInt(const std::string& s, int32_t base)
return v; return v;
} }
uint64_t Util::parseULLInt(const std::string& s, int base) uint64_t parseULLInt(const std::string& s, int base)
{ {
std::string trimed = Util::trim(s); std::string trimed = trim(s);
if(trimed.empty()) { if(trimed.empty()) {
throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE, throw DL_ABORT_EX(StringFormat(MSG_STRING_INTEGER_CONVERSION_FAILURE,
"empty string").str()); "empty string").str());
@ -417,34 +440,34 @@ uint64_t Util::parseULLInt(const std::string& s, int base)
return v; return v;
} }
IntSequence Util::parseIntRange(const std::string& src) IntSequence parseIntRange(const std::string& src)
{ {
IntSequence::Values values; IntSequence::Values values;
std::string temp = src; std::string temp = src;
while(temp.size()) { while(temp.size()) {
std::pair<std::string, std::string> p = Util::split(temp, ","); std::pair<std::string, std::string> p = split(temp, ",");
temp = p.second; temp = p.second;
if(p.first.empty()) { if(p.first.empty()) {
continue; continue;
} }
if(p.first.find("-") == std::string::npos) { if(p.first.find("-") == std::string::npos) {
int32_t v = Util::parseInt(p.first.c_str()); int32_t v = parseInt(p.first.c_str());
values.push_back(IntSequence::Value(v, v+1)); values.push_back(IntSequence::Value(v, v+1));
} else { } else {
std::pair<std::string, std::string> vp = Util::split(p.first.c_str(), "-"); std::pair<std::string, std::string> vp = split(p.first.c_str(), "-");
if(vp.first.empty() || vp.second.empty()) { if(vp.first.empty() || vp.second.empty()) {
throw DL_ABORT_EX throw DL_ABORT_EX
(StringFormat(MSG_INCOMPLETE_RANGE, p.first.c_str()).str()); (StringFormat(MSG_INCOMPLETE_RANGE, p.first.c_str()).str());
} }
int32_t v1 = Util::parseInt(vp.first.c_str()); int32_t v1 = parseInt(vp.first.c_str());
int32_t v2 = Util::parseInt(vp.second.c_str()); int32_t v2 = parseInt(vp.second.c_str());
values.push_back(IntSequence::Value(v1, v2+1)); values.push_back(IntSequence::Value(v1, v2+1));
} }
} }
return values; return values;
} }
std::string Util::getContentDispositionFilename(const std::string& header) { std::string getContentDispositionFilename(const std::string& header) {
static const std::string keyName = "filename="; static const std::string keyName = "filename=";
std::string::size_type attributesp = header.find(keyName); std::string::size_type attributesp = header.find(keyName);
if(attributesp == std::string::npos) { if(attributesp == std::string::npos) {
@ -476,7 +499,7 @@ std::string Util::getContentDispositionFilename(const std::string& header) {
} }
} }
std::string Util::randomAlpha(size_t length, const RandomizerHandle& randomizer) { std::string randomAlpha(size_t length, const RandomizerHandle& randomizer) {
static const char *random_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; static const char *random_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
std::string str; std::string str;
for(size_t i = 0; i < length; ++i) { for(size_t i = 0; i < length; ++i) {
@ -486,19 +509,19 @@ std::string Util::randomAlpha(size_t length, const RandomizerHandle& randomizer)
return str; return str;
} }
std::string Util::toUpper(const std::string& src) { std::string toUpper(const std::string& src) {
std::string temp = src; std::string temp = src;
std::transform(temp.begin(), temp.end(), temp.begin(), ::toupper); std::transform(temp.begin(), temp.end(), temp.begin(), ::toupper);
return temp; return temp;
} }
std::string Util::toLower(const std::string& src) { std::string toLower(const std::string& src) {
std::string temp = src; std::string temp = src;
std::transform(temp.begin(), temp.end(), temp.begin(), ::tolower); std::transform(temp.begin(), temp.end(), temp.begin(), ::tolower);
return temp; return temp;
} }
bool Util::isNumbersAndDotsNotation(const std::string& name) { bool isNumbersAndDotsNotation(const std::string& name) {
struct sockaddr_in sockaddr; struct sockaddr_in sockaddr;
if(inet_aton(name.c_str(), &sockaddr.sin_addr)) { if(inet_aton(name.c_str(), &sockaddr.sin_addr)) {
return true; return true;
@ -507,7 +530,7 @@ bool Util::isNumbersAndDotsNotation(const std::string& name) {
} }
} }
void Util::setGlobalSignalHandler(int sig, void (*handler)(int), int flags) { void setGlobalSignalHandler(int sig, void (*handler)(int), int flags) {
#ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION
struct sigaction sigact; struct sigaction sigact;
sigact.sa_handler = handler; sigact.sa_handler = handler;
@ -519,7 +542,7 @@ void Util::setGlobalSignalHandler(int sig, void (*handler)(int), int flags) {
#endif // HAVE_SIGACTION #endif // HAVE_SIGACTION
} }
std::string Util::getHomeDir() std::string getHomeDir()
{ {
const char* p = getenv("HOME"); const char* p = getenv("HOME");
if(p) { if(p) {
@ -529,7 +552,7 @@ std::string Util::getHomeDir()
} }
} }
int64_t Util::getRealSize(const std::string& sizeWithUnit) int64_t getRealSize(const std::string& sizeWithUnit)
{ {
std::string::size_type p = sizeWithUnit.find_first_of("KM"); std::string::size_type p = sizeWithUnit.find_first_of("KM");
std::string size; std::string size;
@ -544,7 +567,7 @@ int64_t Util::getRealSize(const std::string& sizeWithUnit)
} }
size = sizeWithUnit.substr(0, p); size = sizeWithUnit.substr(0, p);
} }
int64_t v = Util::parseLLInt(size); int64_t v = parseLLInt(size);
if(v < 0) { if(v < 0) {
throw DL_ABORT_EX throw DL_ABORT_EX
@ -556,10 +579,10 @@ int64_t Util::getRealSize(const std::string& sizeWithUnit)
return v*mult; return v*mult;
} }
std::string Util::abbrevSize(int64_t size) std::string abbrevSize(int64_t size)
{ {
if(size < 1024) { if(size < 1024) {
return Util::itos(size, true); return itos(size, true);
} }
char units[] = { 'K', 'M' }; char units[] = { 'K', 'M' };
size_t numUnit = sizeof(units)/sizeof(char); size_t numUnit = sizeof(units)/sizeof(char);
@ -570,15 +593,15 @@ std::string Util::abbrevSize(int64_t size)
r = size&0x3ff; r = size&0x3ff;
size >>= 10; size >>= 10;
} }
std::string result = Util::itos(size, true); std::string result = itos(size, true);
result += "."; result += ".";
result += Util::itos(r*10/1024); result += itos(r*10/1024);
result += units[i]; result += units[i];
result += "i"; result += "i";
return result; return result;
} }
void Util::sleep(long seconds) { void sleep(long seconds) {
#ifdef HAVE_SLEEP #ifdef HAVE_SLEEP
::sleep(seconds); ::sleep(seconds);
#elif defined(HAVE_USLEEP) #elif defined(HAVE_USLEEP)
@ -590,7 +613,7 @@ void Util::sleep(long seconds) {
#endif #endif
} }
void Util::usleep(long microseconds) { void usleep(long microseconds) {
#ifdef HAVE_USLEEP #ifdef HAVE_USLEEP
::usleep(microseconds); ::usleep(microseconds);
#elif defined(HAVE_WINSOCK2_H) #elif defined(HAVE_WINSOCK2_H)
@ -625,7 +648,7 @@ void Util::usleep(long microseconds) {
#endif #endif
} }
bool Util::isNumber(const std::string& what) bool isNumber(const std::string& what)
{ {
if(what.empty()) { if(what.empty()) {
return false; return false;
@ -638,7 +661,7 @@ bool Util::isNumber(const std::string& what)
return true; return true;
} }
bool Util::isLowercase(const std::string& what) bool isLowercase(const std::string& what)
{ {
if(what.empty()) { if(what.empty()) {
return false; return false;
@ -651,7 +674,7 @@ bool Util::isLowercase(const std::string& what)
return true; return true;
} }
bool Util::isUppercase(const std::string& what) bool isUppercase(const std::string& what)
{ {
if(what.empty()) { if(what.empty()) {
return false; return false;
@ -664,7 +687,7 @@ bool Util::isUppercase(const std::string& what)
return true; return true;
} }
unsigned int Util::alphaToNum(const std::string& alphabets) unsigned int alphaToNum(const std::string& alphabets)
{ {
if(alphabets.empty()) { if(alphabets.empty()) {
return 0; return 0;
@ -686,7 +709,7 @@ unsigned int Util::alphaToNum(const std::string& alphabets)
return num; return num;
} }
void Util::mkdirs(const std::string& dirpath) void mkdirs(const std::string& dirpath)
{ {
File dir(dirpath); File dir(dirpath);
if(dir.isDir()) { if(dir.isDir()) {
@ -702,7 +725,7 @@ void Util::mkdirs(const std::string& dirpath)
} }
} }
void Util::convertBitfield(BitfieldMan* dest, const BitfieldMan* src) void convertBitfield(BitfieldMan* dest, const BitfieldMan* src)
{ {
size_t numBlock = dest->countBlock(); size_t numBlock = dest->countBlock();
for(size_t index = 0; index < numBlock; ++index) { for(size_t index = 0; index < numBlock; ++index) {
@ -713,7 +736,7 @@ void Util::convertBitfield(BitfieldMan* dest, const BitfieldMan* src)
} }
} }
std::string Util::toString(const BinaryStreamHandle& binaryStream) std::string toString(const BinaryStreamHandle& binaryStream)
{ {
std::stringstream strm; std::stringstream strm;
char data[2048]; char data[2048];
@ -731,7 +754,7 @@ std::string Util::toString(const BinaryStreamHandle& binaryStream)
/** /**
* In linux 2.6, alignment and size should be a multiple of 512. * In linux 2.6, alignment and size should be a multiple of 512.
*/ */
void* Util::allocateAlignedMemory(size_t alignment, size_t size) void* allocateAlignedMemory(size_t alignment, size_t size)
{ {
void* buffer; void* buffer;
int res; int res;
@ -744,7 +767,7 @@ void* Util::allocateAlignedMemory(size_t alignment, size_t size)
#endif // HAVE_POSIX_MEMALIGN #endif // HAVE_POSIX_MEMALIGN
std::pair<std::string, uint16_t> std::pair<std::string, uint16_t>
Util::getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len) getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len)
{ {
char host[NI_MAXHOST]; char host[NI_MAXHOST];
char service[NI_MAXSERV]; char service[NI_MAXSERV];
@ -757,7 +780,7 @@ Util::getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len)
return std::pair<std::string, uint16_t>(host, atoi(service)); // TODO return std::pair<std::string, uint16_t>(host, atoi(service)); // TODO
} }
std::string Util::htmlEscape(const std::string& src) std::string htmlEscape(const std::string& src)
{ {
std::string dest; std::string dest;
for(std::string::const_iterator i = src.begin(); i != src.end(); ++i) { for(std::string::const_iterator i = src.begin(); i != src.end(); ++i) {
@ -780,9 +803,9 @@ std::string Util::htmlEscape(const std::string& src)
} }
std::map<size_t, std::string>::value_type std::map<size_t, std::string>::value_type
Util::parseIndexPath(const std::string& line) parseIndexPath(const std::string& line)
{ {
std::pair<std::string, std::string> p = Util::split(line, "="); std::pair<std::string, std::string> p = split(line, "=");
size_t index = parseUInt(p.first); size_t index = parseUInt(p.first);
if(p.second.empty()) { if(p.second.empty()) {
throw DL_ABORT_EX(StringFormat("Path with index=%u is empty.", throw DL_ABORT_EX(StringFormat("Path with index=%u is empty.",
@ -791,7 +814,7 @@ Util::parseIndexPath(const std::string& line)
return std::map<size_t, std::string>::value_type(index, p.second); return std::map<size_t, std::string>::value_type(index, p.second);
} }
std::map<size_t, std::string> Util::createIndexPathMap(std::istream& i) std::map<size_t, std::string> createIndexPathMap(std::istream& i)
{ {
std::map<size_t, std::string> indexPathMap; std::map<size_t, std::string> indexPathMap;
std::string line; std::string line;
@ -801,8 +824,6 @@ std::map<size_t, std::string> Util::createIndexPathMap(std::istream& i)
return indexPathMap; return indexPathMap;
} }
namespace util {
void generateRandomData(unsigned char* data, size_t length) void generateRandomData(unsigned char* data, size_t length)
{ {
#ifdef HAVE_LIBGCRYPT #ifdef HAVE_LIBGCRYPT

View File

@ -82,17 +82,17 @@ inline uint64_t ntoh64(uint64_t x) { return byteswap64(x); }
inline uint64_t hton64(uint64_t x) { return byteswap64(x); } inline uint64_t hton64(uint64_t x) { return byteswap64(x); }
#endif // !WORDS_BIGENDIAN #endif // !WORDS_BIGENDIAN
class Util { namespace util {
public:
static void split(std::pair<std::string, std::string>& hp, void split(std::pair<std::string, std::string>& hp,
const std::string& src, char delim); const std::string& src, char delim);
static std::pair<std::string, std::string> std::pair<std::string, std::string>
split(const std::string& src, const std::string& delims); split(const std::string& src, const std::string& delims);
template<typename T> template<typename T>
static std::string uitos(T value, bool comma = false) std::string uitos(T value, bool comma = false)
{ {
std::string str; std::string str;
if(value == 0) { if(value == 0) {
str = "0"; str = "0";
@ -109,11 +109,11 @@ public:
} }
} }
return str; return str;
} }
template<typename T> template<typename T>
static std::string itos(T value, bool comma = false) std::string itos(T value, bool comma = false)
{ {
bool flag = false; bool flag = false;
if(value < 0) { if(value < 0) {
flag = true; flag = true;
@ -124,156 +124,143 @@ public:
str.insert(str.begin(), '-'); str.insert(str.begin(), '-');
} }
return str; return str;
} }
/** /**
* Computes difference in micro-seconds between tv1 and tv2, * Computes difference in micro-seconds between tv1 and tv2,
* assuming tv1 is newer than tv2. * assuming tv1 is newer than tv2.
* If tv1 is older than tv2, then this method returns 0. * If tv1 is older than tv2, then this method returns 0.
*/ */
static int64_t difftv(struct timeval tv1, struct timeval tv2); int64_t difftv(struct timeval tv1, struct timeval tv2);
static int32_t difftvsec(struct timeval tv1, struct timeval tv2); int32_t difftvsec(struct timeval tv1, struct timeval tv2);
static const std::string DEFAULT_TRIM_CHARSET; extern const std::string DEFAULT_TRIM_CHARSET;
static std::string trim(const std::string& src, std::string trim(const std::string& src,
const std::string& trimCharset = DEFAULT_TRIM_CHARSET); const std::string& trimCharset = DEFAULT_TRIM_CHARSET);
static void trimSelf(std::string& str, void trimSelf(std::string& str,
const std::string& trimCharset = DEFAULT_TRIM_CHARSET); const std::string& trimCharset = DEFAULT_TRIM_CHARSET);
static bool startsWith(const std::string& target, const std::string& part); bool startsWith(const std::string& target, const std::string& part);
static bool endsWith(const std::string& target, const std::string& part); bool endsWith(const std::string& target, const std::string& part);
static std::string replace(const std::string& target, const std::string& oldstr, const std::string& newstr); std::string replace(const std::string& target, const std::string& oldstr, const std::string& newstr);
static std::string urlencode(const unsigned char* target, size_t len); std::string urlencode(const unsigned char* target, size_t len);
static std::string urlencode(const std::string& target) std::string urlencode(const std::string& target);
{
return urlencode((const unsigned char*)target.c_str(), target.size());
}
static bool inRFC3986ReservedChars(const char c); bool inRFC3986ReservedChars(const char c);
static bool inRFC3986UnreservedChars(const char c); bool inRFC3986UnreservedChars(const char c);
static std::string urldecode(const std::string& target); std::string urldecode(const std::string& target);
static std::string torrentUrlencode(const unsigned char* target, size_t len); std::string torrentUrlencode(const unsigned char* target, size_t len);
static std::string torrentUrlencode(const std::string& target) std::string torrentUrlencode(const std::string& target);
{
return torrentUrlencode(reinterpret_cast<const unsigned char*>(target.c_str()),
target.size());
}
static std::string toHex(const unsigned char* src, size_t len); std::string toHex(const unsigned char* src, size_t len);
static std::string toHex(const char* src, size_t len) std::string toHex(const char* src, size_t len);
{
return toHex(reinterpret_cast<const unsigned char*>(src), len);
}
static std::string toHex(const std::string& src) std::string toHex(const std::string& src);
{
return toHex(reinterpret_cast<const unsigned char*>(src.c_str()), src.size());
}
static FILE* openFile(const std::string& filename, const std::string& mode); FILE* openFile(const std::string& filename, const std::string& mode);
static bool isPowerOf(int num, int base); bool isPowerOf(int num, int base);
static std::string secfmt(time_t sec); std::string secfmt(time_t sec);
static int32_t parseInt(const std::string& s, int32_t base = 10); int32_t parseInt(const std::string& s, int32_t base = 10);
static uint32_t parseUInt(const std::string& s, int base = 10); uint32_t parseUInt(const std::string& s, int base = 10);
static int64_t parseLLInt(const std::string& s, int32_t base = 10); int64_t parseLLInt(const std::string& s, int32_t base = 10);
static uint64_t parseULLInt(const std::string& s, int base = 10); uint64_t parseULLInt(const std::string& s, int base = 10);
static IntSequence parseIntRange(const std::string& src); IntSequence parseIntRange(const std::string& src);
// this function temporarily put here // this function temporarily put here
static std::string getContentDispositionFilename(const std::string& header); std::string getContentDispositionFilename(const std::string& header);
static std::string randomAlpha(size_t length, std::string randomAlpha(size_t length,
const SharedHandle<Randomizer>& randomizer); const SharedHandle<Randomizer>& randomizer);
static std::string toUpper(const std::string& src); std::string toUpper(const std::string& src);
static std::string toLower(const std::string& src); std::string toLower(const std::string& src);
static bool isNumbersAndDotsNotation(const std::string& name); bool isNumbersAndDotsNotation(const std::string& name);
static void setGlobalSignalHandler(int signal, void (*handler)(int), int flags); void setGlobalSignalHandler(int signal, void (*handler)(int), int flags);
static std::string getHomeDir(); std::string getHomeDir();
static int64_t getRealSize(const std::string& sizeWithUnit); int64_t getRealSize(const std::string& sizeWithUnit);
static std::string abbrevSize(int64_t size); std::string abbrevSize(int64_t size);
template<typename InputIterator> template<typename InputIterator>
static void toStream void toStream
(InputIterator first, InputIterator last, std::ostream& os) (InputIterator first, InputIterator last, std::ostream& os)
{ {
os << _("Files:") << "\n"; os << _("Files:") << "\n";
os << "idx|path/length" << "\n"; os << "idx|path/length" << "\n";
os << "===+===========================================================================" << "\n"; os << "===+===========================================================================" << "\n";
int32_t count = 1; int32_t count = 1;
for(; first != last; ++first, ++count) { for(; first != last; ++first, ++count) {
os << std::setw(3) << count << "|" << (*first)->getPath() << "\n"; os << std::setw(3) << count << "|" << (*first)->getPath() << "\n";
os << " |" << Util::abbrevSize((*first)->getLength()) << "B (" os << " |" << util::abbrevSize((*first)->getLength()) << "B ("
<< Util::uitos((*first)->getLength(), true) << ")\n"; << util::uitos((*first)->getLength(), true) << ")\n";
os << "---+---------------------------------------------------------------------------" << "\n"; os << "---+---------------------------------------------------------------------------" << "\n";
} }
} }
static void sleep(long seconds); void sleep(long seconds);
static void usleep(long microseconds); void usleep(long microseconds);
static bool isNumber(const std::string& what); bool isNumber(const std::string& what);
static bool isLowercase(const std::string& what); bool isLowercase(const std::string& what);
static bool isUppercase(const std::string& what); bool isUppercase(const std::string& what);
/** /**
* Converts alphabets to unsigned int, assuming alphabets as a base 26 * Converts alphabets to unsigned int, assuming alphabets as a base 26
* integer and 'a' or 'A' is 0. * integer and 'a' or 'A' is 0.
* This function assumes alphabets includes only a-z. * This function assumes alphabets includes only a-z.
* Upper case are allowed but all letters must be upper case. * Upper case are allowed but all letters must be upper case.
* If overflow occurs, returns 0. * If overflow occurs, returns 0.
*/ */
static unsigned int alphaToNum(const std::string& alphabets); unsigned int alphaToNum(const std::string& alphabets);
static void mkdirs(const std::string& dirpath); void mkdirs(const std::string& dirpath);
static void convertBitfield(BitfieldMan* dest, const BitfieldMan* src); void convertBitfield(BitfieldMan* dest, const BitfieldMan* src);
// binaryStream has to be opened before calling this function. // binaryStream has to be opened before calling this function.
static std::string toString(const SharedHandle<BinaryStream>& binaryStream); std::string toString(const SharedHandle<BinaryStream>& binaryStream);
#ifdef HAVE_POSIX_MEMALIGN #ifdef HAVE_POSIX_MEMALIGN
static void* allocateAlignedMemory(size_t alignment, size_t size); void* allocateAlignedMemory(size_t alignment, size_t size);
#endif // HAVE_POSIX_MEMALIGN #endif // HAVE_POSIX_MEMALIGN
static std::pair<std::string, uint16_t> std::pair<std::string, uint16_t>
getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len); getNumericNameInfo(const struct sockaddr* sockaddr, socklen_t len);
static std::string htmlEscape(const std::string& src); std::string htmlEscape(const std::string& src);
// Joins path element specified in [first, last). If ".." is found, // Joins path element specified in [first, last). If ".." is found,
// it eats the previous element if it exists. If "." is found, it // it eats the previous element if it exists. If "." is found, it
// is just ignored and it is not appeared in the result. // is just ignored and it is not appeared in the result.
template<typename InputIterator> template<typename InputIterator>
static std::string joinPath(InputIterator first, InputIterator last) std::string joinPath(InputIterator first, InputIterator last)
{ {
std::deque<std::string> elements; std::deque<std::string> elements;
for(;first != last; ++first) { for(;first != last; ++first) {
if(*first == "..") { if(*first == "..") {
@ -287,22 +274,21 @@ public:
} }
} }
return strjoin(elements.begin(), elements.end(), "/"); return strjoin(elements.begin(), elements.end(), "/");
} }
// Parses INDEX=PATH format string. INDEX must be an unsigned // Parses INDEX=PATH format string. INDEX must be an unsigned
// integer. // integer.
static std::map<size_t, std::string>::value_type std::map<size_t, std::string>::value_type
parseIndexPath(const std::string& line); parseIndexPath(const std::string& line);
static std::map<size_t, std::string> createIndexPathMap(std::istream& i); std::map<size_t, std::string> createIndexPathMap(std::istream& i);
};
/** /**
* Take a string src which is a deliminated list and add its elements * Take a string src which is a deliminated list and add its elements
* into result. result is stored in out. * into result. result is stored in out.
*/ */
template<typename OutputIterator> template<typename OutputIterator>
static OutputIterator split(const std::string& src, OutputIterator out, OutputIterator split(const std::string& src, OutputIterator out,
const std::string& delims, bool doTrim = false) const std::string& delims, bool doTrim = false)
{ {
std::string::size_type p = 0; std::string::size_type p = 0;
@ -311,7 +297,7 @@ static OutputIterator split(const std::string& src, OutputIterator out,
if(np == std::string::npos) { if(np == std::string::npos) {
std::string term = src.substr(p); std::string term = src.substr(p);
if(doTrim) { if(doTrim) {
term = Util::trim(term); term = util::trim(term);
} }
if(!term.empty()) { if(!term.empty()) {
*out = term; *out = term;
@ -321,7 +307,7 @@ static OutputIterator split(const std::string& src, OutputIterator out,
} }
std::string term = src.substr(p, np-p); std::string term = src.substr(p, np-p);
if(doTrim) { if(doTrim) {
term = Util::trim(term); term = util::trim(term);
} }
p = np+1; p = np+1;
if(!term.empty()) { if(!term.empty()) {
@ -332,8 +318,6 @@ static OutputIterator split(const std::string& src, OutputIterator out,
return out; return out;
} }
namespace util {
void generateRandomData(unsigned char* data, size_t length); void generateRandomData(unsigned char* data, size_t length);
} // namespace util } // namespace util

View File

@ -63,7 +63,7 @@ static void mlStartElement(void* userData, const xmlChar* name, const xmlChar**
if(*p == 0) { if(*p == 0) {
break; break;
} }
std::string value = Util::trim((const char*)*p++); std::string value = util::trim((const char*)*p++);
attrmap[name] = value; attrmap[name] = value;
} }
} }
@ -78,7 +78,7 @@ static void mlEndElement(void* userData, const xmlChar* name)
SessionData* sd = reinterpret_cast<SessionData*>(userData); SessionData* sd = reinterpret_cast<SessionData*>(userData);
std::string characters; std::string characters;
if(sd->_stm->needsCharactersBuffering()) { if(sd->_stm->needsCharactersBuffering()) {
characters = Util::trim(sd->_charactersStack.front()); characters = util::trim(sd->_charactersStack.front());
sd->_charactersStack.pop_front(); sd->_charactersStack.pop_front();
} }
sd->_stm->endElement((const char*)name, characters); sd->_stm->endElement((const char*)name, characters);

View File

@ -67,7 +67,7 @@ static void mlStartElement(void* userData, const xmlChar* name,
if(*p == 0) { if(*p == 0) {
break; break;
} }
std::string value = Util::trim((const char*)*p++); std::string value = util::trim((const char*)*p++);
attrmap[name] = value; attrmap[name] = value;
} }
} }
@ -82,7 +82,7 @@ static void mlEndElement(void* userData, const xmlChar* name)
SessionData* sd = reinterpret_cast<SessionData*>(userData); SessionData* sd = reinterpret_cast<SessionData*>(userData);
std::string characters; std::string characters;
if(sd->_stm->needsCharactersBuffering()) { if(sd->_stm->needsCharactersBuffering()) {
characters = Util::trim(sd->_charactersStack.top()); characters = util::trim(sd->_charactersStack.top());
sd->_charactersStack.pop(); sd->_charactersStack.pop();
} }
sd->_stm->endElement((const char*)name, characters); sd->_stm->endElement((const char*)name, characters);

View File

@ -82,7 +82,7 @@ static const BDE BDE_COMPLETE = BDE("complete");
static BDE createGIDResponse(int32_t gid) static BDE createGIDResponse(int32_t gid)
{ {
return BDE(Util::itos(gid)); return BDE(util::itos(gid));
} }
static BDE addRequestGroup(const SharedHandle<RequestGroup>& group, static BDE addRequestGroup(const SharedHandle<RequestGroup>& group,
@ -221,7 +221,7 @@ BDE AddMetalinkXmlRpcMethod::process
BDE gids = BDE::list(); BDE gids = BDE::list();
for(std::deque<SharedHandle<RequestGroup> >::const_iterator i = for(std::deque<SharedHandle<RequestGroup> >::const_iterator i =
result.begin(); i != result.end(); ++i) { result.begin(); i != result.end(); ++i) {
gids << BDE(Util::itos((*i)->getGID())); gids << BDE(util::itos((*i)->getGID()));
} }
return gids; return gids;
} else { } else {
@ -239,7 +239,7 @@ BDE RemoveXmlRpcMethod::process(const XmlRpcRequest& req, DownloadEngine* e)
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
SharedHandle<RequestGroup> group = e->_requestGroupMan->findRequestGroup(gid); SharedHandle<RequestGroup> group = e->_requestGroupMan->findRequestGroup(gid);
@ -265,27 +265,27 @@ BDE RemoveXmlRpcMethod::process(const XmlRpcRequest& req, DownloadEngine* e)
static void gatherProgressCommon static void gatherProgressCommon
(BDE& entryDict, const SharedHandle<RequestGroup>& group) (BDE& entryDict, const SharedHandle<RequestGroup>& group)
{ {
entryDict["gid"] = Util::itos(group->getGID()); entryDict["gid"] = util::itos(group->getGID());
// This is "filtered" total length if --select-file is used. // This is "filtered" total length if --select-file is used.
entryDict["totalLength"] = Util::uitos(group->getTotalLength()); entryDict["totalLength"] = util::uitos(group->getTotalLength());
// This is "filtered" total length if --select-file is used. // This is "filtered" total length if --select-file is used.
entryDict["completedLength"] = Util::uitos(group->getCompletedLength()); entryDict["completedLength"] = util::uitos(group->getCompletedLength());
TransferStat stat = group->calculateStat(); TransferStat stat = group->calculateStat();
entryDict["downloadSpeed"] = Util::uitos(stat.getDownloadSpeed()); entryDict["downloadSpeed"] = util::uitos(stat.getDownloadSpeed());
entryDict["uploadSpeed"] = Util::uitos(stat.getUploadSpeed()); entryDict["uploadSpeed"] = util::uitos(stat.getUploadSpeed());
entryDict["uploadLength"] = Util::uitos(stat.getAllTimeUploadLength()); entryDict["uploadLength"] = util::uitos(stat.getAllTimeUploadLength());
entryDict["connections"] = Util::uitos(group->getNumConnection()); entryDict["connections"] = util::uitos(group->getNumConnection());
SharedHandle<PieceStorage> ps = group->getPieceStorage(); SharedHandle<PieceStorage> ps = group->getPieceStorage();
if(!ps.isNull()) { if(!ps.isNull()) {
if(ps->getBitfieldLength() > 0) { if(ps->getBitfieldLength() > 0) {
entryDict["bitfield"] = Util::toHex(ps->getBitfield(), entryDict["bitfield"] = util::toHex(ps->getBitfield(),
ps->getBitfieldLength()); ps->getBitfieldLength());
} }
} }
entryDict["pieceLength"] = entryDict["pieceLength"] =
Util::uitos(group->getDownloadContext()->getPieceLength()); util::uitos(group->getDownloadContext()->getPieceLength());
entryDict["numPieces"] = entryDict["numPieces"] =
Util::uitos(group->getDownloadContext()->getNumPieces()); util::uitos(group->getDownloadContext()->getNumPieces());
} }
#ifdef ENABLE_BITTORRENT #ifdef ENABLE_BITTORRENT
@ -293,7 +293,7 @@ static void gatherProgressBitTorrent
(BDE& entryDict, const BDE& torrentAttrs, const SharedHandle<BtRegistry>& btreg) (BDE& entryDict, const BDE& torrentAttrs, const SharedHandle<BtRegistry>& btreg)
{ {
const std::string& infoHash = torrentAttrs[bittorrent::INFO_HASH].s(); const std::string& infoHash = torrentAttrs[bittorrent::INFO_HASH].s();
entryDict["infoHash"] = Util::toHex(infoHash); entryDict["infoHash"] = util::toHex(infoHash);
SharedHandle<PeerStorage> peerStorage = btreg->get(infoHash)._peerStorage; SharedHandle<PeerStorage> peerStorage = btreg->get(infoHash)._peerStorage;
assert(!peerStorage.isNull()); assert(!peerStorage.isNull());
@ -310,17 +310,17 @@ static void gatherPeer(BDE& peers, const SharedHandle<PeerStorage>& ps)
for(std::deque<SharedHandle<Peer> >::const_iterator i = for(std::deque<SharedHandle<Peer> >::const_iterator i =
activePeers.begin(); i != activePeers.end(); ++i) { activePeers.begin(); i != activePeers.end(); ++i) {
BDE peerEntry = BDE::dict(); BDE peerEntry = BDE::dict();
peerEntry["peerId"] = Util::torrentUrlencode((*i)->getPeerId(), peerEntry["peerId"] = util::torrentUrlencode((*i)->getPeerId(),
PEER_ID_LENGTH); PEER_ID_LENGTH);
peerEntry["ip"] = (*i)->ipaddr; peerEntry["ip"] = (*i)->ipaddr;
peerEntry["port"] = Util::uitos((*i)->port); peerEntry["port"] = util::uitos((*i)->port);
peerEntry["bitfield"] = Util::toHex((*i)->getBitfield(), peerEntry["bitfield"] = util::toHex((*i)->getBitfield(),
(*i)->getBitfieldLength()); (*i)->getBitfieldLength());
peerEntry["amChoking"] = (*i)->amChoking()?BDE_TRUE:BDE_FALSE; peerEntry["amChoking"] = (*i)->amChoking()?BDE_TRUE:BDE_FALSE;
peerEntry["peerChoking"] = (*i)->peerChoking()?BDE_TRUE:BDE_FALSE; peerEntry["peerChoking"] = (*i)->peerChoking()?BDE_TRUE:BDE_FALSE;
TransferStat stat = ps->getTransferStatFor(*i); TransferStat stat = ps->getTransferStatFor(*i);
peerEntry["downloadSpeed"] = Util::uitos(stat.getDownloadSpeed()); peerEntry["downloadSpeed"] = util::uitos(stat.getDownloadSpeed());
peerEntry["uploadSpeed"] = Util::uitos(stat.getUploadSpeed()); peerEntry["uploadSpeed"] = util::uitos(stat.getUploadSpeed());
peerEntry["seeder"] = (*i)->isSeeder()?BDE_TRUE:BDE_FALSE; peerEntry["seeder"] = (*i)->isSeeder()?BDE_TRUE:BDE_FALSE;
peers << peerEntry; peers << peerEntry;
} }
@ -344,8 +344,8 @@ static void gatherProgress
static void gatherStoppedDownload static void gatherStoppedDownload
(BDE& entryDict, const SharedHandle<DownloadResult>& ds) (BDE& entryDict, const SharedHandle<DownloadResult>& ds)
{ {
entryDict["gid"] = Util::itos(ds->gid); entryDict["gid"] = util::itos(ds->gid);
entryDict["errorCode"] = Util::itos(static_cast<int>(ds->result)); entryDict["errorCode"] = util::itos(static_cast<int>(ds->result));
if(ds->result == downloadresultcode::IN_PROGRESS) { if(ds->result == downloadresultcode::IN_PROGRESS) {
entryDict["status"] = BDE_REMOVED; entryDict["status"] = BDE_REMOVED;
} else if(ds->result == downloadresultcode::FINISHED) { } else if(ds->result == downloadresultcode::FINISHED) {
@ -372,10 +372,10 @@ static void createFileEntry(BDE& files, InputIterator first, InputIterator last)
size_t index = 1; size_t index = 1;
for(; first != last; ++first, ++index) { for(; first != last; ++first, ++index) {
BDE entry = BDE::dict(); BDE entry = BDE::dict();
entry["index"] = Util::uitos(index); entry["index"] = util::uitos(index);
entry["path"] = (*first)->getPath(); entry["path"] = (*first)->getPath();
entry["selected"] = (*first)->isRequested()?BDE_TRUE:BDE_FALSE; entry["selected"] = (*first)->isRequested()?BDE_TRUE:BDE_FALSE;
entry["length"] = Util::uitos((*first)->getLength()); entry["length"] = util::uitos((*first)->getLength());
files << entry; files << entry;
} }
} }
@ -390,7 +390,7 @@ BDE GetFilesXmlRpcMethod::process
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
BDE files = BDE::list(); BDE files = BDE::list();
SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid); SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid);
@ -421,7 +421,7 @@ BDE GetUrisXmlRpcMethod::process
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid); SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid);
if(group.isNull()) { if(group.isNull()) {
@ -454,7 +454,7 @@ BDE GetPeersXmlRpcMethod::process
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid); SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid);
if(group.isNull()) { if(group.isNull()) {
@ -486,7 +486,7 @@ BDE TellStatusXmlRpcMethod::process
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
SharedHandle<RequestGroup> group = e->_requestGroupMan->findRequestGroup(gid); SharedHandle<RequestGroup> group = e->_requestGroupMan->findRequestGroup(gid);
@ -585,7 +585,7 @@ BDE ChangeOptionXmlRpcMethod::process
if(params.empty() || !params[0].isString()) { if(params.empty() || !params[0].isString()) {
throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED); throw DL_ABORT_EX(MSG_GID_NOT_PROVIDED);
} }
int32_t gid = Util::parseInt(params[0].s()); int32_t gid = util::parseInt(params[0].s());
SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid); SharedHandle<RequestGroup> group = findRequestGroup(e->_requestGroupMan, gid);
if(group.isNull()) { if(group.isNull()) {

View File

@ -185,7 +185,7 @@ void IntXmlRpcRequestParserState::endElement
const std::string& characters) const std::string& characters)
{ {
try { try {
int64_t value = Util::parseLLInt(characters); int64_t value = util::parseLLInt(characters);
stm->setCurrentFrameValue(BDE(value)); stm->setCurrentFrameValue(BDE(value));
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
// nothing to do here: We just leave current frame value to BDE::none // nothing to do here: We just leave current frame value to BDE::none

Some files were not shown because too many files have changed in this diff Show More