OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Parse the data returned from the SafeBrowsing v2.1 protocol response. | 5 // Parse the data returned from the SafeBrowsing v2.1 protocol response. |
6 | 6 |
7 // TODOv3(shess): Review these changes carefully. | 7 // TODOv3(shess): Review these changes carefully. |
8 | 8 |
9 #include <stdlib.h> | 9 #include <stdlib.h> |
10 | 10 |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 return true; | 124 return true; |
125 } | 125 } |
126 | 126 |
127 private: | 127 private: |
128 const char* data_; | 128 const char* data_; |
129 size_t length_; | 129 size_t length_; |
130 | 130 |
131 DISALLOW_COPY_AND_ASSIGN(BufferReader); | 131 DISALLOW_COPY_AND_ASSIGN(BufferReader); |
132 }; | 132 }; |
133 | 133 |
134 bool ParseGetHashMetadata(size_t hash_count, | 134 bool ParseGetHashMetadata( |
135 BufferReader* reader, | 135 size_t hash_count, |
136 std::vector<SBFullHashResult>* full_hashes) { | 136 BufferReader* reader, |
| 137 std::vector<safe_browsing::SBFullHashResult>* full_hashes) { |
137 for (size_t i = 0; i < hash_count; ++i) { | 138 for (size_t i = 0; i < hash_count; ++i) { |
138 base::StringPiece line; | 139 base::StringPiece line; |
139 if (!reader->GetLine(&line)) | 140 if (!reader->GetLine(&line)) |
140 return false; | 141 return false; |
141 | 142 |
142 size_t meta_data_len; | 143 size_t meta_data_len; |
143 if (!base::StringToSizeT(line, &meta_data_len)) | 144 if (!base::StringToSizeT(line, &meta_data_len)) |
144 return false; | 145 return false; |
145 | 146 |
146 const void* meta_data; | 147 const void* meta_data; |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 | 193 |
193 *cache_lifetime = base::TimeDelta::FromSeconds(cache_lifetime_seconds); | 194 *cache_lifetime = base::TimeDelta::FromSeconds(cache_lifetime_seconds); |
194 } | 195 } |
195 | 196 |
196 while (!reader.empty()) { | 197 while (!reader.empty()) { |
197 std::vector<base::StringPiece> cmd_parts; | 198 std::vector<base::StringPiece> cmd_parts; |
198 if (!reader.GetPieces(3, &cmd_parts)) | 199 if (!reader.GetPieces(3, &cmd_parts)) |
199 return false; | 200 return false; |
200 | 201 |
201 SBFullHashResult full_hash; | 202 SBFullHashResult full_hash; |
202 full_hash.list_id = safe_browsing::GetListId(cmd_parts[0]); | 203 full_hash.list_id = GetListId(cmd_parts[0]); |
203 | 204 |
204 size_t hash_len; | 205 size_t hash_len; |
205 if (!base::StringToSizeT(cmd_parts[1], &hash_len)) | 206 if (!base::StringToSizeT(cmd_parts[1], &hash_len)) |
206 return false; | 207 return false; |
207 | 208 |
208 // TODO(shess): Is this possible? If not, why the length present? | 209 // TODO(shess): Is this possible? If not, why the length present? |
209 if (hash_len != sizeof(SBFullHash)) | 210 if (hash_len != sizeof(SBFullHash)) |
210 return false; | 211 return false; |
211 | 212 |
212 // Metadata is indicated by an optional ":m" at the end of the line. | 213 // Metadata is indicated by an optional ":m" at the end of the line. |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 if (!list.adds.empty() && !list.subs.empty()) | 388 if (!list.adds.empty() && !list.subs.empty()) |
388 formatted_results.append(":"); | 389 formatted_results.append(":"); |
389 if (!list.subs.empty()) | 390 if (!list.subs.empty()) |
390 formatted_results.append("s:").append(list.subs); | 391 formatted_results.append("s:").append(list.subs); |
391 formatted_results.append("\n"); | 392 formatted_results.append("\n"); |
392 | 393 |
393 return formatted_results; | 394 return formatted_results; |
394 } | 395 } |
395 | 396 |
396 } // namespace safe_browsing | 397 } // namespace safe_browsing |
OLD | NEW |