mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-19 04:00:46 +00:00
MINOR: h1: make h1_parse_chunk_size() not depend on b_ptr() anymore
It's similar to the previous commit so that the function doesn't rely on buf->p anymore.
This commit is contained in:
parent
c0973c6742
commit
84d6b7af87
@ -175,7 +175,8 @@ static inline int h1_skip_chunk_crlf(const struct buffer *buf, int start, int st
|
||||
return bytes;
|
||||
}
|
||||
|
||||
/* Parse the chunk size start at buf->p + start and stops before buf->p + stop.
|
||||
/* Parse the chunk size start at buf + start and stops before buf + stop. The
|
||||
* positions are relative to the buffer's head.
|
||||
* It returns the chunk size in <res> and the amount of bytes read this way :
|
||||
* < 0 : error at this position relative to <stop>
|
||||
* = 0 : not enough bytes to read a complete chunk size
|
||||
@ -189,9 +190,9 @@ static inline int h1_skip_chunk_crlf(const struct buffer *buf, int start, int st
|
||||
*/
|
||||
static inline int h1_parse_chunk_size(const struct buffer *buf, int start, int stop, unsigned int *res)
|
||||
{
|
||||
const char *ptr = b_ptr(buf, start);
|
||||
const char *ptr = b_peek(buf, start);
|
||||
const char *ptr_old = ptr;
|
||||
const char *end = buf->data + buf->size;
|
||||
const char *end = b_wrap(buf);
|
||||
unsigned int chunk = 0;
|
||||
|
||||
stop -= start; // bytes left
|
||||
|
@ -3197,8 +3197,7 @@ static size_t h2s_frt_make_resp_data(struct h2s *h2s, struct buffer *buf, size_t
|
||||
|
||||
if (h1m->state == HTTP_MSG_CHUNK_SIZE) {
|
||||
unsigned int chunk;
|
||||
// FIXME: this one still uses the old buffer API and ignores <ofs>
|
||||
ret = h1_parse_chunk_size(buf, -max, 0, &chunk);
|
||||
ret = h1_parse_chunk_size(buf, ofs, ofs + max, &chunk);
|
||||
if (!ret)
|
||||
goto end;
|
||||
|
||||
|
@ -4142,7 +4142,7 @@ int http_wait_for_request_body(struct stream *s, struct channel *req, int an_bit
|
||||
* TRAILERS state.
|
||||
*/
|
||||
unsigned int chunk;
|
||||
int ret = h1_parse_chunk_size(req->buf, msg->next, req->buf->i, &chunk);
|
||||
int ret = h1_parse_chunk_size(req->buf, co_data(req) + msg->next, b_data(req->buf), &chunk);
|
||||
|
||||
if (!ret)
|
||||
goto missing_data;
|
||||
@ -6371,7 +6371,7 @@ http_msg_forward_chunked_body(struct stream *s, struct http_msg *msg)
|
||||
* then set ->next to point to the body and switch to
|
||||
* DATA or TRAILERS state.
|
||||
*/
|
||||
ret = h1_parse_chunk_size(chn->buf, msg->next, chn->buf->i, &chunk);
|
||||
ret = h1_parse_chunk_size(chn->buf, co_data(chn) + msg->next, b_data(chn->buf), &chunk);
|
||||
if (ret == 0)
|
||||
goto missing_data_or_waiting;
|
||||
if (ret < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user