summaryrefslogtreecommitdiffstats
path: root/net/ftp/ftp_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/ftp/ftp_util.cc')
-rw-r--r--net/ftp/ftp_util.cc24
1 files changed, 16 insertions, 8 deletions
diff --git a/net/ftp/ftp_util.cc b/net/ftp/ftp_util.cc
index 269a063..aeb2355 100644
--- a/net/ftp/ftp_util.cc
+++ b/net/ftp/ftp_util.cc
@@ -160,15 +160,23 @@ bool FtpUtil::LsDateListingToTime(const string16& month, const string16& day,
return false;
if (!base::StringToInt(rest, &time_exploded.year)) {
- // Maybe it's time. Does it look like time (MM:HH)?
- if (rest.length() != 5 || rest[2] != ':')
- return false;
-
- if (!base::StringToInt(rest.substr(0, 2), &time_exploded.hour))
- return false;
-
- if (!base::StringToInt(rest.substr(3, 2), &time_exploded.minute))
+ // Maybe it's time. Does it look like time (HH:MM)?
+ if (rest.length() == 5 && rest[2] == ':') {
+ if (!base::StringToInt(rest.substr(0, 2), &time_exploded.hour))
+ return false;
+
+ if (!base::StringToInt(rest.substr(3, 2), &time_exploded.minute))
+ return false;
+ } else if (rest.length() == 4 && rest[1] == ':') {
+ // Sometimes it's just H:MM.
+ if (!base::StringToInt(rest.substr(0, 1), &time_exploded.hour))
+ return false;
+
+ if (!base::StringToInt(rest.substr(2, 2), &time_exploded.minute))
+ return false;
+ } else {
return false;
+ }
// Guess the year.
base::Time::Exploded current_exploded;