21
21
#define CONTENT_LENGTH (parser->current_request->content_length)
22
22
23
23
#define LEN(FROM) (p - parser->FROM##_mark)
24
- #define CALLBACK(FOR) \
25
- if(parser->FOR##_mark && CURRENT->FOR) { \
26
- CURRENT->FOR( CURRENT \
27
- , parser->FOR##_mark \
28
- , p - parser->FOR##_mark \
29
- ); \
24
+ #define CALLBACK(FOR) \
25
+ if(parser->FOR##_mark && CURRENT->on_## FOR) { \
26
+ CURRENT->on_## FOR( CURRENT \
27
+ , parser->FOR##_mark \
28
+ , p - parser->FOR##_mark \
29
+ ); \
30
30
}
31
- #define HEADER_CALLBACK(FOR) \
32
- if(parser->FOR##_mark && CURRENT->FOR) { \
33
- CURRENT->FOR( CURRENT \
34
- , parser->FOR##_mark \
35
- , p - parser->FOR##_mark \
36
- , CURRENT->number_of_headers \
37
- ); \
31
+ #define HEADER_CALLBACK(FOR) \
32
+ if(parser->FOR##_mark && CURRENT->on_## FOR) { \
33
+ CURRENT->on_## FOR( CURRENT \
34
+ , parser->FOR##_mark \
35
+ , p - parser->FOR##_mark \
36
+ , CURRENT->number_of_headers \
37
+ ); \
38
38
}
39
- #define END_REQUEST \
40
- if(CURRENT->request_complete ) \
41
- CURRENT->request_complete (CURRENT); \
39
+ #define END_REQUEST \
40
+ if(CURRENT->on_complete ) \
41
+ CURRENT->on_complete (CURRENT); \
42
42
CURRENT = NULL;
43
43
44
44
%%{
48
48
action mark_header_value { parser->header_value_mark = p; }
49
49
action mark_fragment { parser->fragment_mark = p; }
50
50
action mark_query_string { parser->query_string_mark = p; }
51
- action mark_request_path { parser->request_path_mark = p; }
52
- action mark_request_uri { parser->request_uri_mark = p; }
51
+ action mark_request_path { parser->path_mark = p; }
52
+ action mark_request_uri { parser->uri_mark = p; }
53
53
54
54
action method_copy { CURRENT->method = EBB_COPY; }
55
55
action method_delete { CURRENT->method = EBB_DELETE; }
80
80
81
81
action request_uri {
82
82
//printf("request uri\n");
83
- CALLBACK(request_uri );
84
- parser->request_uri_mark = NULL;
83
+ CALLBACK(uri );
84
+ parser->uri_mark = NULL;
85
85
}
86
86
87
87
action fragment {
98
98
99
99
action request_path {
100
100
//printf("request path\n");
101
- CALLBACK(request_path );
102
- parser->request_path_mark = NULL;
101
+ CALLBACK(path );
102
+ parser->path_mark = NULL;
103
103
}
104
104
105
105
action content_length {
146
146
}
147
147
148
148
action end_headers {
149
- if(CURRENT->headers_complete )
150
- CURRENT->headers_complete (CURRENT);
149
+ if(CURRENT->on_headers_complete )
150
+ CURRENT->on_headers_complete (CURRENT);
151
151
}
152
152
153
153
action add_to_chunk_size {
169
169
//printf("chunk_size: %d\n", parser->chunk_size);
170
170
if(parser->chunk_size > REMAINING) {
171
171
parser->eating = TRUE;
172
- CURRENT->body_handler (CURRENT, p, REMAINING);
172
+ CURRENT->on_body (CURRENT, p, REMAINING);
173
173
parser->chunk_size -= REMAINING;
174
174
fhold;
175
175
fbreak;
176
176
} else {
177
- CURRENT->body_handler (CURRENT, p, parser->chunk_size);
177
+ CURRENT->on_body (CURRENT, p, parser->chunk_size);
178
178
p += parser->chunk_size;
179
179
parser->chunk_size = 0;
180
180
parser->eating = FALSE;
216
216
*
217
217
*/
218
218
p += 1;
219
- if( CURRENT->body_handler )
220
- CURRENT->body_handler (CURRENT, p, CURRENT->content_length);
219
+ if( CURRENT->on_body )
220
+ CURRENT->on_body (CURRENT, p, CURRENT->content_length);
221
221
222
222
p += CURRENT->content_length;
223
223
CURRENT->body_read = CURRENT->content_length;
240
240
p += 1;
241
241
size_t eat = REMAINING;
242
242
243
- if( CURRENT->body_handler && eat > 0)
244
- CURRENT->body_handler (CURRENT, p, eat);
243
+ if( CURRENT->on_body && eat > 0)
244
+ CURRENT->on_body (CURRENT, p, eat);
245
245
246
246
p += eat;
247
247
CURRENT->body_read += eat;
@@ -385,8 +385,8 @@ void ebb_request_parser_init(ebb_request_parser *parser)
385
385
parser->current_request = NULL;
386
386
387
387
parser->header_field_mark = parser->header_value_mark =
388
- parser->query_string_mark = parser->request_path_mark =
389
- parser->request_uri_mark = parser->fragment_mark = NULL;
388
+ parser->query_string_mark = parser->path_mark =
389
+ parser->uri_mark = parser->fragment_mark = NULL;
390
390
391
391
parser->new_request = NULL;
392
392
}
@@ -418,7 +418,7 @@ size_t ebb_request_parser_execute(ebb_request_parser *parser, const char *buffer
418
418
if(eat == parser->chunk_size) {
419
419
parser->eating = FALSE;
420
420
}
421
- CURRENT->body_handler (CURRENT, p, eat);
421
+ CURRENT->on_body (CURRENT, p, eat);
422
422
p += eat;
423
423
parser->chunk_size -= eat;
424
424
//printf("eat: %d\n", eat);
@@ -431,7 +431,7 @@ size_t ebb_request_parser_execute(ebb_request_parser *parser, const char *buffer
431
431
//printf("eat normal body (before parse)\n");
432
432
size_t eat = MIN(len, CURRENT->content_length - CURRENT->body_read);
433
433
434
- CURRENT->body_handler (CURRENT, p, eat);
434
+ CURRENT->on_body (CURRENT, p, eat);
435
435
p += eat;
436
436
CURRENT->body_read += eat;
437
437
@@ -444,8 +444,8 @@ size_t ebb_request_parser_execute(ebb_request_parser *parser, const char *buffer
444
444
if(parser->header_value_mark) parser->header_value_mark = buffer;
445
445
if(parser->fragment_mark) parser->fragment_mark = buffer;
446
446
if(parser->query_string_mark) parser->query_string_mark = buffer;
447
- if(parser->request_path_mark ) parser->request_path_mark = buffer;
448
- if(parser->request_uri_mark ) parser->request_uri_mark = buffer;
447
+ if(parser->path_mark ) parser->path_mark = buffer;
448
+ if(parser->uri_mark ) parser->uri_mark = buffer;
449
449
450
450
%% write exec;
451
451
@@ -457,8 +457,8 @@ size_t ebb_request_parser_execute(ebb_request_parser *parser, const char *buffer
457
457
HEADER_CALLBACK(header_value);
458
458
CALLBACK(fragment);
459
459
CALLBACK(query_string);
460
- CALLBACK(request_path );
461
- CALLBACK(request_uri );
460
+ CALLBACK(path );
461
+ CALLBACK(uri );
462
462
463
463
assert(p <= pe && "buffer overflow after parsing execute");
464
464
@@ -488,15 +488,15 @@ void ebb_request_init(ebb_request *request)
488
488
request->multipart_boundary_len = 0;
489
489
request->keep_alive = -1;
490
490
491
- request->request_complete = NULL;
492
- request->headers_complete = NULL;
493
- request->body_handler = NULL;
494
- request->header_field = NULL;
495
- request->header_value = NULL;
496
- request->request_uri = NULL;
497
- request->fragment = NULL;
498
- request->request_path = NULL;
499
- request->query_string = NULL;
491
+ request->on_complete = NULL;
492
+ request->on_headers_complete = NULL;
493
+ request->on_body = NULL;
494
+ request->on_header_field = NULL;
495
+ request->on_header_value = NULL;
496
+ request->on_uri = NULL;
497
+ request->on_fragment = NULL;
498
+ request->on_path = NULL;
499
+ request->on_query_string = NULL;
500
500
}
501
501
502
502
int ebb_request_should_keep_alive(ebb_request *request)
0 commit comments