Add Support for Weak ETags

Aaron Peschel aaron.peschel at gmail.com
Tue Oct 29 22:04:15 UTC 2013


On Fri, Oct 25, 2013 at 2:54 PM, Piotr Sikora <piotr at cloudflare.com> wrote:
> Hi Aaron,
> I disagree with your patch... While retaining weak ETags in case of
> gzip/gunzip modules is correct, other modules are modifying the
> content and weak ETags should be removed from responses processed by
> them.
>
> Best regards,
> Piotr Sikora
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel

What are your thoughts on the correct way to proceed from here? Should there be
two macros, ngx_http_clear_strict_etag and ngx_http_clear_etag and then have
the gunzip and gzip only clear the strict etag?

EG

#define ngx_http_clear_etag(r)                                                \
                                                                              \
    if (r->headers_out.etag) {                                                \
        r->headers_out.etag->hash = 0;                                        \
        r->headers_out.etag = NULL;                                           \
    }

#define ngx_http_clear_strict_etag(r)                                         \
                                                                              \
    if (r->headers_out.etag) {                                                \
        if (! ngx_strncmp(r->headers_out.etag->value.data, "W/", 2)) {        \
            r->headers_out.etag->hash = 0;                                    \
            r->headers_out.etag = NULL;                                       \
        }                                                                     \
    }

The gzip module is the module I am most interested in providing weak ETag
support for. Please let me know what the suggested path is here, and I will put
in the work for it.

Thank you,

-Aaron



More information about the nginx-devel mailing list