summaryrefslogtreecommitdiff
path: root/src/FtpConnection.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-11-12 01:06:52 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-11-12 01:06:52 +0900
commit2f4393d17c7120912ad7b2b820b46124010a5a5e (patch)
tree78c0e632175fc4c9b61d08c62b46a905cb4c853d /src/FtpConnection.cc
parent226480ad605cb9f7c4b5dbb0167f3fd67c8672ce (diff)
Rewritten parse*Int
Diffstat (limited to 'src/FtpConnection.cc')
-rw-r--r--src/FtpConnection.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/FtpConnection.cc b/src/FtpConnection.cc
index 30638fa2..de11fb51 100644
--- a/src/FtpConnection.cc
+++ b/src/FtpConnection.cc
@@ -427,7 +427,7 @@ unsigned int FtpConnection::receiveSizeResponse(uint64_t& size)
if(response.first == 213) {
std::pair<Sip, Sip> rp;
util::divide(rp, response.second.begin(), response.second.end(), ' ');
- size = util::parseULLInt(rp.second.first, rp.second.second);
+ size = util::parseULLInt(std::string(rp.second.first, rp.second.second));
}
return response.first;
} else {
@@ -448,12 +448,12 @@ unsigned int FtpConnection::receiveMdtmResponse(Time& time)
// and included strptime doesn't parse data for this format.
struct tm tm;
memset(&tm, 0, sizeof(tm));
- tm.tm_sec = util::parseInt(&buf[12], &buf[14]);
- tm.tm_min = util::parseInt(&buf[10], &buf[12]);
- tm.tm_hour = util::parseInt(&buf[8], &buf[10]);
- tm.tm_mday = util::parseInt(&buf[6], &buf[8]);
- tm.tm_mon = util::parseInt(&buf[4], &buf[6])-1;
- tm.tm_year = util::parseInt(&buf[0], &buf[4])-1900;
+ tm.tm_sec = util::parseInt(std::string(&buf[12], &buf[14]));
+ tm.tm_min = util::parseInt(std::string(&buf[10], &buf[12]));
+ tm.tm_hour = util::parseInt(std::string(&buf[8], &buf[10]));
+ tm.tm_mday = util::parseInt(std::string(&buf[6], &buf[8]));
+ tm.tm_mon = util::parseInt(std::string(&buf[4], &buf[6]))-1;
+ tm.tm_year = util::parseInt(std::string(&buf[0], &buf[4]))-1900;
time = Time(timegm(&tm));
} else {
time = Time::null();
@@ -483,7 +483,8 @@ unsigned int FtpConnection::receiveEpsvResponse(uint16_t& port)
std::back_inserter(rd), '|', true, true);
uint32_t portTemp = 0;
if(rd.size() == 5 &&
- util::parseUIntNoThrow(portTemp, rd[3].first, rd[3].second)) {
+ util::parseUIntNoThrow(portTemp,
+ std::string(rd[3].first, rd[3].second))) {
if(0 < portTemp && portTemp <= UINT16_MAX) {
port = portTemp;
}