@@ -205,11 +205,14 @@ ngx_http_srcache_header_filter(ngx_http_request_t *r)
205
205
return ngx_http_next_header_filter (r );
206
206
}
207
207
208
- if (slcf -> store_max_size != 0
209
- && r -> headers_out .content_length_n >= (int ) slcf -> store_max_size ) {
210
- ngx_log_debug1 (NGX_LOG_DEBUG_HTTP , r -> connection -> log , 0 ,
211
- "bypass because of too large content-length header: %d (limit is: %d)" ,
212
- r -> headers_out .content_length_n , slcf -> store_max_size );
208
+ if (slcf -> store_max_size != 0
209
+ && r -> headers_out .content_length_n > (off_t ) slcf -> store_max_size )
210
+ {
211
+ ngx_log_debug2 (NGX_LOG_DEBUG_HTTP , r -> connection -> log , 0 ,
212
+ "bypass because of too large content-length header: "
213
+ "%O (limit is: %z)" , r -> headers_out .content_length_n ,
214
+ slcf -> store_max_size );
215
+
213
216
return ngx_http_next_header_filter (r );
214
217
}
215
218
@@ -294,12 +297,11 @@ ngx_http_srcache_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
294
297
{
295
298
ngx_http_request_t * pr ;
296
299
ngx_http_srcache_ctx_t * ctx , * pr_ctx ;
297
- ngx_int_t rc ;
300
+ ngx_int_t rc ;
298
301
ngx_chain_t * cl ;
299
- ngx_flag_t last ;
302
+ ngx_flag_t last ;
300
303
ngx_http_srcache_loc_conf_t * slcf ;
301
304
302
-
303
305
dd_enter ();
304
306
305
307
if (in == NULL ) {
@@ -383,12 +385,16 @@ ngx_http_srcache_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
383
385
}
384
386
385
387
slcf = ngx_http_get_module_loc_conf (r , ngx_http_srcache_filter_module );
386
- if (slcf -> store_max_size != 0
387
- && ctx -> body_length >= slcf -> store_max_size ) {
388
- ngx_log_debug1 (NGX_LOG_DEBUG_HTTP , r -> connection -> log , 0 ,
389
- "bypass because body reached maximum size: %d (limit is: %d)" ,
390
- ctx -> body_length , slcf -> store_max_size );
388
+
389
+ if (slcf -> store_max_size != 0
390
+ && ctx -> body_length > slcf -> store_max_size )
391
+ {
392
+ ngx_log_debug2 (NGX_LOG_DEBUG_HTTP , r -> connection -> log , 0 ,
393
+ "bypass because body exceeded maximum size: %z "
394
+ "(limit is: %z)" , ctx -> body_length , slcf -> store_max_size );
395
+
391
396
ctx -> store_response = 0 ;
397
+
392
398
goto done ;
393
399
}
394
400
@@ -502,8 +508,7 @@ ngx_http_srcache_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child)
502
508
ngx_conf_merge_size_value (conf -> buf_size , prev -> buf_size ,
503
509
(size_t ) ngx_pagesize );
504
510
505
- ngx_conf_merge_size_value (conf -> store_max_size , prev -> store_max_size ,
506
- 0 );
511
+ ngx_conf_merge_size_value (conf -> store_max_size , prev -> store_max_size , 0 );
507
512
508
513
return NGX_CONF_OK ;
509
514
}
0 commit comments