mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Change parser symbol names to avoid clash. Fixes #179
This commit is contained in:
parent
1cb7c7f785
commit
3726b7ef19
5 changed files with 78 additions and 78 deletions
|
@ -36,21 +36,21 @@ static void snake_upcase_char(char *c)
|
||||||
/** Data **/
|
/** Data **/
|
||||||
|
|
||||||
#line 39 "ext/http11/http11_parser.c"
|
#line 39 "ext/http11/http11_parser.c"
|
||||||
static const int http_parser_start = 1;
|
static const int puma_parser_start = 1;
|
||||||
static const int http_parser_first_final = 57;
|
static const int puma_parser_first_final = 57;
|
||||||
static const int http_parser_error = 0;
|
static const int puma_parser_error = 0;
|
||||||
|
|
||||||
static const int http_parser_en_main = 1;
|
static const int puma_parser_en_main = 1;
|
||||||
|
|
||||||
|
|
||||||
#line 82 "ext/http11/http11_parser.rl"
|
#line 82 "ext/http11/http11_parser.rl"
|
||||||
|
|
||||||
int http_parser_init(http_parser *parser) {
|
int puma_parser_init(puma_parser *parser) {
|
||||||
int cs = 0;
|
int cs = 0;
|
||||||
|
|
||||||
#line 52 "ext/http11/http11_parser.c"
|
#line 52 "ext/http11/http11_parser.c"
|
||||||
{
|
{
|
||||||
cs = http_parser_start;
|
cs = puma_parser_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 86 "ext/http11/http11_parser.rl"
|
#line 86 "ext/http11/http11_parser.rl"
|
||||||
|
@ -69,7 +69,7 @@ int http_parser_init(http_parser *parser) {
|
||||||
|
|
||||||
|
|
||||||
/** exec **/
|
/** exec **/
|
||||||
size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, size_t off) {
|
size_t puma_parser_execute(puma_parser *parser, const char *buffer, size_t len, size_t off) {
|
||||||
const char *p, *pe;
|
const char *p, *pe;
|
||||||
int cs = parser->cs;
|
int cs = parser->cs;
|
||||||
|
|
||||||
|
@ -1191,7 +1191,7 @@ case 56:
|
||||||
|
|
||||||
#line 114 "ext/http11/http11_parser.rl"
|
#line 114 "ext/http11/http11_parser.rl"
|
||||||
|
|
||||||
if (!http_parser_has_error(parser))
|
if (!puma_parser_has_error(parser))
|
||||||
parser->cs = cs;
|
parser->cs = cs;
|
||||||
parser->nread += p - (buffer + off);
|
parser->nread += p - (buffer + off);
|
||||||
|
|
||||||
|
@ -1205,21 +1205,21 @@ case 56:
|
||||||
return(parser->nread);
|
return(parser->nread);
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_finish(http_parser *parser)
|
int puma_parser_finish(puma_parser *parser)
|
||||||
{
|
{
|
||||||
if (http_parser_has_error(parser) ) {
|
if (puma_parser_has_error(parser) ) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (http_parser_is_finished(parser) ) {
|
} else if (puma_parser_is_finished(parser) ) {
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_has_error(http_parser *parser) {
|
int puma_parser_has_error(puma_parser *parser) {
|
||||||
return parser->cs == http_parser_error;
|
return parser->cs == puma_parser_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_is_finished(http_parser *parser) {
|
int puma_parser_is_finished(puma_parser *parser) {
|
||||||
return parser->cs >= http_parser_first_final;
|
return parser->cs >= puma_parser_first_final;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,16 +16,16 @@
|
||||||
|
|
||||||
#define BUFFER_LEN 1024
|
#define BUFFER_LEN 1024
|
||||||
|
|
||||||
struct http_parser;
|
struct puma_parser;
|
||||||
|
|
||||||
typedef void (*element_cb)(struct http_parser* hp,
|
typedef void (*element_cb)(struct puma_parser* hp,
|
||||||
const char *at, size_t length);
|
const char *at, size_t length);
|
||||||
|
|
||||||
typedef void (*field_cb)(struct http_parser* hp,
|
typedef void (*field_cb)(struct puma_parser* hp,
|
||||||
const char *field, size_t flen,
|
const char *field, size_t flen,
|
||||||
const char *value, size_t vlen);
|
const char *value, size_t vlen);
|
||||||
|
|
||||||
typedef struct http_parser {
|
typedef struct puma_parser {
|
||||||
int cs;
|
int cs;
|
||||||
size_t body_start;
|
size_t body_start;
|
||||||
int content_len;
|
int content_len;
|
||||||
|
@ -49,15 +49,15 @@ typedef struct http_parser {
|
||||||
|
|
||||||
char buf[BUFFER_LEN];
|
char buf[BUFFER_LEN];
|
||||||
|
|
||||||
} http_parser;
|
} puma_parser;
|
||||||
|
|
||||||
int http_parser_init(http_parser *parser);
|
int puma_parser_init(puma_parser *parser);
|
||||||
int http_parser_finish(http_parser *parser);
|
int puma_parser_finish(puma_parser *parser);
|
||||||
size_t http_parser_execute(http_parser *parser, const char *data,
|
size_t puma_parser_execute(puma_parser *parser, const char *data,
|
||||||
size_t len, size_t off);
|
size_t len, size_t off);
|
||||||
int http_parser_has_error(http_parser *parser);
|
int puma_parser_has_error(puma_parser *parser);
|
||||||
int http_parser_is_finished(http_parser *parser);
|
int puma_parser_is_finished(puma_parser *parser);
|
||||||
|
|
||||||
#define http_parser_nread(parser) (parser)->nread
|
#define puma_parser_nread(parser) (parser)->nread
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -29,7 +29,7 @@ static void snake_upcase_char(char *c)
|
||||||
|
|
||||||
%%{
|
%%{
|
||||||
|
|
||||||
machine http_parser;
|
machine puma_parser;
|
||||||
|
|
||||||
action mark { MARK(mark, fpc); }
|
action mark { MARK(mark, fpc); }
|
||||||
|
|
||||||
|
@ -73,14 +73,14 @@ static void snake_upcase_char(char *c)
|
||||||
fbreak;
|
fbreak;
|
||||||
}
|
}
|
||||||
|
|
||||||
include http_parser_common "http11_parser_common.rl";
|
include puma_parser_common "http11_parser_common.rl";
|
||||||
|
|
||||||
}%%
|
}%%
|
||||||
|
|
||||||
/** Data **/
|
/** Data **/
|
||||||
%% write data;
|
%% write data;
|
||||||
|
|
||||||
int http_parser_init(http_parser *parser) {
|
int puma_parser_init(puma_parser *parser) {
|
||||||
int cs = 0;
|
int cs = 0;
|
||||||
%% write init;
|
%% write init;
|
||||||
parser->cs = cs;
|
parser->cs = cs;
|
||||||
|
@ -98,7 +98,7 @@ int http_parser_init(http_parser *parser) {
|
||||||
|
|
||||||
|
|
||||||
/** exec **/
|
/** exec **/
|
||||||
size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, size_t off) {
|
size_t puma_parser_execute(puma_parser *parser, const char *buffer, size_t len, size_t off) {
|
||||||
const char *p, *pe;
|
const char *p, *pe;
|
||||||
int cs = parser->cs;
|
int cs = parser->cs;
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len,
|
||||||
|
|
||||||
%% write exec;
|
%% write exec;
|
||||||
|
|
||||||
if (!http_parser_has_error(parser))
|
if (!puma_parser_has_error(parser))
|
||||||
parser->cs = cs;
|
parser->cs = cs;
|
||||||
parser->nread += p - (buffer + off);
|
parser->nread += p - (buffer + off);
|
||||||
|
|
||||||
|
@ -126,21 +126,21 @@ size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len,
|
||||||
return(parser->nread);
|
return(parser->nread);
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_finish(http_parser *parser)
|
int puma_parser_finish(puma_parser *parser)
|
||||||
{
|
{
|
||||||
if (http_parser_has_error(parser) ) {
|
if (puma_parser_has_error(parser) ) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (http_parser_is_finished(parser) ) {
|
} else if (puma_parser_is_finished(parser) ) {
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_has_error(http_parser *parser) {
|
int puma_parser_has_error(puma_parser *parser) {
|
||||||
return parser->cs == http_parser_error;
|
return parser->cs == puma_parser_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int http_parser_is_finished(http_parser *parser) {
|
int puma_parser_is_finished(puma_parser *parser) {
|
||||||
return parser->cs >= http_parser_first_final;
|
return parser->cs >= puma_parser_first_final;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
%%{
|
%%{
|
||||||
|
|
||||||
machine http_parser_common;
|
machine puma_parser_common;
|
||||||
|
|
||||||
#### HTTP PROTOCOL GRAMMAR
|
#### HTTP PROTOCOL GRAMMAR
|
||||||
# line endings
|
# line endings
|
||||||
|
|
|
@ -38,10 +38,10 @@ static VALUE global_http_version;
|
||||||
static VALUE global_request_path;
|
static VALUE global_request_path;
|
||||||
|
|
||||||
/** Defines common length and error messages for input length validation. */
|
/** Defines common length and error messages for input length validation. */
|
||||||
#define DEF_MAX_LENGTH(N,length) const size_t MAX_##N##_LENGTH = length; const char *MAX_##N##_LENGTH_ERR = "HTTP element " # N " is longer than the " # length " allowed length."
|
#define DEF_MAX_LENGTH(N,length) const size_t MAX_##N##_LENGTH = length; const char *MAX_##N##_LENGTH_ERR = "HTTP element " # N " is longer than the " # length " allowed length (was %d)"
|
||||||
|
|
||||||
/** Validates the max length of given input and throws an HttpParserError exception if over. */
|
/** Validates the max length of given input and throws an HttpParserError exception if over. */
|
||||||
#define VALIDATE_MAX_LENGTH(len, N) if(len > MAX_##N##_LENGTH) { rb_raise(eHttpParserError, "%s", MAX_##N##_LENGTH_ERR); }
|
#define VALIDATE_MAX_LENGTH(len, N) if(len > MAX_##N##_LENGTH) { rb_raise(eHttpParserError, MAX_##N##_LENGTH_ERR, len); }
|
||||||
|
|
||||||
/** Defines global strings in the init method. */
|
/** Defines global strings in the init method. */
|
||||||
#define DEF_GLOBAL(N, val) global_##N = rb_str_new2(val); rb_global_variable(&global_##N)
|
#define DEF_GLOBAL(N, val) global_##N = rb_str_new2(val); rb_global_variable(&global_##N)
|
||||||
|
@ -173,7 +173,7 @@ static VALUE find_common_field_value(const char *field, size_t flen)
|
||||||
#endif /* !HAVE_QSORT_BSEARCH */
|
#endif /* !HAVE_QSORT_BSEARCH */
|
||||||
}
|
}
|
||||||
|
|
||||||
void http_field(http_parser* hp, const char *field, size_t flen,
|
void http_field(puma_parser* hp, const char *field, size_t flen,
|
||||||
const char *value, size_t vlen)
|
const char *value, size_t vlen)
|
||||||
{
|
{
|
||||||
VALUE v = Qnil;
|
VALUE v = Qnil;
|
||||||
|
@ -204,7 +204,7 @@ void http_field(http_parser* hp, const char *field, size_t flen,
|
||||||
rb_hash_aset(hp->request, f, v);
|
rb_hash_aset(hp->request, f, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
void request_method(http_parser* hp, const char *at, size_t length)
|
void request_method(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = Qnil;
|
VALUE val = Qnil;
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ void request_method(http_parser* hp, const char *at, size_t length)
|
||||||
rb_hash_aset(hp->request, global_request_method, val);
|
rb_hash_aset(hp->request, global_request_method, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void request_uri(http_parser* hp, const char *at, size_t length)
|
void request_uri(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = Qnil;
|
VALUE val = Qnil;
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ void request_uri(http_parser* hp, const char *at, size_t length)
|
||||||
rb_hash_aset(hp->request, global_request_uri, val);
|
rb_hash_aset(hp->request, global_request_uri, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fragment(http_parser* hp, const char *at, size_t length)
|
void fragment(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = Qnil;
|
VALUE val = Qnil;
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ void fragment(http_parser* hp, const char *at, size_t length)
|
||||||
rb_hash_aset(hp->request, global_fragment, val);
|
rb_hash_aset(hp->request, global_fragment, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void request_path(http_parser* hp, const char *at, size_t length)
|
void request_path(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = Qnil;
|
VALUE val = Qnil;
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ void request_path(http_parser* hp, const char *at, size_t length)
|
||||||
rb_hash_aset(hp->request, global_request_path, val);
|
rb_hash_aset(hp->request, global_request_path, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void query_string(http_parser* hp, const char *at, size_t length)
|
void query_string(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = Qnil;
|
VALUE val = Qnil;
|
||||||
|
|
||||||
|
@ -252,7 +252,7 @@ void query_string(http_parser* hp, const char *at, size_t length)
|
||||||
rb_hash_aset(hp->request, global_query_string, val);
|
rb_hash_aset(hp->request, global_query_string, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void http_version(http_parser* hp, const char *at, size_t length)
|
void http_version(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
VALUE val = rb_str_new(at, length);
|
VALUE val = rb_str_new(at, length);
|
||||||
rb_hash_aset(hp->request, global_http_version, val);
|
rb_hash_aset(hp->request, global_http_version, val);
|
||||||
|
@ -261,7 +261,7 @@ void http_version(http_parser* hp, const char *at, size_t length)
|
||||||
/** Finalizes the request header to have a bunch of stuff that's
|
/** Finalizes the request header to have a bunch of stuff that's
|
||||||
needed. */
|
needed. */
|
||||||
|
|
||||||
void header_done(http_parser* hp, const char *at, size_t length)
|
void header_done(puma_parser* hp, const char *at, size_t length)
|
||||||
{
|
{
|
||||||
hp->body = rb_str_new(at, length);
|
hp->body = rb_str_new(at, length);
|
||||||
}
|
}
|
||||||
|
@ -275,14 +275,14 @@ void HttpParser_free(void *data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HttpParser_mark(http_parser* hp) {
|
void HttpParser_mark(puma_parser* hp) {
|
||||||
if(hp->request) rb_gc_mark(hp->request);
|
if(hp->request) rb_gc_mark(hp->request);
|
||||||
if(hp->body) rb_gc_mark(hp->body);
|
if(hp->body) rb_gc_mark(hp->body);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE HttpParser_alloc(VALUE klass)
|
VALUE HttpParser_alloc(VALUE klass)
|
||||||
{
|
{
|
||||||
http_parser *hp = ALLOC_N(http_parser, 1);
|
puma_parser *hp = ALLOC_N(puma_parser, 1);
|
||||||
TRACE();
|
TRACE();
|
||||||
hp->http_field = http_field;
|
hp->http_field = http_field;
|
||||||
hp->request_method = request_method;
|
hp->request_method = request_method;
|
||||||
|
@ -294,7 +294,7 @@ VALUE HttpParser_alloc(VALUE klass)
|
||||||
hp->header_done = header_done;
|
hp->header_done = header_done;
|
||||||
hp->request = Qnil;
|
hp->request = Qnil;
|
||||||
|
|
||||||
http_parser_init(hp);
|
puma_parser_init(hp);
|
||||||
|
|
||||||
return Data_Wrap_Struct(klass, HttpParser_mark, HttpParser_free, hp);
|
return Data_Wrap_Struct(klass, HttpParser_mark, HttpParser_free, hp);
|
||||||
}
|
}
|
||||||
|
@ -307,9 +307,9 @@ VALUE HttpParser_alloc(VALUE klass)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_init(VALUE self)
|
VALUE HttpParser_init(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
http_parser_init(http);
|
puma_parser_init(http);
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -324,9 +324,9 @@ VALUE HttpParser_init(VALUE self)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_reset(VALUE self)
|
VALUE HttpParser_reset(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
http_parser_init(http);
|
puma_parser_init(http);
|
||||||
|
|
||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
@ -341,11 +341,11 @@ VALUE HttpParser_reset(VALUE self)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_finish(VALUE self)
|
VALUE HttpParser_finish(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
http_parser_finish(http);
|
puma_parser_finish(http);
|
||||||
|
|
||||||
return http_parser_is_finished(http) ? Qtrue : Qfalse;
|
return puma_parser_is_finished(http) ? Qtrue : Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -368,12 +368,12 @@ VALUE HttpParser_finish(VALUE self)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
|
VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
int from = 0;
|
int from = 0;
|
||||||
char *dptr = NULL;
|
char *dptr = NULL;
|
||||||
long dlen = 0;
|
long dlen = 0;
|
||||||
|
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
|
|
||||||
from = FIX2INT(start);
|
from = FIX2INT(start);
|
||||||
dptr = rb_extract_chars(data, &dlen);
|
dptr = rb_extract_chars(data, &dlen);
|
||||||
|
@ -383,15 +383,15 @@ VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
|
||||||
rb_raise(eHttpParserError, "%s", "Requested start is after data buffer end.");
|
rb_raise(eHttpParserError, "%s", "Requested start is after data buffer end.");
|
||||||
} else {
|
} else {
|
||||||
http->request = req_hash;
|
http->request = req_hash;
|
||||||
http_parser_execute(http, dptr, dlen, from);
|
puma_parser_execute(http, dptr, dlen, from);
|
||||||
|
|
||||||
rb_free_chars(dptr);
|
rb_free_chars(dptr);
|
||||||
VALIDATE_MAX_LENGTH(http_parser_nread(http), HEADER);
|
VALIDATE_MAX_LENGTH(puma_parser_nread(http), HEADER);
|
||||||
|
|
||||||
if(http_parser_has_error(http)) {
|
if(puma_parser_has_error(http)) {
|
||||||
rb_raise(eHttpParserError, "%s", "Invalid HTTP format, parsing fails.");
|
rb_raise(eHttpParserError, "%s", "Invalid HTTP format, parsing fails.");
|
||||||
} else {
|
} else {
|
||||||
return INT2FIX(http_parser_nread(http));
|
return INT2FIX(puma_parser_nread(http));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -406,10 +406,10 @@ VALUE HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_has_error(VALUE self)
|
VALUE HttpParser_has_error(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
|
|
||||||
return http_parser_has_error(http) ? Qtrue : Qfalse;
|
return puma_parser_has_error(http) ? Qtrue : Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -421,10 +421,10 @@ VALUE HttpParser_has_error(VALUE self)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_is_finished(VALUE self)
|
VALUE HttpParser_is_finished(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
|
|
||||||
return http_parser_is_finished(http) ? Qtrue : Qfalse;
|
return puma_parser_is_finished(http) ? Qtrue : Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -437,8 +437,8 @@ VALUE HttpParser_is_finished(VALUE self)
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_nread(VALUE self)
|
VALUE HttpParser_nread(VALUE self)
|
||||||
{
|
{
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
|
|
||||||
return INT2FIX(http->nread);
|
return INT2FIX(http->nread);
|
||||||
}
|
}
|
||||||
|
@ -450,8 +450,8 @@ VALUE HttpParser_nread(VALUE self)
|
||||||
* If the request included a body, returns it.
|
* If the request included a body, returns it.
|
||||||
*/
|
*/
|
||||||
VALUE HttpParser_body(VALUE self) {
|
VALUE HttpParser_body(VALUE self) {
|
||||||
http_parser *http = NULL;
|
puma_parser *http = NULL;
|
||||||
DATA_GET(self, http_parser, http);
|
DATA_GET(self, puma_parser, http);
|
||||||
|
|
||||||
return http->body;
|
return http->body;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue