Mercurial > hg > nginx
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; |