Changeset 2fe1a6


Ignore:
Timestamp:
02/12/08 17:18:30 (4 years ago)
Author:
Tomash Brechko <tomash.brechko@…>
Branches:
master-v0.7, master-v0.6, nginx-v0.6, nginx-v0.7, nginx-v0.8, upstream_count_limit
Children:
1d23bb
Parents:
cef790
git-author:
Tomash Brechko <tomash.brechko@…> (02/12/08 17:18:30)
git-committer:
Tomash Brechko <tomash.brechko@…> (02/12/08 17:18:30)
Message:

Commit of nginx 0.6.26.

Location:
server
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • server/CHANGES

    rcef790 r2fe1a6  
     1 
     2Changes with nginx 0.6.26                                        11 Feb 2008 
     3 
     4    *) Bugfix: the "proxy_store" and "fastcgi_store" directives did not  
     5       check a response length. 
     6 
     7    *) Bugfix: a segmentation fault occurred in worker process, if big  
     8       value was used in a "expires" directive. 
     9       Thanks to Joaquin Cuenca Abela. 
     10 
     11    *) Bugfix: nginx incorrectly detected cache line size on Pentium 4. 
     12       Thanks to Gena Makhomed. 
     13 
     14    *) Bugfix: in proxied or FastCGI subrequests a client original method  
     15       was used instead of the GET method. 
     16 
     17    *) Bugfix: socket leak in HTTPS mode if deferred accept was used. 
     18       Thanks to Ben Maurer. 
     19 
     20    *) Bugfix: nginx issued the bogus error message "SSL_shutdown() failed  
     21       (SSL: )"; bug appeared in 0.6.23. 
     22 
     23    *) Bugfix: in HTTPS mode requests might fail with the "bad write retry"  
     24       error; bug appeared in 0.6.23. 
     25 
    126 
    227Changes with nginx 0.6.25                                        08 Jan 2008 
  • server/CHANGES.ru

    rcef790 r2fe1a6  
     1 
     2éÚÍÅÎÅÎÉÑ × nginx 0.6.26                                          11.02.2008 
     3 
     4    *) éÓÐÒÁ×ÌÅÎÉÅ: ÄÉÒÅËÔÉ×Ù proxy_store É fastcgi_store ÎÅ ÐÒÏ×ÅÒÑÌÉ  
     5       ÄÌÉÎÕ ÏÔ×ÅÔÁ. 
     6 
     7    *) éÓÐÒÁ×ÌÅÎÉÅ: ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÂÏÌØÛÏÇÏ ÚÎÁÞÅÎÉÑ × ÄÉÒÅËÔÉ×Å expires  
     8       × ÒÁÂÏÞÅÍ ÐÒÏÃÅÓÓÅ ÐÒÏÉÓÈÏÄÉÌ segmentation fault. 
     9       óÐÁÓÉÂÏ Joaquin Cuenca Abela. 
     10 
     11    *) éÓÐÒÁ×ÌÅÎÉÅ: nginx ÎÅ×ÅÒÎÏ ÏÐÒÅÄÅÌÑÌ ÄÌÉÎÕ ÓÔÒÏËÉ ËÜÛÁ ÎÁ  
     12       Pentium 4. 
     13       óÐÁÓÉÂÏ Gena Makhomed. 
     14 
     15    *) éÓÐÒÁ×ÌÅÎÉÅ: × ÐÒÏËÓÉÒÏ×ÁÎÎÙÈ ÐÏÄÚÁÐÒÏÓÁÈ É ÐÏÄÚÁÐÒÏÓÁÈ Ë  
     16       FastCGI-ÓÅÒ×ÅÒÕ ×ÍÅÓÔÏ ÍÅÔÏÄÁ GET ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÏÒÉÇÉÎÁÌØÎÙÊ ÍÅÔÏÄ  
     17       ËÌÉÅÎÔÁ. 
     18 
     19    *) éÓÐÒÁ×ÌÅÎÉÅ: ÕÔÅÞËÉ ÓÏËÅÔÏ× × ÒÅÖÉÍÅ HTTPS ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ  
     20       ÏÔÌÏÖÅÎÎÏÇÏ accept'Á. 
     21       óÐÁÓÉÂÏ Ben Maurer. 
     22 
     23    *) éÓÐÒÁ×ÌÅÎÉÅ: nginx ×ÙÄÁ×ÁÌ ÏÛÉÂÏÞÎÏÅ ÓÏÏÂÝÅÎÉÅ "SSL_shutdown()  
     24       failed (SSL: )"; ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.23. 
     25 
     26    *) éÓÐÒÁ×ÌÅÎÉÅ: ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ HTTPS ÚÁÐÒÏÓÙ ÍÏÇÌÉ ÚÁ×ÅÒÛÁÔØÓÑ Ó  
     27       ÏÛÉÂËÏÊ "bad write retry"; ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.6.23. 
     28 
    129 
    230éÚÍÅÎÅÎÉÑ × nginx 0.6.25                                          08.01.2008 
  • server/src/core/nginx.h

    rcef790 r2fe1a6  
    99 
    1010 
    11 #define NGINX_VERSION      "0.6.25" 
     11#define NGINX_VERSION      "0.6.26" 
    1212#define NGINX_VER          "nginx/" NGINX_VERSION 
    1313 
  • server/src/core/ngx_connection.c

    rcef790 r2fe1a6  
    768768        || err == NGX_ETIMEDOUT 
    769769        || err == NGX_ECONNREFUSED 
     770        || err == NGX_ENETDOWN 
     771        || err == NGX_ENETUNREACH 
     772        || err == NGX_EHOSTDOWN 
    770773        || err == NGX_EHOSTUNREACH) 
    771774    { 
  • server/src/core/ngx_cpuinfo.c

    r0019fc r2fe1a6  
    9393    if (ngx_strcmp(vendor, "GenuineIntel") == 0) { 
    9494 
    95         switch (cpu[0] & 0xf00) { 
     95        switch ((cpu[0] & 0xf00) >> 8) { 
    9696 
    9797        /* Pentium */ 
    9898        case 5: 
     99            ngx_cacheline_size = 32; 
     100            break; 
     101 
    99102        /* Pentium Pro, II, III */ 
    100103        case 6: 
    101104            ngx_cacheline_size = 32; 
     105 
     106            if ((cpu[0] & 0xf0) >= 0xd0) { 
     107                /* Intel Core */ 
     108                ngx_cacheline_size = 64; 
     109            } 
     110 
    102111            break; 
    103112 
  • server/src/core/ngx_inet.c

    rcef790 r2fe1a6  
    213213    c2 = c % 10; 
    214214 
    215     *text++ = (u_char) (c2 + '0'); 
     215    *text = (u_char) (c2 + '0'); 
    216216    n++; 
    217217 
  • server/src/core/ngx_resolver.c

    r08686b r2fe1a6  
    216216    if (ctx->event) { 
    217217        ngx_resolver_free_locked(r, ctx->event); 
    218     } 
    219  
    220     ngx_resolver_free_locked(r, ctx); 
     218        ctx->event = NULL; 
     219    } 
    221220 
    222221    /* unlock alloc mutex */ 
     
    788787 
    789788                ngx_queue_insert_head(queue, &rn->queue); 
    790  
    791                 continue; 
    792789            } 
     790 
     791            continue; 
    793792        } 
    794793 
  • server/src/core/ngx_string.c

    r08686b r2fe1a6  
    148148            hexadecimal = 0; 
    149149            max_width = 0; 
    150             slen = 0; 
     150            slen = (size_t) -1; 
    151151 
    152152            p = temp + NGX_INT64_LEN; 
     
    183183 
    184184                case '*': 
    185                     slen = va_arg(args, u_int); 
     185                    slen = va_arg(args, size_t); 
    186186                    fmt++; 
    187187                    continue; 
     
    222222                p = va_arg(args, u_char *); 
    223223 
    224                 if (slen == 0) { 
     224                if (slen == (size_t) -1) { 
    225225                    while (*p && buf < last) { 
    226226                        *buf++ = *p++; 
     
    228228 
    229229                } else { 
    230                     buf = ngx_cpymem(buf, p, slen); 
     230                    len = (buf + slen < last) ? slen : (size_t) (last - buf); 
     231 
     232                    buf = ngx_cpymem(buf, p, len); 
    231233                } 
    232234 
  • server/src/core/ngx_times.c

    rb57b1b r2fe1a6  
    204204ngx_gmtime(time_t t, ngx_tm_t *tp) 
    205205{ 
    206     ngx_int_t  sec, min, hour, mday, mon, year, wday, yday, days; 
    207  
    208     days = (ngx_int_t) (t / 86400); 
     206    ngx_uint_t  n, sec, min, hour, mday, mon, year, wday, yday, days; 
     207 
     208    /* the calculation is valid for positive time_t only */ 
     209    n = (ngx_uint_t) t; 
     210 
     211    days = n / 86400; 
    209212 
    210213    /* Jaunary 1, 1970 was Thursday */ 
    211214    wday = (4 + days) % 7; 
    212215 
    213     t %= 86400; 
    214     hour = (ngx_int_t) (t / 3600); 
    215     t %= 3600; 
    216     min = (ngx_int_t) (t / 60); 
    217     sec = (ngx_int_t) (t % 60); 
     216    n %= 86400; 
     217    hour = n / 3600; 
     218    n %= 3600; 
     219    min = n / 60; 
     220    sec = n % 60; 
    218221 
    219222    /* the algorithm based on Gauss's formula */ 
  • server/src/event/modules/ngx_eventport_module.c

    r0019fc r2fe1a6  
    4040    void       *portnfy_user;   /* user defined */ 
    4141} port_notify_t; 
    42  
    43 typedef struct itimerspec {     /* definition per POSIX.4 */ 
    44     struct timespec it_interval;/* timer period */ 
    45     struct timespec it_value;   /* timer expiration */ 
    46 } itimerspec_t; 
    4742 
    4843int port_create(void) 
     
    107102static port_event_t  *event_list; 
    108103static ngx_uint_t     nevents; 
    109 static timer_t        event_timer = -1; 
     104static timer_t        event_timer = (timer_t) -1; 
    110105 
    111106static ngx_str_t      eventport_name = ngx_string("eventport"); 
     
    238233ngx_eventport_done(ngx_cycle_t *cycle) 
    239234{ 
    240     if (event_timer != -1) { 
     235    if (event_timer != (timer_t) -1) { 
    241236        if (timer_delete(event_timer) == -1) { 
    242237            ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, 
     
    244239        } 
    245240 
    246         event_timer = -1; 
     241        event_timer = (timer_t) -1; 
    247242    } 
    248243 
  • server/src/event/modules/ngx_rtsig_module.c

    r0019fc r2fe1a6  
    1313 
    1414#define F_SETSIG       10 
    15 #define SIGRTMIN       33 
    16 #define si_fd          __spare__[0] 
     15#define si_fd          _reason.__spare__.__spare2__[0] 
    1716#define KERN_RTSIGNR   30 
    1817#define KERN_RTSIGMAX  31 
  • server/src/event/ngx_event_connect.c

    r0019fc r2fe1a6  
    144144        if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { 
    145145 
    146             if (err == NGX_ECONNREFUSED || err == NGX_EHOSTUNREACH) { 
     146            if (err == NGX_ECONNREFUSED 
     147                || err == NGX_ENETDOWN 
     148                || err == NGX_ENETUNREACH 
     149                || err == NGX_EHOSTDOWN 
     150                || err == NGX_EHOSTUNREACH) 
     151            { 
    147152                level = NGX_LOG_ERR; 
     153 
    148154            } else { 
    149155                level = NGX_LOG_CRIT; 
  • server/src/event/ngx_event_openssl.c

    r08686b r2fe1a6  
    188188    } 
    189189 
     190    /* 
     191     * we need this option because in ngx_ssl_send_chain() 
     192     * we may switch to a buffered write and may copy leftover part of 
     193     * previously unbuffered data to our internal buffer 
     194     */ 
     195    SSL_CTX_set_mode(ssl->ctx, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); 
     196 
    190197    SSL_CTX_set_read_ahead(ssl->ctx, 1); 
    191198 
     
    10361043    sslerr = 0; 
    10371044 
    1038     /* SSL_shutdown() never return -1, on error it return 0 */ 
    1039  
    1040     if (n != 1) { 
     1045    /* SSL_shutdown() never returns -1, on error it returns 0 */ 
     1046 
     1047    if (n != 1 && ERR_peek_error()) { 
    10411048        sslerr = SSL_get_error(c->ssl->connection, n); 
    10421049 
     
    10451052    } 
    10461053 
    1047     if (n == 1 
    1048         || sslerr == SSL_ERROR_ZERO_RETURN 
    1049         || (sslerr == 0 && c->timedout)) 
    1050     { 
     1054    if (n == 1 || sslerr == 0 || sslerr == SSL_ERROR_ZERO_RETURN) { 
    10511055        SSL_free(c->ssl->connection); 
    10521056        c->ssl = NULL; 
     
    11121116    char *text) 
    11131117{ 
     1118    int         n; 
    11141119    ngx_uint_t  level; 
    11151120 
     
    11251130#endif 
    11261131            || err == NGX_ECONNREFUSED 
     1132            || err == NGX_ENETDOWN 
     1133            || err == NGX_ENETUNREACH 
     1134            || err == NGX_EHOSTDOWN 
    11271135            || err == NGX_EHOSTUNREACH) 
    11281136        { 
     
    11421150            } 
    11431151        } 
     1152 
     1153    } else if (sslerr == SSL_ERROR_SSL) { 
     1154 
     1155        n = ERR_GET_REASON(ERR_peek_error()); 
     1156 
     1157            /* handshake failures */ 
     1158        if (n == SSL_R_NO_SHARED_CIPHER 
     1159            || n == SSL_R_UNEXPECTED_MESSAGE 
     1160            || n == SSL_R_WRONG_VERSION_NUMBER 
     1161            || n == 1000 /* SSL_R_SSLV3_ALERT_CLOSE_NOTIFY */ 
     1162            || n == SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 
     1163            || n == SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 
     1164            || n == SSL_R_TLSV1_ALERT_UNKNOWN_CA) 
     1165        { 
     1166            switch (c->log_error) { 
     1167 
     1168            case NGX_ERROR_IGNORE_ECONNRESET: 
     1169            case NGX_ERROR_INFO: 
     1170                level = NGX_LOG_INFO; 
     1171                break; 
     1172 
     1173            case NGX_ERROR_ERR: 
     1174                level = NGX_LOG_ERR; 
     1175                break; 
     1176 
     1177            default: 
     1178                break; 
     1179            } 
     1180        } 
    11441181    } 
    11451182 
     
    11511188ngx_ssl_clear_error(ngx_log_t *log) 
    11521189{ 
    1153     if (ERR_peek_error()) { 
     1190    while (ERR_peek_error()) { 
    11541191        ngx_ssl_error(NGX_LOG_ALERT, log, 0, "ignoring stale global SSL error"); 
    11551192    } 
     1193 
     1194    ERR_clear_error(); 
    11561195} 
    11571196 
     
    11601199ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, char *fmt, ...) 
    11611200{ 
    1162     u_long   n; 
    1163     va_list  args; 
    1164     u_char   errstr[NGX_MAX_CONF_ERRSTR], *p, *last; 
     1201    u_long    n; 
     1202    va_list   args; 
     1203    u_char   *p, *last; 
     1204    u_char    errstr[NGX_MAX_CONF_ERRSTR]; 
    11651205 
    11661206    last = errstr + NGX_MAX_CONF_ERRSTR; 
     
    11721212    p = ngx_cpystrn(p, (u_char *) " (SSL:", last - p); 
    11731213 
    1174     while (p < last) { 
     1214    for ( ;; ) { 
    11751215 
    11761216        n = ERR_get_error(); 
     
    11781218        if (n == 0) { 
    11791219            break; 
     1220        } 
     1221 
     1222        if (p >= last) { 
     1223            continue; 
    11801224        } 
    11811225 
  • server/src/http/modules/ngx_http_dav_module.c

    rcef790 r2fe1a6  
    11411141     */ 
    11421142 
    1143     conf->min_delete_depth = NGX_CONF_UNSET; 
     1143    conf->min_delete_depth = NGX_CONF_UNSET_UINT; 
    11441144    conf->access = NGX_CONF_UNSET_UINT; 
    11451145    conf->create_full_put_path = NGX_CONF_UNSET; 
  • server/src/http/modules/ngx_http_fastcgi_module.c

    rb57b1b r2fe1a6  
    134134static char *ngx_http_fastcgi_upstream_fail_timeout_unsupported(ngx_conf_t *cf, 
    135135    ngx_command_t *cmd, void *conf); 
    136  
    137  
    138 static ngx_http_fastcgi_request_start_t  ngx_http_fastcgi_request_start = { 
    139     { 1,                                               /* version */ 
    140       NGX_HTTP_FASTCGI_BEGIN_REQUEST,                  /* type */ 
    141       0,                                               /* request_id_hi */ 
    142       1,                                               /* request_id_lo */ 
    143       0,                                               /* content_length_hi */ 
    144       sizeof(ngx_http_fastcgi_begin_request_t),        /* content_length_lo */ 
    145       0,                                               /* padding_length */ 
    146       0 },                                             /* reserved */ 
    147  
    148     { 0,                                               /* role_hi */ 
    149       NGX_HTTP_FASTCGI_RESPONDER,                      /* role_lo */ 
    150       0, /* NGX_HTTP_FASTCGI_KEEP_CONN */              /* flags */ 
    151       { 0, 0, 0, 0, 0 } },                             /* reserved[5] */ 
    152  
    153     { 1,                                               /* version */ 
    154       NGX_HTTP_FASTCGI_PARAMS,                         /* type */ 
    155       0,                                               /* request_id_hi */ 
    156       1 },                                             /* request_id_lo */ 
    157  
    158 }; 
    159  
    160  
    161 static ngx_str_t  ngx_http_fastcgi_script_name = 
    162     ngx_string("fastcgi_script_name"); 
    163136 
    164137 
     
    413386 
    414387 
     388static ngx_http_fastcgi_request_start_t  ngx_http_fastcgi_request_start = { 
     389    { 1,                                               /* version */ 
     390      NGX_HTTP_FASTCGI_BEGIN_REQUEST,                  /* type */ 
     391      0,                                               /* request_id_hi */ 
     392      1,                                               /* request_id_lo */ 
     393      0,                                               /* content_length_hi */ 
     394      sizeof(ngx_http_fastcgi_begin_request_t),        /* content_length_lo */ 
     395      0,                                               /* padding_length */ 
     396      0 },                                             /* reserved */ 
     397 
     398    { 0,                                               /* role_hi */ 
     399      NGX_HTTP_FASTCGI_RESPONDER,                      /* role_lo */ 
     400      0, /* NGX_HTTP_FASTCGI_KEEP_CONN */              /* flags */ 
     401      { 0, 0, 0, 0, 0 } },                             /* reserved[5] */ 
     402 
     403    { 1,                                               /* version */ 
     404      NGX_HTTP_FASTCGI_PARAMS,                         /* type */ 
     405      0,                                               /* request_id_hi */ 
     406      1 },                                             /* request_id_lo */ 
     407 
     408}; 
     409 
     410 
     411static ngx_str_t  ngx_http_fastcgi_script_name = 
     412    ngx_string("fastcgi_script_name"); 
     413 
     414 
    415415static ngx_str_t  ngx_http_fastcgi_hide_headers[] = { 
    416416    ngx_string("Status"), 
     
    418418    ngx_string("X-Accel-Redirect"), 
    419419    ngx_string("X-Accel-Limit-Rate"), 
    420     ngx_string("X-Accel-Buffer"), 
     420    ngx_string("X-Accel-Buffering"), 
     421    ngx_string("X-Accel-Charset"), 
    421422    ngx_null_string 
    422423}; 
  • server/src/http/modules/ngx_http_proxy_module.c

    r08686b r2fe1a6  
    436436    ngx_string("X-Accel-Redirect"), 
    437437    ngx_string("X-Accel-Limit-Rate"), 
    438     ngx_string("X-Accel-Buffer"), 
     438    ngx_string("X-Accel-Buffering"), 
     439    ngx_string("X-Accel-Charset"), 
    439440    ngx_null_string 
    440441}; 
  • server/src/http/modules/perl/nginx.pm

    rcef790 r2fe1a6  
    4848); 
    4949 
    50 our $VERSION = '0.6.25'; 
     50our $VERSION = '0.6.26'; 
    5151 
    5252require XSLoader; 
  • server/src/http/ngx_http_core_module.c

    rcef790 r2fe1a6  
    653653 
    654654 
     655static ngx_str_t  ngx_http_core_get_method = { 3, (u_char *) "GET " }; 
     656 
     657 
    655658void 
    656659ngx_http_handler(ngx_http_request_t *r) 
     
    17611764 
    17621765    sr->unparsed_uri = r->unparsed_uri; 
    1763     sr->method_name = r->method_name; 
     1766    sr->method_name = ngx_http_core_get_method; 
    17641767    sr->http_protocol = r->http_protocol; 
    17651768 
     
    29102913            conf->resolver = ngx_resolver_create(NULL, cf->cycle->new_log); 
    29112914            if (conf->resolver == NULL) { 
    2912                 return NGX_OK; 
     2915                return NGX_CONF_ERROR; 
    29132916            } 
    29142917        } 
  • server/src/http/ngx_http_request.c

    rcef790 r2fe1a6  
    480480 
    481481    if (n == -1 && ngx_socket_errno == NGX_EAGAIN) { 
     482 
     483        if (!rev->timer_set) { 
     484            ngx_add_timer(rev, c->listening->post_accept_timeout); 
     485        } 
     486 
     487        if (ngx_handle_read_event(rev, 0) == NGX_ERROR) { 
     488            ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); 
     489        } 
     490 
    482491        return; 
    483492    } 
     
    986995 
    987996    if (n == NGX_AGAIN) { 
    988         if (!r->header_timeout_set) { 
     997        if (!rev->timer_set) { 
    989998            cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module); 
    990999            ngx_add_timer(rev, cscf->client_header_timeout); 
    991             r->header_timeout_set = 1; 
    9921000        } 
    9931001 
  • server/src/http/ngx_http_request.h

    rcef790 r2fe1a6  
    427427    unsigned                          fast_subrequest:1; 
    428428    unsigned                          subrequest_in_memory:1; 
    429  
    430     unsigned                          header_timeout_set:1; 
    431429 
    432430    unsigned                          gzip:2; 
  • server/src/http/ngx_http_upstream.c

    r08686b r2fe1a6  
    13531353    r->headers_out.status_line = u->headers_in.status_line; 
    13541354 
     1355    u->headers_in.content_length_n = r->headers_out.content_length_n; 
     1356 
    13551357    if (r->headers_out.content_length_n != -1) { 
    13561358        u->length = (size_t) r->headers_out.content_length_n; 
     
    19561958ngx_http_upstream_process_body(ngx_event_t *ev) 
    19571959{ 
     1960    ngx_temp_file_t      *tf; 
    19581961    ngx_event_pipe_t     *p; 
    19591962    ngx_connection_t     *c, *downstream; 
     
    20502053        if (u->store) { 
    20512054 
    2052             if (p->upstream_eof && u->headers_in.status_n == NGX_HTTP_OK) { 
    2053  
     2055            tf = u->pipe->temp_file; 
     2056 
     2057            if (p->upstream_eof 
     2058                && u->headers_in.status_n == NGX_HTTP_OK 
     2059                && (u->headers_in.content_length_n == -1 
     2060                    || (u->headers_in.content_length_n == tf->offset))) 
     2061            { 
    20542062                ngx_http_upstream_store(r, u); 
    20552063 
     
    20572065                        || (p->upstream_eof 
    20582066                            && u->headers_in.status_n != NGX_HTTP_OK)) 
    2059                        && u->pipe->temp_file->file.fd != NGX_INVALID_FILE) 
     2067                       && tf->file.fd != NGX_INVALID_FILE) 
    20602068            { 
    2061                 if (ngx_delete_file(u->pipe->temp_file->file.name.data) 
    2062                     == NGX_FILE_ERROR) 
    2063                 { 
     2069                if (ngx_delete_file(tf->file.name.data) == NGX_FILE_ERROR) { 
     2070 
    20642071                    ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno, 
    20652072                                  ngx_delete_file_n " \"%s\" failed", 
  • server/src/http/ngx_http_upstream.h

    rb57b1b r2fe1a6  
    193193#endif 
    194194 
     195    off_t                           content_length_n; 
     196 
    195197    ngx_array_t                     cache_control; 
    196198} ngx_http_upstream_headers_in_t; 
  • server/src/http/ngx_http_upstream_round_robin.c

    rb57b1b r2fe1a6  
    606606 
    607607        for (i = 0; i < peers->number; i++) { 
    608             peer[i].current_weight += peer[i].weight; 
     608            peer[i].current_weight = peer[i].weight; 
    609609        } 
    610610    } 
  • server/src/os/unix/ngx_errno.h

    r0019fc r2fe1a6  
    3838#define NGX_ECONNREFUSED  ECONNREFUSED 
    3939#define NGX_ENAMETOOLONG  ENAMETOOLONG 
     40#define NGX_ENETDOWN      ENETDOWN 
     41#define NGX_ENETUNREACH   ENETUNREACH 
     42#define NGX_EHOSTDOWN     EHOSTDOWN 
    4043#define NGX_EHOSTUNREACH  EHOSTUNREACH 
    4144#define NGX_ENOSYS        ENOSYS 
  • server/src/os/unix/ngx_recv.c

    r0019fc r2fe1a6  
    4242 
    4343            } else { 
     44                rev->ready = 0; 
    4445                return NGX_AGAIN; 
    4546            } 
Note: See TracChangeset for help on using the changeset viewer.