[nginx] Perl: disabled not_modified filter (ticket #1786).

Maxim Dounin mdounin at mdounin.ru
Mon Jun 17 18:38:52 UTC 2019

details:   https://hg.nginx.org/nginx/rev/36c52a0f6ded
changeset: 7516:36c52a0f6ded
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Mon Jun 17 19:48:56 2019 +0300
Perl: disabled not_modified filter (ticket #1786).

Embedded perl does not set any request fields needed for conditional
requests processing.  Further, filter finalization in the not_modified
filter can cause segmentation faults due to cleared ctx as in
ticket #1786.

Before 5fb1e57c758a (1.7.3) the not_modified filter was implicitly disabled
for perl responses, as r->headers_out.last_modified_time was -1.  This
change restores this behaviour by using the explicit r->disable_not_modified

Note that this patch doesn't try to address perl module robustness against
filter finalization and other errors returned from filter chains.  It should
be eventually reworked to handle errors instead of ignoring them.


 src/http/modules/perl/nginx.xs |  2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diffs (12 lines):

diff --git a/src/http/modules/perl/nginx.xs b/src/http/modules/perl/nginx.xs
--- a/src/http/modules/perl/nginx.xs
+++ b/src/http/modules/perl/nginx.xs
@@ -147,6 +147,8 @@ send_http_header(r, ...)
+    r->disable_not_modified = 1;
     (void) ngx_http_send_header(r);

More information about the nginx-devel mailing list