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 #include "net/http/http_response_info.h" | 5 #include "net/http/http_response_info.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/pickle.h" | 8 #include "base/pickle.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "net/base/auth.h" | 10 #include "net/base/auth.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 if (!iter.ReadInt(&flags)) | 172 if (!iter.ReadInt(&flags)) |
173 return false; | 173 return false; |
174 int version = flags & RESPONSE_INFO_VERSION_MASK; | 174 int version = flags & RESPONSE_INFO_VERSION_MASK; |
175 if (version < RESPONSE_INFO_MINIMUM_VERSION || | 175 if (version < RESPONSE_INFO_MINIMUM_VERSION || |
176 version > RESPONSE_INFO_VERSION) { | 176 version > RESPONSE_INFO_VERSION) { |
177 DLOG(ERROR) << "unexpected response info version: " << version; | 177 DLOG(ERROR) << "unexpected response info version: " << version; |
178 return false; | 178 return false; |
179 } | 179 } |
180 | 180 |
181 // Read request-time | 181 // Read request-time |
182 int64 time_val; | 182 int64_t time_val; |
183 if (!iter.ReadInt64(&time_val)) | 183 if (!iter.ReadInt64(&time_val)) |
184 return false; | 184 return false; |
185 request_time = Time::FromInternalValue(time_val); | 185 request_time = Time::FromInternalValue(time_val); |
186 was_cached = true; // Set status to show cache resurrection. | 186 was_cached = true; // Set status to show cache resurrection. |
187 | 187 |
188 // Read response-time | 188 // Read response-time |
189 if (!iter.ReadInt64(&time_val)) | 189 if (!iter.ReadInt64(&time_val)) |
190 return false; | 190 return false; |
191 response_time = Time::FromInternalValue(time_val); | 191 response_time = Time::FromInternalValue(time_val); |
192 | 192 |
(...skipping 29 matching lines...) Expand all Loading... |
222 ssl_info.connection_status = connection_status; | 222 ssl_info.connection_status = connection_status; |
223 } | 223 } |
224 | 224 |
225 if (flags & RESPONSE_INFO_HAS_SIGNED_CERTIFICATE_TIMESTAMPS) { | 225 if (flags & RESPONSE_INFO_HAS_SIGNED_CERTIFICATE_TIMESTAMPS) { |
226 int num_scts; | 226 int num_scts; |
227 if (!iter.ReadInt(&num_scts)) | 227 if (!iter.ReadInt(&num_scts)) |
228 return false; | 228 return false; |
229 for (int i = 0; i < num_scts; ++i) { | 229 for (int i = 0; i < num_scts; ++i) { |
230 scoped_refptr<ct::SignedCertificateTimestamp> sct( | 230 scoped_refptr<ct::SignedCertificateTimestamp> sct( |
231 ct::SignedCertificateTimestamp::CreateFromPickle(&iter)); | 231 ct::SignedCertificateTimestamp::CreateFromPickle(&iter)); |
232 uint16 status; | 232 uint16_t status; |
233 if (!sct.get() || !iter.ReadUInt16(&status)) | 233 if (!sct.get() || !iter.ReadUInt16(&status)) |
234 return false; | 234 return false; |
235 ssl_info.signed_certificate_timestamps.push_back( | 235 ssl_info.signed_certificate_timestamps.push_back( |
236 SignedCertificateTimestampAndStatus( | 236 SignedCertificateTimestampAndStatus( |
237 sct, static_cast<ct::SCTVerifyStatus>(status))); | 237 sct, static_cast<ct::SCTVerifyStatus>(status))); |
238 } | 238 } |
239 } | 239 } |
240 | 240 |
241 // Read vary-data | 241 // Read vary-data |
242 if (flags & RESPONSE_INFO_HAS_VARY_DATA) { | 242 if (flags & RESPONSE_INFO_HAS_VARY_DATA) { |
243 if (!vary_data.InitFromPickle(&iter)) | 243 if (!vary_data.InitFromPickle(&iter)) |
244 return false; | 244 return false; |
245 } | 245 } |
246 | 246 |
247 // Read socket_address. | 247 // Read socket_address. |
248 std::string socket_address_host; | 248 std::string socket_address_host; |
249 if (iter.ReadString(&socket_address_host)) { | 249 if (iter.ReadString(&socket_address_host)) { |
250 // If the host was written, we always expect the port to follow. | 250 // If the host was written, we always expect the port to follow. |
251 uint16 socket_address_port; | 251 uint16_t socket_address_port; |
252 if (!iter.ReadUInt16(&socket_address_port)) | 252 if (!iter.ReadUInt16(&socket_address_port)) |
253 return false; | 253 return false; |
254 socket_address = HostPortPair(socket_address_host, socket_address_port); | 254 socket_address = HostPortPair(socket_address_host, socket_address_port); |
255 } else if (version > 1) { | 255 } else if (version > 1) { |
256 // socket_address was not always present in version 1 of the response | 256 // socket_address was not always present in version 1 of the response |
257 // info, so we don't fail if it can't be read. | 257 // info, so we don't fail if it can't be read. |
258 return false; | 258 return false; |
259 } | 259 } |
260 | 260 |
261 // Read protocol-version. | 261 // Read protocol-version. |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 if (ssl_info.security_bits != -1) | 358 if (ssl_info.security_bits != -1) |
359 pickle->WriteInt(ssl_info.security_bits); | 359 pickle->WriteInt(ssl_info.security_bits); |
360 if (ssl_info.connection_status != 0) | 360 if (ssl_info.connection_status != 0) |
361 pickle->WriteInt(ssl_info.connection_status); | 361 pickle->WriteInt(ssl_info.connection_status); |
362 if (!ssl_info.signed_certificate_timestamps.empty()) { | 362 if (!ssl_info.signed_certificate_timestamps.empty()) { |
363 pickle->WriteInt(ssl_info.signed_certificate_timestamps.size()); | 363 pickle->WriteInt(ssl_info.signed_certificate_timestamps.size()); |
364 for (SignedCertificateTimestampAndStatusList::const_iterator it = | 364 for (SignedCertificateTimestampAndStatusList::const_iterator it = |
365 ssl_info.signed_certificate_timestamps.begin(); it != | 365 ssl_info.signed_certificate_timestamps.begin(); it != |
366 ssl_info.signed_certificate_timestamps.end(); ++it) { | 366 ssl_info.signed_certificate_timestamps.end(); ++it) { |
367 it->sct->Persist(pickle); | 367 it->sct->Persist(pickle); |
368 pickle->WriteUInt16(static_cast<uint16>(it->status)); | 368 pickle->WriteUInt16(static_cast<uint16_t>(it->status)); |
369 } | 369 } |
370 } | 370 } |
371 } | 371 } |
372 | 372 |
373 if (vary_data.is_valid()) | 373 if (vary_data.is_valid()) |
374 vary_data.Persist(pickle); | 374 vary_data.Persist(pickle); |
375 | 375 |
376 pickle->WriteString(socket_address.host()); | 376 pickle->WriteString(socket_address.host()); |
377 pickle->WriteUInt16(socket_address.port()); | 377 pickle->WriteUInt16(socket_address.port()); |
378 | 378 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 case CONNECTION_INFO_QUIC1_SPDY3: | 431 case CONNECTION_INFO_QUIC1_SPDY3: |
432 return "quic/1+spdy/3"; | 432 return "quic/1+spdy/3"; |
433 case NUM_OF_CONNECTION_INFOS: | 433 case NUM_OF_CONNECTION_INFOS: |
434 break; | 434 break; |
435 } | 435 } |
436 NOTREACHED(); | 436 NOTREACHED(); |
437 return ""; | 437 return ""; |
438 } | 438 } |
439 | 439 |
440 } // namespace net | 440 } // namespace net |
OLD | NEW |