[PATCH] Allow 1xx 2xx 3xx 4xx 5xx codes in xxxxx_cache_valid directives.
Gena Makhomed
gmm at csdoc.com
Fri Sep 21 11:24:49 UTC 2018
# HG changeset patch
# User Gena Makhomed <gmm at csdoc.com>
# Date 1537528104 -10800
# Fri Sep 21 14:08:24 2018 +0300
# Node ID a7533f3f3138fe5524a0f14293da4149e65b1402
# Parent 87d2ea860f380dc8418c97c0163412f53c2d008e
Allow 1xx 2xx 3xx 4xx 5xx codes in xxxxx_cache_valid directives.
For example, config fragment
fastcgi_cache_valid 200 201 202 203 204 205 206 207 208 226 5m;
fastcgi_cache_valid 300 301 302 303 304 305 306 307 308 10m;
now can be rewritten as
fastcgi_cache_valid 2xx 5m;
fastcgi_cache_valid 3xx 10m;
diff -r 87d2ea860f38 -r a7533f3f3138 src/http/ngx_http_file_cache.c
--- a/src/http/ngx_http_file_cache.c Mon Sep 10 18:57:39 2018 +0300
+++ b/src/http/ngx_http_file_cache.c Fri Sep 21 14:08:24 2018 +0300
@@ -2290,6 +2290,26 @@
return valid[i].valid;
}
+ if (valid[i].status == 1 && status >= 100 && status <= 199) {
+ return valid[i].valid;
+ }
+
+ if (valid[i].status == 2 && status >= 200 && status <= 299) {
+ return valid[i].valid;
+ }
+
+ if (valid[i].status == 3 && status >= 300 && status <= 399) {
+ return valid[i].valid;
+ }
+
+ if (valid[i].status == 4 && status >= 400 && status <= 499) {
+ return valid[i].valid;
+ }
+
+ if (valid[i].status == 5 && status >= 500 && status <= 599) {
+ return valid[i].valid;
+ }
+
if (valid[i].status == status) {
return valid[i].valid;
}
@@ -2666,10 +2686,30 @@
status = 0;
+ } else if(ngx_strcmp(value[i].data, "1xx") == 0) {
+
+ status = 1;
+
+ } else if(ngx_strcmp(value[i].data, "2xx") == 0) {
+
+ status = 2;
+
+ } else if(ngx_strcmp(value[i].data, "3xx") == 0) {
+
+ status = 3;
+
+ } else if(ngx_strcmp(value[i].data, "4xx") == 0) {
+
+ status = 4;
+
+ } else if(ngx_strcmp(value[i].data, "5xx") == 0) {
+
+ status = 5;
+
} else {
status = ngx_atoi(value[i].data, value[i].len);
- if (status < 100) {
+ if (status < 100 || status > 599) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"invalid status \"%V\"", &value[i]);
return NGX_CONF_ERROR;
More information about the nginx-devel
mailing list