Hey Maxim, > I would prefer to preserve the typical code path (when there are no > trailers) without an extra allocation. It looks like it would be > as trivail as: > > @@ -273,14 +273,18 @@ ngx_http_chunked_create_trailers(ngx_htt > b->memory = 1; > b->last_buf = 1; > > + if (len == sizeof(CRLF "0" CRLF CRLF) - 1) { > + b->pos = (u_char *) CRLF "0" CRLF CRLF; > + b->last = b->pos + sizeof(CRLF "0" CRLF CRLF) - 1; > + return cl; > + }
Sounds good, but the if statement reads a bit weird. What about this instead, even though it might be a bit more expensive? @@ -236,7 +236,7 @@ ngx_http_chunked_create_trailers(ngx_http_request_t *r, ngx_list_part_t *part; ngx_table_elt_t *header; - len = sizeof(CRLF "0" CRLF CRLF) - 1; + len = 0; part = &r->headers_out.trailers.part; header = part->elts; @@ -273,12 +273,14 @@ ngx_http_chunked_create_trailers(ngx_http_request_t *r, b->memory = 1; b->last_buf = 1; - if (len == sizeof(CRLF "0" CRLF CRLF) - 1) { + if (len == 0) { b->pos = (u_char *) CRLF "0" CRLF CRLF; b->last = b->pos + sizeof(CRLF "0" CRLF CRLF) - 1; return cl; } + len += sizeof(CRLF "0" CRLF CRLF) - 1; + b->pos = ngx_palloc(r->pool, len); if (b->pos == NULL) { return NULL; Best regards, Piotr Sikora _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel