]> git.kaiwu.me - nginx.git/commit
Incorrect special case for "return 204" removed.
authorMaxim Dounin <mdounin@mdounin.ru>
Tue, 27 Sep 2011 11:14:02 +0000 (11:14 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Tue, 27 Sep 2011 11:14:02 +0000 (11:14 +0000)
commit4a3884ae56cae78db8746ed7fbdce97554ee368f
treecc8429c66cdb82de314c3849d79ed37e842fb46c
parent77ca973d119d999946e62553b88425cfcdc0de6a
Incorrect special case for "return 204" removed.

The special case in question leads to replies without body in
configuration like

    location / { error_page 404 /zero; return 404; }
    location /zero { return 204; }

while replies with empty body are expected per protocol specs.

Correct one will look like

    if (status == NGX_HTTP_NO_CONTENT) {

        rc = ngx_http_send_header(r);

        if (rc == NGX_ERROR || r->header_only) {
            return rc;
        }

        return ngx_http_send_special(r, NGX_HTTP_LAST);
    }

though it looks like it's better to drop this special case at all.
src/http/ngx_http_core_module.c