# HG changeset patch # User Maxim Dounin # Date 1560790136 -10800 # Node ID 36c52a0f6ded3e9755f0f32273abebc9eec916c9 # Parent 2db68852d6a04d974c6b90d6e5a975846449a9cc 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. 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);