Mercurial > hg > nginx
changeset 6663:53198d9bf84f
Geo: fixed insertion of ranges specified in descending order.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 23 Aug 2016 15:59:14 +0300 |
parents | 1301a58b5dac |
children | 0ee6f023ef92 |
files | src/http/modules/ngx_http_geo_module.c src/stream/ngx_stream_geo_module.c |
diffstat | 2 files changed, 16 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_geo_module.c Tue Aug 23 15:59:06 2016 +0300 +++ b/src/http/modules/ngx_http_geo_module.c Tue Aug 23 15:59:14 2016 +0300 @@ -940,9 +940,14 @@ return NGX_CONF_ERROR; } - range->start = (u_short) s; - range->end = (u_short) e; - range->value = ctx->value; + range = a->elts; + + ngx_memmove(&range[1], &range[0], + (a->nelts - 1) * sizeof(ngx_http_geo_range_t)); + + range[0].start = (u_short) s; + range[0].end = (u_short) e; + range[0].value = ctx->value; next:
--- a/src/stream/ngx_stream_geo_module.c Tue Aug 23 15:59:06 2016 +0300 +++ b/src/stream/ngx_stream_geo_module.c Tue Aug 23 15:59:14 2016 +0300 @@ -890,9 +890,14 @@ return NGX_CONF_ERROR; } - range->start = (u_short) s; - range->end = (u_short) e; - range->value = ctx->value; + range = a->elts; + + ngx_memmove(&range[1], &range[0], + (a->nelts - 1) * sizeof(ngx_stream_geo_range_t)); + + range[0].start = (u_short) s; + range[0].end = (u_short) e; + range[0].value = ctx->value; next: