comparison src/http/modules/ngx_http_geo_module.c @ 620:b4dcae568a2a NGINX_1_0_0

nginx 1.0.0 *) Bugfix: a cache manager might hog CPU after reload. Thanks to Maxim Dounin. *) Bugfix: an "image_filter crop" directive worked incorrectly coupled with an "image_filter rotate 180" directive. *) Bugfix: a "satisfy any" directive disabled custom 401 error page.
author Igor Sysoev <http://sysoev.ru>
date Tue, 12 Apr 2011 00:00:00 +0400
parents c456a023113c
children a7a5fa2e395b
comparison
equal deleted inserted replaced
619:c4e0de226b0b 620:b4dcae568a2a
683 return NGX_CONF_ERROR; 683 return NGX_CONF_ERROR;
684 } 684 }
685 685
686 range = a->elts; 686 range = a->elts;
687 687
688 ngx_memcpy(&range[i + 2], &range[i + 1], 688 ngx_memmove(&range[i + 2], &range[i + 1],
689 (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t)); 689 (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t));
690 690
691 range[i + 1].start = (u_short) s; 691 range[i + 1].start = (u_short) s;
692 range[i + 1].end = (u_short) e; 692 range[i + 1].end = (u_short) e;
693 range[i + 1].value = ctx->value; 693 range[i + 1].value = ctx->value;
722 return NGX_CONF_ERROR; 722 return NGX_CONF_ERROR;
723 } 723 }
724 724
725 range = a->elts; 725 range = a->elts;
726 726
727 ngx_memcpy(&range[i + 3], &range[i + 1], 727 ngx_memmove(&range[i + 3], &range[i + 1],
728 (a->nelts - 3 - i) * sizeof(ngx_http_geo_range_t)); 728 (a->nelts - 3 - i) * sizeof(ngx_http_geo_range_t));
729 729
730 range[i + 2].start = (u_short) (e + 1); 730 range[i + 2].start = (u_short) (e + 1);
731 range[i + 2].end = range[i].end; 731 range[i + 2].end = range[i].end;
732 range[i + 2].value = range[i].value; 732 range[i + 2].value = range[i].value;
750 return NGX_CONF_ERROR; 750 return NGX_CONF_ERROR;
751 } 751 }
752 752
753 range = a->elts; 753 range = a->elts;
754 754
755 ngx_memcpy(&range[i + 1], &range[i], 755 ngx_memmove(&range[i + 1], &range[i],
756 (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t)); 756 (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t));
757 757
758 range[i + 1].start = (u_short) (e + 1); 758 range[i + 1].start = (u_short) (e + 1);
759 759
760 range[i].start = (u_short) s; 760 range[i].start = (u_short) s;
774 return NGX_CONF_ERROR; 774 return NGX_CONF_ERROR;
775 } 775 }
776 776
777 range = a->elts; 777 range = a->elts;
778 778
779 ngx_memcpy(&range[i + 2], &range[i + 1], 779 ngx_memmove(&range[i + 2], &range[i + 1],
780 (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t)); 780 (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t));
781 781
782 range[i + 1].start = (u_short) s; 782 range[i + 1].start = (u_short) s;
783 range[i + 1].end = (u_short) e; 783 range[i + 1].end = (u_short) e;
784 range[i + 1].value = ctx->value; 784 range[i + 1].value = ctx->value;
859 for (i = 0; i < a->nelts; i++) { 859 for (i = 0; i < a->nelts; i++) {
860 860
861 if (s == (ngx_uint_t) range[i].start 861 if (s == (ngx_uint_t) range[i].start
862 && e == (ngx_uint_t) range[i].end) 862 && e == (ngx_uint_t) range[i].end)
863 { 863 {
864 ngx_memcpy(&range[i], &range[i + 1], 864 ngx_memmove(&range[i], &range[i + 1],
865 (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t)); 865 (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t));
866 866
867 a->nelts--; 867 a->nelts--;
868 868
869 break; 869 break;