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,