Mercurial > hg > nginx
comparison src/http/modules/perl/ngx_http_perl_module.c @ 7530:fd9252844ec1
Perl: avoid returning 500 if header was already sent.
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.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 12 Jul 2019 15:39:25 +0300 |
parents | d758d04e0790 |
children | ede052c67512 |
comparison
equal
deleted
inserted
replaced
7529:d758d04e0790 | 7530:fd9252844ec1 |
---|---|
778 return NGX_ERROR; | 778 return NGX_ERROR; |
779 } | 779 } |
780 | 780 |
781 ctx->redirect_uri.len = 0; | 781 ctx->redirect_uri.len = 0; |
782 | 782 |
783 if (ctx->header_sent) { | |
784 return NGX_ERROR; | |
785 } | |
786 | |
783 return NGX_HTTP_INTERNAL_SERVER_ERROR; | 787 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
784 } | 788 } |
785 | 789 |
786 if (n != 1) { | 790 if (n != 1) { |
787 ngx_log_error(NGX_LOG_ALERT, c->log, 0, | 791 ngx_log_error(NGX_LOG_ALERT, c->log, 0, |