[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
branches:  
changeset: 7516:36c52a0f6ded
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Mon Jun 17 19:48:56 2019 +0300
description:
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
flag.

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.

diffstat:

 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