Changeset e32c59


Ignore:
Timestamp:
10/30/09 16:47:52 (3 years ago)
Author:
George Potapov <nephrite@…>
Branches:
master-v0.7, nginx-v0.7, nginx-v0.8
Children:
c8fce8
Parents:
963ce7
git-author:
George Potapov <nephrite@…> (10/30/09 16:47:52)
git-committer:
George Potapov <nephrite@…> (10/30/09 16:47:52)
Message:

Vendor drop nginx v0.7.59

Location:
server
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • server/CHANGES

    r963ce7 re32c59  
     1 
     2Changes with nginx 0.7.59                                        25 May 2009 
     3 
     4    *) Feature: the "proxy_cache_methods" and "fastcgi_cache_methods"  
     5       directives. 
     6 
     7    *) Bugfix: socket leak; the bug had appeared in 0.7.25. 
     8       Thanks to Maxim Dounin. 
     9 
     10    *) Bugfix: a segmentation fault occurred in worker process,  
     11       if a request had no body and the $request_body variable was used; 
     12       the bug had appeared in 0.7.58. 
     13 
     14    *) Bugfix: the SSL modules might not built on Solaris and Linux; 
     15       the bug had appeared in 0.7.58. 
     16 
     17    *) Bugfix: ngx_http_xslt_filter_module responses were not handled by  
     18       SSI, charset, and gzip filters. 
     19 
     20    *) Bugfix: a "charset" directive did not set a charset to  
     21       ngx_http_gzip_static_module responses. 
     22 
    123 
    224Changes with nginx 0.7.58                                        18 May 2009 
     
    2042Changes with nginx 0.7.57                                        12 May 2009 
    2143 
    22     *) Bugfix: a segmentation fault occurred in worker process, if the  
     44    *) Bugfix: a floating-point fault occurred in worker process, if the  
    2345       ngx_http_image_filter_module errors were redirected to named  
    2446       location; the bug had appeared in 0.7.56. 
  • server/CHANGES.ru

    r963ce7 re32c59  
     1 
     2éÚÍÅÎÅÎÉÑ × nginx 0.7.59                                          25.05.2009 
     3 
     4    *) äÏÂÁ×ÌÅÎÉÅ: ÄÉÒÅËÔÉ×Ù proxy_cache_methods É fastcgi_cache_methods. 
     5 
     6    *) éÓÐÒÁ×ÌÅÎÉÅ: ÕÔÅÞËÉ ÓÏËÅÔÏ×; ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.7.25. 
     7       óÐÁÓÉÂÏ íÁËÓÉÍÕ äÕÎÉÎÕ. 
     8 
     9    *) éÓÐÒÁ×ÌÅÎÉÅ: ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÐÅÒÅÍÅÎÎÏÊ $request_body × ÒÁÂÏÞÅÍ  
     10       ÐÒÏÃÅÓÓÅ ÐÒÏÉÓÈÏÄÉÌ segmentation fault, ÅÓÌÉ × ÚÁÐÒÏÓÅ ÎÅ ÂÙÌÏ ÔÅÌÁ;  
     11       ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.7.58. 
     12 
     13    *) éÓÐÒÁ×ÌÅÎÉÅ: SSL-ÍÏÄÕÌÉ ÍÏÇÌÉ ÎÅ ÓÏÂÉÒÁÔØÓÑ ÎÁ Solaris É Linux;  
     14       ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.7.56. 
     15 
     16    *) éÓÐÒÁ×ÌÅÎÉÅ: ÏÔ×ÅÔÙ ÍÏÄÕÌÑ ngx_http_xslt_filter_module ÎÅ  
     17       ÏÂÒÁÂÁÔÙ×ÁÌÉÓØ SSI-, charset- É gzip-ÆÉÌØÔÒÁÍÉ. 
     18 
     19    *) éÓÐÒÁ×ÌÅÎÉÅ: ÄÉÒÅËÔÉ×Á charset ÎÅ ÓÔÁ×ÉÌÁ ËÏÄÉÒÏ×ËÕ ÄÌÑ ÏÔ×ÅÔÏ×  
     20       ÍÏÄÕÌÑ ngx_http_gzip_static_module. 
     21 
    122 
    223éÚÍÅÎÅÎÉÑ × nginx 0.7.58                                          18.05.2009 
     
    13821403       open_file_cache_errors. 
    13831404 
    1384     *) éÓÐÒÁ×ÌÅÎÉÅ: ÕÔÅÞËÁ ÓÏËÅÔÏ×; ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.7. 
     1405    *) éÓÐÒÁ×ÌÅÎÉÅ: ÕÔÅÞËÉ ÓÏËÅÔÏ×; ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.7. 
    13851406 
    13861407    *) éÓÐÒÁ×ÌÅÎÉÅ: ÷ ÓÔÒÏËÕ ÚÁÇÏÌÏ×ËÁ ÏÔ×ÅÔÁ "Content-Type", ÕËÁÚÁÎÎÕÀ ×  
  • server/auto/lib/openssl/conf

    r963ce7 re32c59  
    2626            have=NGX_SSL . auto/have 
    2727 
    28             CORE_INCS="$CORE_INCS $OPENSSL/include" 
    29             LINK_DEPS="$LINK_DEPS $OPENSSL/libssl.a $OPENSSL/libcrypto.a" 
    30             CORE_LIBS="$CORE_LIBS $OPENSSL/libssl.a $OPENSSL/libcrypto.a" 
    31         ;; 
    32     esac 
    33  
    34     case "$NGX_SYSTEM" in 
    35         SunOS|Linux) 
     28            CORE_INCS="$CORE_INCS $OPENSSL/openssl/include" 
     29            CORE_DEPS="$CORE_DEPS $OPENSSL/openssl/include/openssl/ssl.h" 
     30            CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libssl.a" 
     31            CORE_LIBS="$CORE_LIBS $OPENSSL/openssl/lib/libcrypto.a" 
    3632            CORE_LIBS="$CORE_LIBS $NGX_LIBDL" 
    3733        ;; 
    3834    esac 
    39  
    4035 
    4136else 
     
    7065            if [ $ngx_found = yes ]; then 
    7166                have=NGX_SSL . auto/have 
    72                 CORE_LIBS="$CORE_LIBS $ngx_feature_libs" 
     67                CORE_LIBS="$CORE_LIBS $ngx_feature_libs $NGX_LIBDL" 
    7368                OPENSSL=YES 
    74  
    75                 case "$NGX_SYSTEM" in 
    76                     SunOS) 
    77                         CORE_LIBS="$CORE_LIBS $NGX_LIBDL" 
    78                     ;; 
    79                 esac 
    8069            fi 
    8170        ;; 
  • server/auto/lib/openssl/make

    r963ce7 re32c59  
    33 
    44 
    5 if test -n "$OPENSSL_OPT"; then 
    6     NGX_OPENSSL_CONFIG="./Configure $OPENSSL_OPT" 
    7 else 
    8     NGX_OPENSSL_CONFIG="./config" 
    9 fi 
    10  
    115case $USE_THREADS in 
    12     NO) NGX_OPENSSL_CONFIG="$NGX_OPENSSL_CONFIG no-threads" ;; 
    13     *)  NGX_OPENSSL_CONFIG="$NGX_OPENSSL_CONFIG threads" ;; 
     6    NO) OPENSSL_OPT="$OPENSSL_OPT no-threads" ;; 
     7    *)  OPENSSL_OPT="$OPENSSL_OPT threads" ;; 
    148esac 
    159 
     
    5246 
    5347    *) 
     48        case $OPENSSL in 
     49 
     50        /*) 
     51            ngx_prefix="$OPENSSL/openssl" 
     52        ;; 
     53 
     54        *) 
     55            ngx_prefix="$PWD/$OPENSSL/openssl" 
     56        ;; 
     57 
     58        esac 
     59 
    5460        cat << END                                            >> $NGX_MAKEFILE 
    5561 
    56 $OPENSSL/libssl.a:  $NGX_MAKEFILE 
     62$OPENSSL/openssl/include/openssl/ssl.h: $NGX_MAKEFILE 
    5763    cd $OPENSSL \\ 
    5864    && \$(MAKE) clean \\ 
    59     && $NGX_OPENSSL_CONFIG no-shared \\ 
    60     && \$(MAKE) 
     65    && ./config --prefix=$ngx_prefix no-shared $OPENSSL_OPT \\ 
     66    && \$(MAKE) \\ 
     67    && \$(MAKE) install 
    6168 
    6269END 
  • server/auto/options

    r148513 re32c59  
    136136for option 
    137137do 
    138      opt="$opt `echo $option | sed -e \"s/\(--[^=]*=\)\(.* .*\)/\1'\2'/\"`" 
     138    opt="$opt `echo $option | sed -e \"s/\(--[^=]*=\)\(.* .*\)/\1'\2'/\"`" 
    139139 
    140140    case "$option" in 
  • server/auto/os/features

    re61f2d re32c59  
    231231                  statvfs(NULL, &fs);" 
    232232. auto/feature 
     233 
     234 
     235ngx_feature="dlopen()" 
     236ngx_feature_name= 
     237ngx_feature_run=no 
     238ngx_feature_incs="#include <dlfcn.h>" 
     239ngx_feature_path= 
     240ngx_feature_libs= 
     241ngx_feature_test="dlopen(NULL, 0)" 
     242. auto/feature 
     243 
     244 
     245if [ $ngx_found != yes ]; then 
     246 
     247    ngx_feature="dlopen() in libdl" 
     248    ngx_feature_libs="-ldl" 
     249    . auto/feature 
     250 
     251    if [ $ngx_found = yes ]; then 
     252        NGX_LIBDL="-ldl" 
     253    fi 
     254fi 
  • server/auto/unix

    re4af63 re32c59  
    186186 
    187187 
    188 ngx_feature="dlopen()" 
    189 ngx_feature_name= 
    190 ngx_feature_run=no 
    191 ngx_feature_incs="#include <dlfcn.h>" 
    192 ngx_feature_path= 
    193 ngx_feature_libs= 
    194 ngx_feature_test="dlopen(NULL, 0)" 
    195 . auto/feature 
    196  
    197  
    198 if [ $ngx_found != yes ]; then 
    199  
    200     ngx_feature="dlopen() in libdl" 
    201     ngx_feature_libs="-ldl" 
    202     . auto/feature 
    203  
    204     if [ $ngx_found = yes ]; then 
    205         NGX_LIBDL="-ldl" 
    206     fi 
    207 fi 
    208  
    209  
    210188ngx_feature="mmap(MAP_ANON|MAP_SHARED)" 
    211189ngx_feature_name="NGX_HAVE_MAP_ANON" 
  • server/src/core/nginx.h

    r963ce7 re32c59  
    99 
    1010 
    11 #define nginx_version         7058 
    12 #define NGINX_VERSION      "0.7.58" 
     11#define nginx_version         7059 
     12#define NGINX_VERSION      "0.7.59" 
    1313#define NGINX_VER          "nginx/" NGINX_VERSION 
    1414 
  • server/src/http/modules/ngx_http_charset_filter_module.c

    r49bd83 re32c59  
    225225    if (r == r->main) { 
    226226 
    227         if (r->headers_out.content_encoding 
     227        if (!r->ignore_content_encoding 
     228            && r->headers_out.content_encoding 
    228229            && r->headers_out.content_encoding->value.len) 
    229230        { 
  • server/src/http/modules/ngx_http_fastcgi_module.c

    r307b13 re32c59  
    353353      offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_use_stale), 
    354354      &ngx_http_fastcgi_next_upstream_masks }, 
     355 
     356    { ngx_string("fastcgi_cache_methods"), 
     357      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, 
     358      ngx_conf_set_bitmask_slot, 
     359      NGX_HTTP_LOC_CONF_OFFSET, 
     360      offsetof(ngx_http_fastcgi_loc_conf_t, upstream.cache_methods), 
     361      &ngx_http_upstream_cache_method_mask }, 
    355362 
    356363#endif 
     
    18361843     *     conf->upstream.ignore_headers = 0; 
    18371844     *     conf->upstream.next_upstream = 0; 
    1838      *     conf->upstream.use_stale_cache = 0; 
     1845     *     conf->upstream.cache_use_stale = 0; 
     1846     *     conf->upstream.cache_methods = 0; 
    18391847     *     conf->upstream.temp_path = NULL; 
    18401848     *     conf->upstream.hide_headers_hash = { NULL, 0 }; 
     
    20842092    } 
    20852093 
     2094    if (conf->upstream.cache_methods == 0) { 
     2095        conf->upstream.cache_methods = prev->upstream.cache_methods; 
     2096    } 
     2097 
     2098    conf->upstream.cache_methods |= NGX_HTTP_GET|NGX_HTTP_HEAD; 
     2099 
    20862100    ngx_conf_merge_ptr_value(conf->upstream.cache_valid, 
    20872101                             prev->upstream.cache_valid, NULL); 
  • server/src/http/modules/ngx_http_gzip_static_module.c

    r6275fd re32c59  
    206206 
    207207    r->headers_out.content_encoding = h; 
     208    r->ignore_content_encoding = 1; 
    208209 
    209210    /* we need to allocate all before the header would be sent */ 
  • server/src/http/modules/ngx_http_image_filter_module.c

    r963ce7 re32c59  
    283283        r->headers_out.content_type_len = ct->len; 
    284284        r->headers_out.content_type = *ct; 
     285        r->headers_out.content_type_lowcase = NULL; 
    285286 
    286287        if (conf->filter == NGX_HTTP_IMAGE_TEST) { 
     
    503504    r->headers_out.content_type.len = sizeof("text/plain") - 1; 
    504505    r->headers_out.content_type.data = (u_char *) "text/plain"; 
     506    r->headers_out.content_type_lowcase = NULL; 
    505507 
    506508    if (ctx == NULL) { 
  • server/src/http/modules/ngx_http_proxy_module.c

    r307b13 re32c59  
    377377      offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_use_stale), 
    378378      &ngx_http_proxy_next_upstream_masks }, 
     379 
     380    { ngx_string("proxy_cache_methods"), 
     381      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_1MORE, 
     382      ngx_conf_set_bitmask_slot, 
     383      NGX_HTTP_LOC_CONF_OFFSET, 
     384      offsetof(ngx_http_proxy_loc_conf_t, upstream.cache_methods), 
     385      &ngx_http_upstream_cache_method_mask }, 
    379386 
    380387#endif 
     
    18861893     *     conf->upstream.ignore_headers = 0; 
    18871894     *     conf->upstream.next_upstream = 0; 
    1888      *     conf->upstream.use_stale_cache = 0; 
     1895     *     conf->upstream.cache_use_stale = 0; 
     1896     *     conf->upstream.cache_methods = 0; 
    18891897     *     conf->upstream.temp_path = NULL; 
    18901898     *     conf->upstream.hide_headers_hash = { NULL, 0 }; 
     
    21402148                               |NGX_HTTP_UPSTREAM_FT_OFF)); 
    21412149 
     2150    if (conf->upstream.cache_methods == 0) { 
     2151        conf->upstream.cache_methods = prev->upstream.cache_methods; 
     2152    } 
     2153 
     2154    conf->upstream.cache_methods |= NGX_HTTP_GET|NGX_HTTP_HEAD; 
     2155 
    21422156    if (conf->upstream.cache_use_stale & NGX_HTTP_UPSTREAM_FT_OFF) { 
    21432157        conf->upstream.cache_use_stale = NGX_CONF_BITMASK_SET 
  • server/src/http/modules/ngx_http_range_filter_module.c

    rcbed21 re32c59  
    457457    } 
    458458 
     459    r->headers_out.content_type_lowcase = NULL; 
     460 
    459461    /* "Content-Type: multipart/byteranges; boundary=0123456789" */ 
    460462 
     
    465467                           - r->headers_out.content_type.data; 
    466468 
     469    r->headers_out.content_type_len = r->headers_out.content_type.len; 
    467470 
    468471    /* the size of the last boundary CRLF "--0123456789--" CRLF */ 
  • server/src/http/modules/ngx_http_xslt_filter_module.c

    re4af63 re32c59  
    838838    } 
    839839 
     840    r->headers_out.content_type_lowcase = NULL; 
     841 
    840842    return b; 
    841843} 
  • server/src/http/modules/perl/nginx.pm

    r963ce7 re32c59  
    4848); 
    4949 
    50 our $VERSION = '0.7.58'; 
     50our $VERSION = '0.7.59'; 
    5151 
    5252require XSLoader; 
  • server/src/http/ngx_http_core_module.c

    r963ce7 re32c59  
    15311531ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash) 
    15321532{ 
    1533     u_char       c, *p; 
    1534     ngx_uint_t   i, hash; 
     1533    u_char      c, *lowcase; 
     1534    size_t      len; 
     1535    ngx_uint_t  i, hash; 
    15351536 
    15361537    if (r->headers_out.content_type.len == 0) { 
     
    15381539    } 
    15391540 
     1541    len = r->headers_out.content_type_len; 
     1542 
    15401543    if (r->headers_out.content_type_lowcase == NULL) { 
    15411544 
    1542         p = ngx_pnalloc(r->pool, r->headers_out.content_type_len); 
    1543  
    1544         if (p == NULL) { 
     1545        lowcase = ngx_pnalloc(r->pool, len); 
     1546        if (lowcase == NULL) { 
    15451547            return NULL; 
    15461548        } 
    15471549 
    1548         r->headers_out.content_type_lowcase = p; 
     1550        r->headers_out.content_type_lowcase = lowcase; 
    15491551 
    15501552        hash = 0; 
    15511553 
    1552         for (i = 0; i < r->headers_out.content_type_len; i++) { 
     1554        for (i = 0; i < len; i++) { 
    15531555            c = ngx_tolower(r->headers_out.content_type.data[i]); 
    15541556            hash = ngx_hash(hash, c); 
    1555             *p++ = c; 
     1557            lowcase[i] = c; 
    15561558        } 
    15571559 
     
    15591561    } 
    15601562 
    1561     return ngx_hash_find(types_hash, 
    1562                          r->headers_out.content_type_hash, 
    1563                          r->headers_out.content_type_lowcase, 
    1564                          r->headers_out.content_type_len); 
     1563    return ngx_hash_find(types_hash, r->headers_out.content_type_hash, 
     1564                         r->headers_out.content_type_lowcase, len); 
    15651565} 
    15661566 
  • server/src/http/ngx_http_request.c

    r963ce7 re32c59  
    20992099                   rc, &r->uri, &r->args); 
    21002100 
     2101    if (rc == NGX_ERROR) { 
     2102        ngx_http_finalize_request(r, rc); 
     2103        return; 
     2104    } 
     2105 
    21012106    if (r->buffered || r->postponed || (r == r->main && c->buffered)) { 
    21022107 
  • server/src/http/ngx_http_request.h

    re4af63 re32c59  
    479479    unsigned                          internal:1; 
    480480    unsigned                          error_page:1; 
     481    unsigned                          ignore_content_encoding:1; 
    481482    unsigned                          filter_finalize:1; 
    482483    unsigned                          post_action:1; 
  • server/src/http/ngx_http_special_response.c

    re4af63 re32c59  
    611611            r->headers_out.content_type.len = sizeof("text/html") - 1; 
    612612            r->headers_out.content_type.data = (u_char *) "text/html"; 
     613            r->headers_out.content_type_lowcase = NULL; 
    613614 
    614615        } else { 
     
    713714    r->headers_out.content_type.len = sizeof("text/html") - 1; 
    714715    r->headers_out.content_type.data = (u_char *) "text/html"; 
     716    r->headers_out.content_type_lowcase = NULL; 
    715717 
    716718    r->headers_out.location->hash = 0; 
  • server/src/http/ngx_http_upstream.c

    r963ce7 re32c59  
    330330}; 
    331331 
     332 
     333ngx_conf_bitmask_t  ngx_http_upstream_cache_method_mask[] = { 
     334   { ngx_string("GET"),  NGX_HTTP_GET}, 
     335   { ngx_string("HEAD"), NGX_HTTP_HEAD }, 
     336   { ngx_string("POST"), NGX_HTTP_POST }, 
     337   { ngx_null_string, 0 } 
     338}; 
     339 
     340 
    332341void 
    333342ngx_http_upstream_init(ngx_http_request_t *r) 
     
    533542    ngx_http_cache_t  *c; 
    534543 
    535     if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD))) { 
     544    if (!(r->method & u->conf->cache_methods)) { 
    536545        return NGX_DECLINED; 
    537546    } 
     
    563572    u->cacheable = 1; 
    564573 
    565     c->min_uses = r->upstream->conf->cache_min_uses; 
    566     c->body_start = r->upstream->conf->buffer_size; 
     574    c->min_uses = u->conf->cache_min_uses; 
     575    c->body_start = u->conf->buffer_size; 
    567576    c->file_cache = u->conf->cache->data; 
    568577 
     
    31663175    r->headers_out.content_type_len = h->value.len; 
    31673176    r->headers_out.content_type = h->value; 
     3177    r->headers_out.content_type_lowcase = NULL; 
    31683178 
    31693179    for (p = h->value.data; *p; p++) { 
  • server/src/http/ngx_http_upstream.h

    r307b13 re32c59  
    157157    ngx_uint_t                       cache_min_uses; 
    158158    ngx_uint_t                       cache_use_stale; 
     159    ngx_uint_t                       cache_methods; 
    159160 
    160161    ngx_array_t                     *cache_valid; 
     
    328329 
    329330 
    330 extern ngx_module_t  ngx_http_upstream_module; 
     331extern ngx_module_t        ngx_http_upstream_module; 
     332extern ngx_conf_bitmask_t  ngx_http_upstream_cache_method_mask[]; 
     333 
    331334 
    332335 
  • server/src/http/ngx_http_variables.c

    r963ce7 re32c59  
    14931493    ngx_chain_t  *cl; 
    14941494 
    1495     if (r->request_body == NULL || r->request_body->temp_file) { 
     1495    if (r->request_body == NULL 
     1496        || r->request_body->bufs == NULL 
     1497        || r->request_body->temp_file) 
     1498    { 
    14961499        v->not_found = 1; 
    14971500 
Note: See TracChangeset for help on using the changeset viewer.