Ignore:
Timestamp:
02/03/09 19:41:37 (3 years ago)
Author:
George Potapov <nephrite@…>
Branches:
master-v0.7, nginx-v0.7, nginx-v0.8, upstream_count_limit
Children:
2ac4f5
Parents:
2240a4
git-author:
George Potapov <nephrite@…> (02/03/09 19:41:37)
git-committer:
George Potapov <nephrite@…> (02/03/09 19:41:37)
Message:

vendor drop nginx 0.7.31

File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/src/http/modules/ngx_http_geo_module.c

    rb82943 re7b311  
    519519    ngx_http_geo_range_t  *range; 
    520520 
    521     for (n = start; n < end; n += 0x10000) { 
     521    for (n = start; n <= end; n += 0x10000) { 
    522522 
    523523        h = n >> 16; 
    524         s = n & 0xffff; 
     524 
     525        if (n == start) { 
     526            s = n & 0xffff; 
     527        } else { 
     528            s = 0; 
     529        } 
    525530 
    526531        if ((n | 0xffff) > end) { 
     
    568573                           (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t)); 
    569574 
    570                 range = &range[i + 1]; 
     575                range[i + 1].start = (u_short) s; 
     576                range[i + 1].end = (u_short) e; 
     577                range[i + 1].value = ctx->value; 
    571578 
    572579                goto next; 
     
    579586                    "duplicate range \"%V\", value: \"%v\", old value: \"%v\"", 
    580587                    ctx->net, ctx->value, range[i].value); 
    581                 continue; 
    582             } 
     588 
     589                range[i].value = ctx->value; 
     590 
     591                goto next; 
     592            } 
     593 
     594            if (s > (ngx_uint_t) range[i].start 
     595                && e < (ngx_uint_t) range[i].end) 
     596            { 
     597                /* split the range and insert the new one */ 
     598 
     599                range = ngx_array_push(a); 
     600                if (range == NULL) { 
     601                    return NGX_CONF_ERROR; 
     602                } 
     603 
     604                range = ngx_array_push(a); 
     605                if (range == NULL) { 
     606                    return NGX_CONF_ERROR; 
     607                } 
     608 
     609                range = a->elts; 
     610 
     611                ngx_memcpy(&range[i + 3], &range[i + 1], 
     612                           (a->nelts - 3 - i) * sizeof(ngx_http_geo_range_t)); 
     613 
     614                range[i + 2].start = (u_short) (e + 1); 
     615                range[i + 2].end = range[i].end; 
     616                range[i + 2].value = range[i].value; 
     617 
     618                range[i + 1].start = (u_short) s; 
     619                range[i + 1].end = (u_short) e; 
     620                range[i + 1].value = ctx->value; 
     621 
     622                range[i].end = (u_short) (s - 1); 
     623 
     624                goto next; 
     625            } 
     626 
     627            if (s == (ngx_uint_t) range[i].start 
     628                && e < (ngx_uint_t) range[i].end) 
     629            { 
     630                /* shift the range start and insert the new range */ 
     631 
     632                range = ngx_array_push(a); 
     633                if (range == NULL) { 
     634                    return NGX_CONF_ERROR; 
     635                } 
     636 
     637                range = a->elts; 
     638 
     639                ngx_memcpy(&range[i + 2], &range[i + 1], 
     640                           (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t)); 
     641 
     642                range[i + 1].start = (u_short) (e + 1); 
     643 
     644                range[i].start = (u_short) s; 
     645                range[i].end = (u_short) e; 
     646                range[i].value = ctx->value; 
     647 
     648                goto next; 
     649            } 
     650 
     651            if (s > (ngx_uint_t) range[i].start 
     652                && e == (ngx_uint_t) range[i].end) 
     653            { 
     654                /* shift the range end and insert the new range */ 
     655 
     656                range = ngx_array_push(a); 
     657                if (range == NULL) { 
     658                    return NGX_CONF_ERROR; 
     659                } 
     660 
     661                range = a->elts; 
     662 
     663                ngx_memcpy(&range[i + 2], &range[i + 1], 
     664                           (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t)); 
     665 
     666                range[i + 1].start = (u_short) s; 
     667                range[i + 1].end = (u_short) e; 
     668                range[i + 1].value = ctx->value; 
     669 
     670                range[i].end = (u_short) (s - 1); 
     671 
     672                goto next; 
     673            } 
     674 
     675            s = (ngx_uint_t) range[i].start; 
     676            e = (ngx_uint_t) range[i].end; 
    583677 
    584678            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 
    585                                "overlapped range \"%V\"", ctx->net); 
     679                         "range \"%V\" overlaps \"%d.%d.%d.%d-%d.%d.%d.%d\"", 
     680                         ctx->net, 
     681                         h >> 8, h & 0xff, s >> 8, s & 0xff, 
     682                         h >> 8, h & 0xff, e >> 8, e & 0xff); 
    586683 
    587684            return NGX_CONF_ERROR; 
     
    595692        } 
    596693 
    597     next: 
    598  
    599694        range->start = (u_short) s; 
    600695        range->end = (u_short) e; 
    601696        range->value = ctx->value; 
     697 
     698    next: 
     699 
     700        continue; 
    602701    } 
    603702 
     
    617716    warn = 0; 
    618717 
    619     for (n = start; n < end; n += 0x10000) { 
     718    for (n = start; n <= end; n += 0x10000) { 
    620719 
    621720        h = n >> 16; 
    622         s = n & 0xffff; 
     721 
     722        if (n == start) { 
     723            s = n & 0xffff; 
     724        } else { 
     725            s = 0; 
     726        } 
    623727 
    624728        if ((n | 0xffff) > end) { 
     
    644748                ngx_memcpy(&range[i], &range[i + 1], 
    645749                           (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t)); 
     750 
     751                a->nelts--; 
     752 
    646753                break; 
    647754            } 
Note: See TracChangeset for help on using the changeset viewer.