| Index: net/tools/dump_cache/cache_dumper.cc
|
| diff --git a/net/tools/dump_cache/cache_dumper.cc b/net/tools/dump_cache/cache_dumper.cc
|
| index dbe827331ee6cb24d754213390871f74718f54af..7f2292bdd7a88f82376a31841dd7813f7b7b4342 100644
|
| --- a/net/tools/dump_cache/cache_dumper.cc
|
| +++ b/net/tools/dump_cache/cache_dumper.cc
|
| @@ -13,6 +13,10 @@
|
| #include "net/http/http_response_info.h"
|
| #include "net/tools/dump_cache/url_to_filename_encoder.h"
|
|
|
| +CacheDumper::CacheDumper(disk_cache::Backend* cache)
|
| + : cache_(cache) {
|
| +}
|
| +
|
| int CacheDumper::CreateEntry(const std::string& key,
|
| disk_cache::Entry** entry,
|
| const net::CompletionCallback& callback) {
|
| @@ -52,7 +56,7 @@ bool SafeCreateDirectory(const FilePath& path) {
|
|
|
| // Create the subdirectories individually
|
| while ((pos = path.value().find(backslash, pos)) != std::wstring::npos) {
|
| - std::wstring subdir = path.value().substr(0, pos);
|
| + FilePath::StringType subdir = path.value().substr(0, pos);
|
| CreateDirectoryW(subdir.c_str(), NULL);
|
| // we keep going even if directory creation failed.
|
| pos++;
|
| @@ -64,16 +68,21 @@ bool SafeCreateDirectory(const FilePath& path) {
|
| #endif
|
| }
|
|
|
| +DiskDumper::DiskDumper(const FilePath& path)
|
| + : path_(path), entry_(NULL) {
|
| + file_util::CreateDirectory(path);
|
| +}
|
| +
|
| int DiskDumper::CreateEntry(const std::string& key,
|
| disk_cache::Entry** entry,
|
| const net::CompletionCallback& callback) {
|
| // The URL may not start with a valid protocol; search for it.
|
| int urlpos = key.find("http");
|
| std::string url = urlpos > 0 ? key.substr(urlpos) : key;
|
| - std::string base_path = WideToASCII(path_.value());
|
| + std::string base_path = path_.MaybeAsASCII();
|
| std::string new_path =
|
| net::UrlToFilenameEncoder::Encode(url, base_path, false);
|
| - entry_path_ = FilePath(ASCIIToWide(new_path));
|
| + entry_path_ = FilePath::FromUTF8Unsafe(new_path);
|
|
|
| #ifdef WIN32_LARGE_FILENAME_SUPPORT
|
| // In order for long filenames to work, we'll need to prepend
|
| @@ -90,7 +99,7 @@ int DiskDumper::CreateEntry(const std::string& key,
|
|
|
| SafeCreateDirectory(entry_path_.DirName());
|
|
|
| - std::wstring file = entry_path_.value();
|
| + FilePath::StringType file = entry_path_.value();
|
| #ifdef WIN32_LARGE_FILENAME_SUPPORT
|
| entry_ = CreateFileW(file.c_str(), GENERIC_WRITE|GENERIC_READ, 0, 0,
|
| CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
|
| @@ -185,10 +194,13 @@ int DiskDumper::WriteEntry(disk_cache::Entry* entry, int index, int offset,
|
|
|
| data = headers.c_str();
|
| len = headers.size();
|
| - } else if (index == 1) { // Stream 1 is the data.
|
| + } else if (index == 1) {
|
| data = buf->data();
|
| len = buf_len;
|
| + } else {
|
| + return 0;
|
| }
|
| +
|
| #ifdef WIN32_LARGE_FILENAME_SUPPORT
|
| DWORD bytes;
|
| if (!WriteFile(entry_, data, len, &bytes, 0))
|
|
|