Returning NGX_HTTP_INTERNAL_SERVER_ERROR if a perl code died after
sending header will lead to a "header already sent" alert. To avoid
it, we now check if header was already sent, and return NGX_ERROR
instead if it was.
}
}
+ ctx->header_sent = 1;
+
r->disable_not_modified = 1;
rc = ngx_http_send_header(r);
ctx->redirect_uri.len = 0;
+ if (ctx->header_sent) {
+ return NGX_ERROR;
+ }
+
return NGX_HTTP_INTERNAL_SERVER_ERROR;
}
unsigned done:1;
unsigned error:1;
unsigned variable:1;
+ unsigned header_sent:1;
ngx_array_t *variables; /* array of ngx_http_perl_var_t */