r->request_line.len = r->request_end - r->request_start;
r->request_line.data = r->request_start;
- r->request_length = r->header_in->pos - r->request_start; /* XXX */
+ r->request_length = r->header_in->pos - r->parse_start;
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, c->log, 0,
"http request line: \"%V\"", &r->request_line);
}
if (rv == NGX_DECLINED) {
- r->request_line.len = r->header_in->end - r->request_start;
- r->request_line.data = r->request_start;
+ r->request_line.len = r->header_in->end - r->parse_start;
+ r->request_line.data = r->parse_start;
ngx_log_error(NGX_LOG_INFO, c->log, 0,
"client sent too long URI");
}
if (rv == NGX_DECLINED) {
- p = r->header_name_start;
+ p = r->parse_start;
r->lingering_close = 1;
ngx_log_error(NGX_LOG_INFO, c->log, 0,
"client sent too long header line: \"%*s...\"",
- len, r->header_name_start);
+ len, r->parse_start);
ngx_http_finalize_request(r,
NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
if (rc == NGX_OK) {
- /* XXX */
- r->request_length += r->header_in->pos - r->header_name_start;
+ r->request_length += r->header_in->pos - r->parse_start;
if (r->invalid_header && cscf->ignore_invalid_headers) {
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"http header done");
- r->request_length += r->header_in->pos - r->header_name_start; /* XXX */
+ r->request_length += r->header_in->pos - r->parse_start;
r->http_state = NGX_HTTP_PROCESS_REQUEST_STATE;
return NGX_OK;
}
- old = request_line ? r->request_start : r->header_name_start; /* XXX */
+ old = r->parse_start;
cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module);
b->pos = new + (r->header_in->pos - old);
b->last = new + (r->header_in->pos - old);
+ r->parse_start = new;
+
if (request_line) {
r->request_start = new;
len -= p - buf;
buf = p;
- if (r->request_line.data == NULL && r->request_start) {
- for (p = r->request_start; p < r->header_in->last; p++) {
+ if (r->request_line.data == NULL && r->parse_start) {
+ for (p = r->parse_start; p < r->header_in->last; p++) {
if (*p == CR || *p == LF) {
break;
}
}
- r->request_line.len = p - r->request_start;
- r->request_line.data = r->request_start;
+ r->request_line.len = p - r->parse_start;
+ r->request_line.data = r->parse_start;
}
if (r->request_line.len) {