tree cc8429c66cdb82de314c3849d79ed37e842fb46c
parent 77ca973d119d999946e62553b88425cfcdc0de6a
author Maxim Dounin <mdounin@mdounin.ru> 1317122042 +0000
committer Maxim Dounin <mdounin@mdounin.ru> 1317122042 +0000

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.
