From 3726b7ef198ea8f418bc014215e42849638e424e Mon Sep 17 00:00:00 2001 From: Evan Phoenix Date: Thu, 18 Jul 2013 11:22:18 -0700 Subject: [PATCH] Change parser symbol names to avoid clash. Fixes #179 --- ext/puma_http11/http11_parser.c | 30 +++++----- ext/puma_http11/http11_parser.h | 22 +++---- ext/puma_http11/http11_parser.rl | 24 ++++---- ext/puma_http11/http11_parser_common.rl | 2 +- ext/puma_http11/puma_http11.c | 78 ++++++++++++------------- 5 files changed, 78 insertions(+), 78 deletions(-) diff --git a/ext/puma_http11/http11_parser.c b/ext/puma_http11/http11_parser.c index a11a4ed8..619dd68f 100644 --- a/ext/puma_http11/http11_parser.c +++ b/ext/puma_http11/http11_parser.c @@ -36,21 +36,21 @@ static void snake_upcase_char(char *c) /** Data **/ #line 39 "ext/http11/http11_parser.c" -static const int http_parser_start = 1; -static const int http_parser_first_final = 57; -static const int http_parser_error = 0; +static const int puma_parser_start = 1; +static const int puma_parser_first_final = 57; +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" -int http_parser_init(http_parser *parser) { +int puma_parser_init(puma_parser *parser) { int cs = 0; #line 52 "ext/http11/http11_parser.c" { - cs = http_parser_start; + cs = puma_parser_start; } #line 86 "ext/http11/http11_parser.rl" @@ -69,7 +69,7 @@ int http_parser_init(http_parser *parser) { /** 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; int cs = parser->cs; @@ -1191,7 +1191,7 @@ case 56: #line 114 "ext/http11/http11_parser.rl" - if (!http_parser_has_error(parser)) + if (!puma_parser_has_error(parser)) parser->cs = cs; parser->nread += p - (buffer + off); @@ -1205,21 +1205,21 @@ case 56: 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; - } else if (http_parser_is_finished(parser) ) { + } else if (puma_parser_is_finished(parser) ) { return 1; } else { return 0; } } -int http_parser_has_error(http_parser *parser) { - return parser->cs == http_parser_error; +int puma_parser_has_error(puma_parser *parser) { + return parser->cs == puma_parser_error; } -int http_parser_is_finished(http_parser *parser) { - return parser->cs >= http_parser_first_final; +int puma_parser_is_finished(puma_parser *parser) { + return parser->cs >= puma_parser_first_final; } diff --git a/ext/puma_http11/http11_parser.h b/ext/puma_http11/http11_parser.h index 13e4a241..b9433a43 100644 --- a/ext/puma_http11/http11_parser.h +++ b/ext/puma_http11/http11_parser.h @@ -16,16 +16,16 @@ #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); -typedef void (*field_cb)(struct http_parser* hp, +typedef void (*field_cb)(struct puma_parser* hp, const char *field, size_t flen, const char *value, size_t vlen); -typedef struct http_parser { +typedef struct puma_parser { int cs; size_t body_start; int content_len; @@ -49,15 +49,15 @@ typedef struct http_parser { char buf[BUFFER_LEN]; -} http_parser; +} puma_parser; -int http_parser_init(http_parser *parser); -int http_parser_finish(http_parser *parser); -size_t http_parser_execute(http_parser *parser, const char *data, +int puma_parser_init(puma_parser *parser); +int puma_parser_finish(puma_parser *parser); +size_t puma_parser_execute(puma_parser *parser, const char *data, size_t len, size_t off); -int http_parser_has_error(http_parser *parser); -int http_parser_is_finished(http_parser *parser); +int puma_parser_has_error(puma_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 diff --git a/ext/puma_http11/http11_parser.rl b/ext/puma_http11/http11_parser.rl index 459cc709..02da6d3c 100644 --- a/ext/puma_http11/http11_parser.rl +++ b/ext/puma_http11/http11_parser.rl @@ -29,7 +29,7 @@ static void snake_upcase_char(char *c) %%{ - machine http_parser; + machine puma_parser; action mark { MARK(mark, fpc); } @@ -73,14 +73,14 @@ static void snake_upcase_char(char *c) fbreak; } - include http_parser_common "http11_parser_common.rl"; + include puma_parser_common "http11_parser_common.rl"; }%% /** Data **/ %% write data; -int http_parser_init(http_parser *parser) { +int puma_parser_init(puma_parser *parser) { int cs = 0; %% write init; parser->cs = cs; @@ -98,7 +98,7 @@ int http_parser_init(http_parser *parser) { /** 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; int cs = parser->cs; @@ -112,7 +112,7 @@ size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, %% write exec; - if (!http_parser_has_error(parser)) + if (!puma_parser_has_error(parser)) parser->cs = cs; 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); } -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; - } else if (http_parser_is_finished(parser) ) { + } else if (puma_parser_is_finished(parser) ) { return 1; } else { return 0; } } -int http_parser_has_error(http_parser *parser) { - return parser->cs == http_parser_error; +int puma_parser_has_error(puma_parser *parser) { + return parser->cs == puma_parser_error; } -int http_parser_is_finished(http_parser *parser) { - return parser->cs >= http_parser_first_final; +int puma_parser_is_finished(puma_parser *parser) { + return parser->cs >= puma_parser_first_final; } diff --git a/ext/puma_http11/http11_parser_common.rl b/ext/puma_http11/http11_parser_common.rl index 53c805f0..44468c69 100644 --- a/ext/puma_http11/http11_parser_common.rl +++ b/ext/puma_http11/http11_parser_common.rl @@ -1,6 +1,6 @@ %%{ - machine http_parser_common; + machine puma_parser_common; #### HTTP PROTOCOL GRAMMAR # line endings diff --git a/ext/puma_http11/puma_http11.c b/ext/puma_http11/puma_http11.c index a3fd9d62..ce7108a5 100644 --- a/ext/puma_http11/puma_http11.c +++ b/ext/puma_http11/puma_http11.c @@ -38,10 +38,10 @@ static VALUE global_http_version; static VALUE global_request_path; /** 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. */ -#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. */ #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 */ } -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) { 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); } -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; @@ -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); } -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; @@ -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); } -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; @@ -232,7 +232,7 @@ void fragment(http_parser* hp, const char *at, size_t length) 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; @@ -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); } -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; @@ -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); } -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); 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 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); } @@ -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->body) rb_gc_mark(hp->body); } VALUE HttpParser_alloc(VALUE klass) { - http_parser *hp = ALLOC_N(http_parser, 1); + puma_parser *hp = ALLOC_N(puma_parser, 1); TRACE(); hp->http_field = http_field; hp->request_method = request_method; @@ -294,7 +294,7 @@ VALUE HttpParser_alloc(VALUE klass) hp->header_done = header_done; hp->request = Qnil; - http_parser_init(hp); + puma_parser_init(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) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); - http_parser_init(http); + puma_parser *http = NULL; + DATA_GET(self, puma_parser, http); + puma_parser_init(http); return self; } @@ -324,9 +324,9 @@ VALUE HttpParser_init(VALUE self) */ VALUE HttpParser_reset(VALUE self) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); - http_parser_init(http); + puma_parser *http = NULL; + DATA_GET(self, puma_parser, http); + puma_parser_init(http); return Qnil; } @@ -341,11 +341,11 @@ VALUE HttpParser_reset(VALUE self) */ VALUE HttpParser_finish(VALUE self) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); - http_parser_finish(http); + puma_parser *http = NULL; + DATA_GET(self, puma_parser, 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) { - http_parser *http = NULL; + puma_parser *http = NULL; int from = 0; char *dptr = NULL; long dlen = 0; - DATA_GET(self, http_parser, http); + DATA_GET(self, puma_parser, http); from = FIX2INT(start); 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."); } else { http->request = req_hash; - http_parser_execute(http, dptr, dlen, from); + puma_parser_execute(http, dptr, dlen, from); 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."); } 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) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); + puma_parser *http = NULL; + 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) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); + puma_parser *http = NULL; + 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) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); + puma_parser *http = NULL; + DATA_GET(self, puma_parser, http); return INT2FIX(http->nread); } @@ -450,8 +450,8 @@ VALUE HttpParser_nread(VALUE self) * If the request included a body, returns it. */ VALUE HttpParser_body(VALUE self) { - http_parser *http = NULL; - DATA_GET(self, http_parser, http); + puma_parser *http = NULL; + DATA_GET(self, puma_parser, http); return http->body; }