OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/disk_cache/simple/simple_synchronous_entry.h" | 5 #include "net/disk_cache/simple/simple_synchronous_entry.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cstring> | 8 #include <cstring> |
9 #include <functional> | 9 #include <functional> |
10 #include <limits> | 10 #include <limits> |
(...skipping 1481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1492 if (header_read_result != sizeof(header)) { | 1492 if (header_read_result != sizeof(header)) { |
1493 DLOG(WARNING) << "Could not read header from sparse file."; | 1493 DLOG(WARNING) << "Could not read header from sparse file."; |
1494 return false; | 1494 return false; |
1495 } | 1495 } |
1496 | 1496 |
1497 if (header.initial_magic_number != kSimpleInitialMagicNumber) { | 1497 if (header.initial_magic_number != kSimpleInitialMagicNumber) { |
1498 DLOG(WARNING) << "Sparse file magic number did not match."; | 1498 DLOG(WARNING) << "Sparse file magic number did not match."; |
1499 return false; | 1499 return false; |
1500 } | 1500 } |
1501 | 1501 |
1502 if (header.version != kSimpleVersion) { | 1502 if (header.version < kLastCompatSparseVersion || |
| 1503 header.version > kSimpleVersion) { |
1503 DLOG(WARNING) << "Sparse file unreadable version."; | 1504 DLOG(WARNING) << "Sparse file unreadable version."; |
1504 return false; | 1505 return false; |
1505 } | 1506 } |
1506 | 1507 |
1507 sparse_ranges_.clear(); | 1508 sparse_ranges_.clear(); |
1508 | 1509 |
1509 int64_t range_header_offset = sizeof(header) + key_.size(); | 1510 int64_t range_header_offset = sizeof(header) + key_.size(); |
1510 while (1) { | 1511 while (1) { |
1511 SimpleFileSparseRangeHeader range_header; | 1512 SimpleFileSparseRangeHeader range_header; |
1512 int range_header_read_result = | 1513 int range_header_read_result = |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1651 range.offset = offset; | 1652 range.offset = offset; |
1652 range.length = len; | 1653 range.length = len; |
1653 range.data_crc32 = data_crc32; | 1654 range.data_crc32 = data_crc32; |
1654 range.file_offset = data_file_offset; | 1655 range.file_offset = data_file_offset; |
1655 sparse_ranges_.insert(std::make_pair(offset, range)); | 1656 sparse_ranges_.insert(std::make_pair(offset, range)); |
1656 | 1657 |
1657 return true; | 1658 return true; |
1658 } | 1659 } |
1659 | 1660 |
1660 } // namespace disk_cache | 1661 } // namespace disk_cache |
OLD | NEW |