Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: net/http/http_util.h

Issue 2608563002: Remove some dead code for operating on headers-as-a-string. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | net/http/http_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef NET_HTTP_HTTP_UTIL_H_ 5 #ifndef NET_HTTP_HTTP_UTIL_H_
6 #define NET_HTTP_HTTP_UTIL_H_ 6 #define NET_HTTP_HTTP_UTIL_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 28 matching lines...) Expand all
39 // output values are only modified if the content_type_str contains a mime 39 // output values are only modified if the content_type_str contains a mime
40 // type and charset value, respectively. The boundary output value is 40 // type and charset value, respectively. The boundary output value is
41 // optional and will be assigned the (quoted) value of the boundary 41 // optional and will be assigned the (quoted) value of the boundary
42 // paramter, if any. 42 // paramter, if any.
43 static void ParseContentType(const std::string& content_type_str, 43 static void ParseContentType(const std::string& content_type_str,
44 std::string* mime_type, 44 std::string* mime_type,
45 std::string* charset, 45 std::string* charset,
46 bool* had_charset, 46 bool* had_charset,
47 std::string* boundary); 47 std::string* boundary);
48 48
49 // Scans the headers and look for the first "Range" header in |headers|, 49 // Parses the value of a "Range" header as defined in RFC 7233 Secion 2.1.
eroman 2016/12/29 01:15:28 typo: Section
mmenke 2016/12/29 02:14:28 Done.
50 // if "Range" exists and the first one of it is well formatted then returns
51 // true, |ranges| will contain a list of valid ranges. If return
52 // value is false then values in |ranges| should not be used. The format of
53 // "Range" header is defined in RFC 7233 Section 2.1.
54 // https://tools.ietf.org/html/rfc7233#section-2.1 50 // https://tools.ietf.org/html/rfc7233#section-2.1
55 static bool ParseRanges(const std::string& headers, 51 // Returns false on failure.
56 std::vector<HttpByteRange>* ranges);
57
58 // Same thing as ParseRanges except the Range header is known and its value
59 // is directly passed in, rather than requiring searching through a string.
60 static bool ParseRangeHeader(const std::string& range_specifier, 52 static bool ParseRangeHeader(const std::string& range_specifier,
61 std::vector<HttpByteRange>* ranges); 53 std::vector<HttpByteRange>* ranges);
62 54
63 // Extracts the values in a Content-Range header and returns true if they are 55 // Extracts the values in a Content-Range header and returns true if they are
64 // valid for a 206 response; otherwise returns false. 56 // valid for a 206 response; otherwise returns false.
65 // The following values will be outputted: 57 // The following values will be outputted:
66 // |*first_byte_position| = inclusive position of the first byte of the range 58 // |*first_byte_position| = inclusive position of the first byte of the range
67 // |*last_byte_position| = inclusive position of the last byte of the range 59 // |*last_byte_position| = inclusive position of the last byte of the range
68 // |*instance_length| = size in bytes of the object requested 60 // |*instance_length| = size in bytes of the object requested
69 // If any of the above values is unknown, its value will be -1. 61 // If any of the above values is unknown, its value will be -1.
(...skipping 23 matching lines...) Expand all
93 // named |name|. 85 // named |name|.
94 static bool IsSafeHeader(const std::string& name); 86 static bool IsSafeHeader(const std::string& name);
95 87
96 // Returns true if |name| is a valid HTTP header name. 88 // Returns true if |name| is a valid HTTP header name.
97 static bool IsValidHeaderName(const base::StringPiece& name); 89 static bool IsValidHeaderName(const base::StringPiece& name);
98 90
99 // Returns false if |value| contains NUL or CRLF. This method does not perform 91 // Returns false if |value| contains NUL or CRLF. This method does not perform
100 // a fully RFC-2616-compliant header value validation. 92 // a fully RFC-2616-compliant header value validation.
101 static bool IsValidHeaderValue(const base::StringPiece& value); 93 static bool IsValidHeaderValue(const base::StringPiece& value);
102 94
103 // Strips all header lines from |headers| whose name matches
104 // |headers_to_remove|. |headers_to_remove| is a list of null-terminated
105 // lower-case header names, with array length |headers_to_remove_len|.
106 // Returns the stripped header lines list, separated by "\r\n".
107 static std::string StripHeaders(const std::string& headers,
108 const char* const headers_to_remove[],
109 size_t headers_to_remove_len);
110
111 // Multiple occurances of some headers cannot be coalesced into a comma- 95 // Multiple occurances of some headers cannot be coalesced into a comma-
112 // separated list since their values are (or contain) unquoted HTTP-date 96 // separated list since their values are (or contain) unquoted HTTP-date
113 // values, which may contain a comma (see RFC 2616 section 3.3.1). 97 // values, which may contain a comma (see RFC 2616 section 3.3.1).
114 static bool IsNonCoalescingHeader(std::string::const_iterator name_begin, 98 static bool IsNonCoalescingHeader(std::string::const_iterator name_begin,
115 std::string::const_iterator name_end); 99 std::string::const_iterator name_end);
116 static bool IsNonCoalescingHeader(const std::string& name) { 100 static bool IsNonCoalescingHeader(const std::string& name) {
117 return IsNonCoalescingHeader(name.begin(), name.end()); 101 return IsNonCoalescingHeader(name.begin(), name.end());
118 } 102 }
119 103
120 // Return true if the character is HTTP "linear white space" (SP | HT). 104 // Return true if the character is HTTP "linear white space" (SP | HT).
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 // True if quotes values are required to be properly quoted; false if 438 // True if quotes values are required to be properly quoted; false if
455 // mismatched quotes and other problems with quoted values should be more 439 // mismatched quotes and other problems with quoted values should be more
456 // or less gracefully treated as valid. 440 // or less gracefully treated as valid.
457 bool strict_quotes_; 441 bool strict_quotes_;
458 }; 442 };
459 }; 443 };
460 444
461 } // namespace net 445 } // namespace net
462 446
463 #endif // NET_HTTP_HTTP_UTIL_H_ 447 #endif // NET_HTTP_HTTP_UTIL_H_
OLDNEW
« no previous file with comments | « no previous file | net/http/http_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698