pass pointer to settings structure rather than pass by value

event_stream
Cliff Frey 15 years ago committed by Ryan Dahl
parent 83b2a527db
commit 7239788205

@ -58,7 +58,7 @@ When data is received on the socket execute the parser and check for errors.
* Note we pass the recved==0 to http_parse_requests to signal * Note we pass the recved==0 to http_parse_requests to signal
* that EOF has been recieved. * that EOF has been recieved.
*/ */
nparsed = http_parser_execute(parser, settings, buf, recved); nparsed = http_parser_execute(parser, &settings, buf, recved);
if (parser->upgrade) { if (parser->upgrade) {
/* handle new protocol */ /* handle new protocol */

@ -37,8 +37,8 @@
#define CALLBACK2(FOR) \ #define CALLBACK2(FOR) \
do { \ do { \
if (settings.on_##FOR) { \ if (settings->on_##FOR) { \
if (0 != settings.on_##FOR(parser)) return (p - data); \ if (0 != settings->on_##FOR(parser)) return (p - data); \
} \ } \
} while (0) } while (0)
@ -55,8 +55,8 @@ do { \
if (parser->FOR##_mark) { \ if (parser->FOR##_mark) { \
parser->FOR##_size += p - parser->FOR##_mark; \ parser->FOR##_size += p - parser->FOR##_mark; \
if (parser->FOR##_size > MAX_FIELD_SIZE) return (p - data); \ if (parser->FOR##_size > MAX_FIELD_SIZE) return (p - data); \
if (settings.on_##FOR) { \ if (settings->on_##FOR) { \
if (0 != settings.on_##FOR(parser, \ if (0 != settings->on_##FOR(parser, \
parser->FOR##_mark, \ parser->FOR##_mark, \
p - parser->FOR##_mark)) \ p - parser->FOR##_mark)) \
{ \ { \
@ -282,7 +282,7 @@ enum flags
size_t http_parser_execute (http_parser *parser, size_t http_parser_execute (http_parser *parser,
http_parser_settings settings, const http_parser_settings *settings,
const char *data, const char *data,
size_t len) size_t len)
{ {
@ -1364,7 +1364,7 @@ size_t http_parser_execute (http_parser *parser,
case s_body_identity: case s_body_identity:
to_read = MIN(pe - p, (ssize_t)(parser->content_length - parser->body_read)); to_read = MIN(pe - p, (ssize_t)(parser->content_length - parser->body_read));
if (to_read > 0) { if (to_read > 0) {
if (settings.on_body) settings.on_body(parser, p, to_read); if (settings->on_body) settings->on_body(parser, p, to_read);
p += to_read - 1; p += to_read - 1;
parser->body_read += to_read; parser->body_read += to_read;
if (parser->body_read == parser->content_length) { if (parser->body_read == parser->content_length) {
@ -1378,7 +1378,7 @@ size_t http_parser_execute (http_parser *parser,
case s_body_identity_eof: case s_body_identity_eof:
to_read = pe - p; to_read = pe - p;
if (to_read > 0) { if (to_read > 0) {
if (settings.on_body) settings.on_body(parser, p, to_read); if (settings->on_body) settings->on_body(parser, p, to_read);
p += to_read - 1; p += to_read - 1;
parser->body_read += to_read; parser->body_read += to_read;
} }
@ -1451,7 +1451,7 @@ size_t http_parser_execute (http_parser *parser,
to_read = MIN(pe - p, (ssize_t)(parser->content_length)); to_read = MIN(pe - p, (ssize_t)(parser->content_length));
if (to_read > 0) { if (to_read > 0) {
if (settings.on_body) settings.on_body(parser, p, to_read); if (settings->on_body) settings->on_body(parser, p, to_read);
p += to_read - 1; p += to_read - 1;
} }

@ -149,7 +149,7 @@ void http_parser_init(http_parser *parser, enum http_parser_type type);
size_t http_parser_execute(http_parser *parser, size_t http_parser_execute(http_parser *parser,
http_parser_settings settings, const http_parser_settings *settings,
const char *data, const char *data,
size_t len); size_t len);

@ -898,7 +898,7 @@ inline size_t parse (const char *buf, size_t len)
{ {
size_t nparsed; size_t nparsed;
currently_parsing_eof = (len == 0); currently_parsing_eof = (len == 0);
nparsed = http_parser_execute(parser, settings, buf, len); nparsed = http_parser_execute(parser, &settings, buf, len);
return nparsed; return nparsed;
} }
@ -906,7 +906,7 @@ inline size_t parse_count_body (const char *buf, size_t len)
{ {
size_t nparsed; size_t nparsed;
currently_parsing_eof = (len == 0); currently_parsing_eof = (len == 0);
nparsed = http_parser_execute(parser, settings_count_body, buf, len); nparsed = http_parser_execute(parser, &settings_count_body, buf, len);
return nparsed; return nparsed;
} }

Loading…
Cancel
Save