OLD | NEW |
1 // Copyright (c) 2011 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_vary_data.h" | 5 #include "net/http/http_vary_data.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include "base/pickle.h" | 9 #include "base/pickle.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
11 #include "net/http/http_request_headers.h" | 11 #include "net/http/http_request_headers.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 processed_header = true; | 57 processed_header = true; |
58 } | 58 } |
59 | 59 |
60 if (!processed_header) | 60 if (!processed_header) |
61 return false; | 61 return false; |
62 | 62 |
63 base::MD5Final(&request_digest_, &ctx); | 63 base::MD5Final(&request_digest_, &ctx); |
64 return is_valid_ = true; | 64 return is_valid_ = true; |
65 } | 65 } |
66 | 66 |
67 bool HttpVaryData::InitFromPickle(const Pickle& pickle, void** iter) { | 67 bool HttpVaryData::InitFromPickle(const Pickle& pickle, PickleIterator* iter) { |
68 is_valid_ = false; | 68 is_valid_ = false; |
69 const char* data; | 69 const char* data; |
70 if (pickle.ReadBytes(iter, &data, sizeof(request_digest_))) { | 70 if (pickle.ReadBytes(iter, &data, sizeof(request_digest_))) { |
71 memcpy(&request_digest_, data, sizeof(request_digest_)); | 71 memcpy(&request_digest_, data, sizeof(request_digest_)); |
72 return is_valid_ = true; | 72 return is_valid_ = true; |
73 } | 73 } |
74 return false; | 74 return false; |
75 } | 75 } |
76 | 76 |
77 void HttpVaryData::Persist(Pickle* pickle) const { | 77 void HttpVaryData::Persist(Pickle* pickle) const { |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 // Append a character that cannot appear in the request header line so that we | 117 // Append a character that cannot appear in the request header line so that we |
118 // protect against case where the concatenation of two request headers could | 118 // protect against case where the concatenation of two request headers could |
119 // look the same for a variety of values for the individual request headers. | 119 // look the same for a variety of values for the individual request headers. |
120 // For example, "foo: 12\nbar: 3" looks like "foo: 1\nbar: 23" otherwise. | 120 // For example, "foo: 12\nbar: 3" looks like "foo: 1\nbar: 23" otherwise. |
121 request_value.append(1, '\n'); | 121 request_value.append(1, '\n'); |
122 | 122 |
123 base::MD5Update(ctx, request_value); | 123 base::MD5Update(ctx, request_value); |
124 } | 124 } |
125 | 125 |
126 } // namespace net | 126 } // namespace net |
OLD | NEW |