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

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

Issue 2183433003: Revert of HttpChunkedDecoder: Support chunks longer than 2^31-1 bytes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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_chunked_decoder.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Derived from: 5 // Derived from:
6 // mozilla/netwerk/protocol/http/src/nsHttpChunkedDecoder.h 6 // mozilla/netwerk/protocol/http/src/nsHttpChunkedDecoder.h
7 // The license block is: 7 // The license block is:
8 /* ***** BEGIN LICENSE BLOCK ***** 8 /* ***** BEGIN LICENSE BLOCK *****
9 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 9 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
10 * 10 *
(...skipping 28 matching lines...) Expand all
39 * and other provisions required by the GPL or the LGPL. If you do not delete 39 * and other provisions required by the GPL or the LGPL. If you do not delete
40 * the provisions above, a recipient may use your version of this file under 40 * the provisions above, a recipient may use your version of this file under
41 * the terms of any one of the MPL, the GPL or the LGPL. 41 * the terms of any one of the MPL, the GPL or the LGPL.
42 * 42 *
43 * ***** END LICENSE BLOCK ***** */ 43 * ***** END LICENSE BLOCK ***** */
44 44
45 #ifndef NET_HTTP_HTTP_CHUNKED_DECODER_H_ 45 #ifndef NET_HTTP_HTTP_CHUNKED_DECODER_H_
46 #define NET_HTTP_HTTP_CHUNKED_DECODER_H_ 46 #define NET_HTTP_HTTP_CHUNKED_DECODER_H_
47 47
48 #include <stddef.h> 48 #include <stddef.h>
49 #include <stdint.h>
50 49
51 #include <string> 50 #include <string>
52 51
53 #include "net/base/net_export.h" 52 #include "net/base/net_export.h"
54 53
55 namespace net { 54 namespace net {
56 55
57 // From RFC2617 section 3.6.1, the chunked transfer coding is defined as: 56 // From RFC2617 section 3.6.1, the chunked transfer coding is defined as:
58 // 57 //
59 // Chunked-Body = *chunk 58 // Chunked-Body = *chunk
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 100
102 private: 101 private:
103 // Scans |buf| for the next chunk delimiter. This method returns the number 102 // Scans |buf| for the next chunk delimiter. This method returns the number
104 // of bytes consumed from |buf|. If found, |chunk_remaining_| holds the 103 // of bytes consumed from |buf|. If found, |chunk_remaining_| holds the
105 // value for the next chunk size. 104 // value for the next chunk size.
106 int ScanForChunkRemaining(const char* buf, int buf_len); 105 int ScanForChunkRemaining(const char* buf, int buf_len);
107 106
108 // Converts string |start| of length |len| to a numeric value. 107 // Converts string |start| of length |len| to a numeric value.
109 // |start| is a string of type "chunk-size" (hex string). 108 // |start| is a string of type "chunk-size" (hex string).
110 // If the conversion succeeds, returns true and places the result in |out|. 109 // If the conversion succeeds, returns true and places the result in |out|.
111 static bool ParseChunkSize(const char* start, int len, int64_t* out); 110 static bool ParseChunkSize(const char* start, int len, int* out);
112 111
113 // Indicates the number of bytes remaining for the current chunk. 112 // Indicates the number of bytes remaining for the current chunk.
114 int64_t chunk_remaining_; 113 int chunk_remaining_;
115 114
116 // A small buffer used to store a partial chunk marker. 115 // A small buffer used to store a partial chunk marker.
117 std::string line_buf_; 116 std::string line_buf_;
118 117
119 // True if waiting for the terminal CRLF of a chunk's data. 118 // True if waiting for the terminal CRLF of a chunk's data.
120 bool chunk_terminator_remaining_; 119 bool chunk_terminator_remaining_;
121 120
122 // Set to true when FilterBuf encounters the last-chunk. 121 // Set to true when FilterBuf encounters the last-chunk.
123 bool reached_last_chunk_; 122 bool reached_last_chunk_;
124 123
125 // Set to true when FilterBuf encounters the final CRLF. 124 // Set to true when FilterBuf encounters the final CRLF.
126 bool reached_eof_; 125 bool reached_eof_;
127 126
128 // The number of extraneous unfiltered bytes after the final CRLF. 127 // The number of extraneous unfiltered bytes after the final CRLF.
129 int bytes_after_eof_; 128 int bytes_after_eof_;
130 }; 129 };
131 130
132 } // namespace net 131 } // namespace net
133 132
134 #endif // NET_HTTP_HTTP_CHUNKED_DECODER_H_ 133 #endif // NET_HTTP_HTTP_CHUNKED_DECODER_H_
OLDNEW
« no previous file with comments | « no previous file | net/http/http_chunked_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698