From 028598357fb1cb848a95e83f1614e3d58cb87681 Mon Sep 17 00:00:00 2001 From: "wtc@chromium.org" Date: Fri, 17 Jul 2009 21:18:13 +0000 Subject: Use base::Time::Exploded instead of struct tm in ftp_directory_parser.{h,cc}. The patch is contributed by Ibrar Ahmed . Original review URL: http://codereview.chromium.org/126096 R=wtc BUG=http://crbug.com/4965 TEST=none Review URL: http://codereview.chromium.org/149772 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21003 0039d316-1c4b-4281-b951-d872f2087c98 --- net/url_request/url_request_new_ftp_job.cc | 34 ++++-------------------------- 1 file changed, 4 insertions(+), 30 deletions(-) (limited to 'net/url_request') diff --git a/net/url_request/url_request_new_ftp_job.cc b/net/url_request/url_request_new_ftp_job.cc index e603a38..1bdd6cb 100644 --- a/net/url_request/url_request_new_ftp_job.cc +++ b/net/url_request/url_request_new_ftp_job.cc @@ -77,7 +77,7 @@ URLRequestNewFtpJob::~URLRequestNewFtpJob() { // static URLRequestJob* URLRequestNewFtpJob::Factory(URLRequest* request, const std::string& scheme) { - DCHECK(scheme == "ftp"); + DCHECK_EQ(scheme, "ftp"); if (request->url().has_port() && !net::IsPortAllowedByFtp(request->url().IntPort())) @@ -200,47 +200,21 @@ int URLRequestNewFtpJob::ProcessFtpDir(net::IOBuffer *buf, while (getline(iss, line)) { struct net::ListState state; struct net::ListResult result; - base::Time::Exploded et; std::replace(line.begin(), line.end(), '\r', '\0'); net::LineType line_type = ParseFTPLine(line.c_str(), &state, &result); switch (line_type) { case net::FTP_TYPE_DIRECTORY: - // TODO(ibrar): There is some problem in ParseFTPLine function or - // in conversion between tm and base::Time::Exploded. - // It returns wrong date/time (Differnce is 1 day and 17 Hours). - memset(&et, 0, sizeof(base::Time::Exploded)); - et.second = result.fe_time.tm_sec; - et.minute = result.fe_time.tm_min; - et.hour = result.fe_time.tm_hour; - et.day_of_month = result.fe_time.tm_mday; - et.month = result.fe_time.tm_mon + 1; - et.year = result.fe_time.tm_year + 1900; - et.day_of_week = result.fe_time.tm_wday; - file_entry.append(net::GetDirectoryListingEntry( RawByteSequenceToFilename(result.fe_fname, encoding_), - result.fe_fname, true, 0, base::Time::FromLocalExploded(et))); + result.fe_fname, true, 0, + base::Time::FromLocalExploded(result.fe_time))); break; case net::FTP_TYPE_FILE: - // TODO(ibrar): There should be a way to create a Time object based - // on "tm" structure. This will remove bunch of line of code to convert - // tm to Time object. - memset(&et, 0, sizeof(base::Time::Exploded)); - et.second = result.fe_time.tm_sec; - et.minute = result.fe_time.tm_min; - et.hour = result.fe_time.tm_hour; - et.day_of_month = result.fe_time.tm_mday; - et.month = result.fe_time.tm_mon + 1; - et.year = result.fe_time.tm_year + 1900; - et.day_of_week = result.fe_time.tm_wday; - // TODO(ibrar): There is some problem in ParseFTPLine function or - // in conversion between tm and base::Time::Exploded. - // It returns wrong date/time (Differnce is 1 day and 17 Hours). if (StringToInt64(result.fe_size, &file_size)) file_entry.append(net::GetDirectoryListingEntry( RawByteSequenceToFilename(result.fe_fname, encoding_), result.fe_fname, false, file_size, - base::Time::FromLocalExploded(et))); + base::Time::FromLocalExploded(result.fe_time))); break; case net::FTP_TYPE_SYMLINK: case net::FTP_TYPE_JUNK: -- cgit v1.1