comparison src/stream/ngx_stream_geo_module.c @ 6662:1301a58b5dac

Geo: fixed removing a range in certain cases. If the range includes two or more /16 networks and does not start at the /16 boundary, the last subrange was not removed (see 91cff7f97a50 for details).
author Ruslan Ermilov <ru@nginx.com>
date Tue, 23 Aug 2016 15:59:06 +0300
parents ec141a44641b
children 53198d9bf84f
comparison
equal deleted inserted replaced
6661:ec141a44641b 6662:1301a58b5dac
914 ngx_array_t *a; 914 ngx_array_t *a;
915 ngx_stream_geo_range_t *range; 915 ngx_stream_geo_range_t *range;
916 916
917 warn = 0; 917 warn = 0;
918 918
919 for (n = start; n <= end; n += 0x10000) { 919 for (n = start; n <= end; n = (n + 0x10000) & 0xffff0000) {
920 920
921 h = n >> 16; 921 h = n >> 16;
922 922
923 if (n == start) { 923 if (n == start) {
924 s = n & 0xffff; 924 s = n & 0xffff;