changeset 6664:0ee6f023ef92

Geo: fixed warnings when removing nonexistent ranges. geo $geo { ranges; 10.0.0.0-10.0.0.255 test; delete 10.0.1.0-10.0.1.255; # should warn delete 10.0.0.0-10.0.0.255; delete 10.0.0.0-10.0.0.255; # should warn }
author Ruslan Ermilov <ru@nginx.com>
date Tue, 23 Aug 2016 15:59:42 +0300
parents 53198d9bf84f
children 8752257e883f
files src/http/modules/ngx_http_geo_module.c src/stream/ngx_stream_geo_module.c
diffstat 2 files changed, 6 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/modules/ngx_http_geo_module.c
+++ b/src/http/modules/ngx_http_geo_module.c
@@ -990,7 +990,7 @@ ngx_http_geo_delete_range(ngx_conf_t *cf
 
         a = (ngx_array_t *) ctx->high.low[h];
 
-        if (a == NULL) {
+        if (a == NULL || a->nelts == 0) {
             warn = 1;
             goto next;
         }
@@ -1009,13 +1009,9 @@ ngx_http_geo_delete_range(ngx_conf_t *cf
                 break;
             }
 
-            if (s != (ngx_uint_t) range[i].start
-                && e != (ngx_uint_t) range[i].end)
-            {
-                continue;
+            if (i == a->nelts - 1) {
+                warn = 1;
             }
-
-            warn = 1;
         }
 
     next:
--- a/src/stream/ngx_stream_geo_module.c
+++ b/src/stream/ngx_stream_geo_module.c
@@ -940,7 +940,7 @@ ngx_stream_geo_delete_range(ngx_conf_t *
 
         a = (ngx_array_t *) ctx->high.low[h];
 
-        if (a == NULL) {
+        if (a == NULL || a->nelts == 0) {
             warn = 1;
             goto next;
         }
@@ -959,13 +959,9 @@ ngx_stream_geo_delete_range(ngx_conf_t *
                 break;
             }
 
-            if (s != (ngx_uint_t) range[i].start
-                && e != (ngx_uint_t) range[i].end)
-            {
-                continue;
+            if (i == a->nelts - 1) {
+                warn = 1;
             }
-
-            warn = 1;
         }
 
     next: