Image-CCV
view release on metacpan or search on metacpan
ccv-src/serve/ebb_request_parser.c view on Meta::CPAN
if ( 48 <= (*p) && (*p) <= 57 )
goto st81;
} else if ( (*p) > 90 ) {
if ( 94 <= (*p) && (*p) <= 122 )
goto st81;
} else
goto st81;
} else
goto st81;
goto st0;
tr103:
#line 81 "ebb_request_parser.rl"
{
//printf("write_field!\n");
HEADER_CALLBACK(header_field);
parser->header_field_mark = NULL;
}
goto st82;
st82:
if ( ++p == pe )
goto _test_eof82;
case 82:
#line 1653 "ebb_request_parser.c"
switch( (*p) ) {
case 13: goto tr105;
case 32: goto st82;
}
goto tr104;
tr104:
#line 60 "ebb_request_parser.rl"
{ parser->header_value_mark = p; }
goto st83;
st83:
if ( ++p == pe )
goto _test_eof83;
case 83:
#line 1667 "ebb_request_parser.c"
if ( (*p) == 13 )
goto tr108;
goto st83;
tr105:
#line 60 "ebb_request_parser.rl"
{ parser->header_value_mark = p; }
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr108:
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr133:
#line 127 "ebb_request_parser.rl"
{ CURRENT->keep_alive = FALSE; }
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr143:
#line 126 "ebb_request_parser.rl"
{ CURRENT->keep_alive = TRUE; }
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr221:
#line 138 "ebb_request_parser.rl"
{
CURRENT->expect_continue = TRUE;
}
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr231:
#line 142 "ebb_request_parser.rl"
{
//printf("trailer\n");
/* not implemenetd yet. (do requests even have trailing headers?) */
}
#line 60 "ebb_request_parser.rl"
{ parser->header_value_mark = p; }
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr234:
#line 142 "ebb_request_parser.rl"
{
//printf("trailer\n");
/* not implemenetd yet. (do requests even have trailing headers?) */
}
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
tr258:
#line 123 "ebb_request_parser.rl"
{ CURRENT->transfer_encoding = EBB_IDENTITY; }
#line 87 "ebb_request_parser.rl"
{
//printf("write_value!\n");
HEADER_CALLBACK(header_value);
parser->header_value_mark = NULL;
}
goto st84;
st84:
if ( ++p == pe )
goto _test_eof84;
ccv-src/serve/ebb_request_parser.c view on Meta::CPAN
_test_eof252: cs = 252; goto _test_eof;
_test_eof238: cs = 238; goto _test_eof;
_test_eof239: cs = 239; goto _test_eof;
_test_eof240: cs = 240; goto _test_eof;
_test_eof241: cs = 241; goto _test_eof;
_test_eof242: cs = 242; goto _test_eof;
_test_eof243: cs = 243; goto _test_eof;
_test_eof244: cs = 244; goto _test_eof;
_test_eof245: cs = 245; goto _test_eof;
_test_eof246: cs = 246; goto _test_eof;
_test_eof247: cs = 247; goto _test_eof;
_test_eof248: cs = 248; goto _test_eof;
_test_eof249: cs = 249; goto _test_eof;
_test_eof250: cs = 250; goto _test_eof;
_test_eof: {}
_out: {}
}
#line 681 "ebb_request_parser.rl"
parser->cs = cs;
parser->top = top;
COPYSTACK(parser->stack, stack);
HEADER_CALLBACK(header_field);
HEADER_CALLBACK(header_value);
CALLBACK(fragment);
CALLBACK(query_string);
CALLBACK(path);
CALLBACK(uri);
assert(p <= pe && "buffer overflow after parsing execute");
return(p - buffer);
}
int ebb_request_parser_has_error(ebb_request_parser *parser)
{
return parser->cs == ebb_request_parser_error;
}
int ebb_request_parser_is_finished(ebb_request_parser *parser)
{
return parser->cs == ebb_request_parser_first_final;
}
void ebb_request_init(ebb_request *request)
{
request->expect_continue = FALSE;
request->eating_body = 0;
request->body_read = 0;
request->content_length = 0;
request->version_major = 0;
request->version_minor = 0;
request->number_of_headers = 0;
request->transfer_encoding = EBB_IDENTITY;
request->number_of_multipart_headers = 0;
request->multipart_boundary_len = 0;
request->multipart_boundary[0] = request->multipart_boundary[1] = '-';
request->keep_alive = -1;
request->on_complete = NULL;
request->on_headers_complete = NULL;
request->on_body = NULL;
request->on_multipart_headers_complete = NULL;
request->on_multipart_header_field = NULL;
request->on_multipart_header_value = NULL;
request->on_part_data_complete = NULL;
request->on_part_data = NULL;
request->on_header_field = NULL;
request->on_header_value = NULL;
request->on_uri = NULL;
request->on_fragment = NULL;
request->on_path = NULL;
request->on_query_string = NULL;
}
int ebb_request_should_keep_alive(ebb_request *request)
{
if(request->keep_alive == -1)
if(request->version_major == 1)
return (request->version_minor != 0);
else if(request->version_major == 0)
return FALSE;
else
return TRUE;
else
return request->keep_alive;
}
( run in 1.518 second using v1.01-cache-2.11-cpan-39bf76dae61 )