Exemplo n.º 1
0
// generic-message = start-line
//                   *(message-header CRLF)
//                   CRLF
//                   [ message-body ]
const char* parse_generic_message(unsigned char** p)
{
	if (parse_start_line(p))
		return ERR;

	while (0 != (char)**p) {
		if (parse_message_header(p))
			break;
		if (parse_crlf(p))
			return ERR;
	}

	if (parse_crlf(p))
		return ERR;

	return parse_message_body(p);
}
Exemplo n.º 2
0
http_request_t *parse_http_request(http_parser_t *parser, const char *data, size_t len)
{
    if (!parser || !data || !len)
        return NULL;

    parser->data = data;
    parser->len = len;

    parser->parse_ptr = (char*)data;

    parse_method(parser);
    parse_char(parser, ' ');
    parse_absolute_path(parser);
    parse_params(parser);
    parse_char(parser, ' ');
    parse_http_version(parser);
    parse_crlf(parser);
    while (parse_message_header(parser) == 0)
        ;

    return &parser->req;
}