aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2019-06-17 19:48:56 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2019-06-17 19:48:56 +0300
commitd9887ee2ae9069843eed67d5b5ea625a7faeedb1 (patch)
treebd28c07f58f2feb99a4bc254ca13960713d30456
parentdda58fc63b64227a19657ed92168b9f645c0c86e (diff)
downloadnginx-d9887ee2ae9069843eed67d5b5ea625a7faeedb1.tar.gz
nginx-d9887ee2ae9069843eed67d5b5ea625a7faeedb1.zip
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.
-rw-r--r--src/http/modules/perl/nginx.xs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/http/modules/perl/nginx.xs b/src/http/modules/perl/nginx.xs
index ad1263287..848e50199 100644
--- 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);