Changeset 2fe1a6
- Timestamp:
- 02/12/08 17:18:30 (4 years ago)
- 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)
- Location:
- server
- Files:
-
- 25 edited
-
CHANGES (modified) (1 diff)
-
CHANGES.ru (modified) (1 diff)
-
src/core/nginx.h (modified) (1 diff)
-
src/core/ngx_connection.c (modified) (1 diff)
-
src/core/ngx_cpuinfo.c (modified) (1 diff)
-
src/core/ngx_inet.c (modified) (1 diff)
-
src/core/ngx_resolver.c (modified) (2 diffs)
-
src/core/ngx_string.c (modified) (4 diffs)
-
src/core/ngx_times.c (modified) (1 diff)
-
src/event/modules/ngx_eventport_module.c (modified) (4 diffs)
-
src/event/modules/ngx_rtsig_module.c (modified) (1 diff)
-
src/event/ngx_event_connect.c (modified) (1 diff)
-
src/event/ngx_event_openssl.c (modified) (10 diffs)
-
src/http/modules/ngx_http_dav_module.c (modified) (1 diff)
-
src/http/modules/ngx_http_fastcgi_module.c (modified) (3 diffs)
-
src/http/modules/ngx_http_proxy_module.c (modified) (1 diff)
-
src/http/modules/perl/nginx.pm (modified) (1 diff)
-
src/http/ngx_http_core_module.c (modified) (3 diffs)
-
src/http/ngx_http_request.c (modified) (2 diffs)
-
src/http/ngx_http_request.h (modified) (1 diff)
-
src/http/ngx_http_upstream.c (modified) (4 diffs)
-
src/http/ngx_http_upstream.h (modified) (1 diff)
-
src/http/ngx_http_upstream_round_robin.c (modified) (1 diff)
-
src/os/unix/ngx_errno.h (modified) (1 diff)
-
src/os/unix/ngx_recv.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
server/CHANGES
rcef790 r2fe1a6 1 2 Changes 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 1 26 2 27 Changes 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 1 29 2 30 éÚÍÅÎÅÎÉÑ × nginx 0.6.25 08.01.2008 -
server/src/core/nginx.h
rcef790 r2fe1a6 9 9 10 10 11 #define NGINX_VERSION "0.6.2 5"11 #define NGINX_VERSION "0.6.26" 12 12 #define NGINX_VER "nginx/" NGINX_VERSION 13 13 -
server/src/core/ngx_connection.c
rcef790 r2fe1a6 768 768 || err == NGX_ETIMEDOUT 769 769 || err == NGX_ECONNREFUSED 770 || err == NGX_ENETDOWN 771 || err == NGX_ENETUNREACH 772 || err == NGX_EHOSTDOWN 770 773 || err == NGX_EHOSTUNREACH) 771 774 { -
server/src/core/ngx_cpuinfo.c
r0019fc r2fe1a6 93 93 if (ngx_strcmp(vendor, "GenuineIntel") == 0) { 94 94 95 switch ( cpu[0] & 0xf00) {95 switch ((cpu[0] & 0xf00) >> 8) { 96 96 97 97 /* Pentium */ 98 98 case 5: 99 ngx_cacheline_size = 32; 100 break; 101 99 102 /* Pentium Pro, II, III */ 100 103 case 6: 101 104 ngx_cacheline_size = 32; 105 106 if ((cpu[0] & 0xf0) >= 0xd0) { 107 /* Intel Core */ 108 ngx_cacheline_size = 64; 109 } 110 102 111 break; 103 112 -
server/src/core/ngx_inet.c
rcef790 r2fe1a6 213 213 c2 = c % 10; 214 214 215 *text ++= (u_char) (c2 + '0');215 *text = (u_char) (c2 + '0'); 216 216 n++; 217 217 -
server/src/core/ngx_resolver.c
r08686b r2fe1a6 216 216 if (ctx->event) { 217 217 ngx_resolver_free_locked(r, ctx->event); 218 } 219 220 ngx_resolver_free_locked(r, ctx); 218 ctx->event = NULL; 219 } 221 220 222 221 /* unlock alloc mutex */ … … 788 787 789 788 ngx_queue_insert_head(queue, &rn->queue); 790 791 continue;792 789 } 790 791 continue; 793 792 } 794 793 -
server/src/core/ngx_string.c
r08686b r2fe1a6 148 148 hexadecimal = 0; 149 149 max_width = 0; 150 slen = 0;150 slen = (size_t) -1; 151 151 152 152 p = temp + NGX_INT64_LEN; … … 183 183 184 184 case '*': 185 slen = va_arg(args, u_int);185 slen = va_arg(args, size_t); 186 186 fmt++; 187 187 continue; … … 222 222 p = va_arg(args, u_char *); 223 223 224 if (slen == 0) {224 if (slen == (size_t) -1) { 225 225 while (*p && buf < last) { 226 226 *buf++ = *p++; … … 228 228 229 229 } 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); 231 233 } 232 234 -
server/src/core/ngx_times.c
rb57b1b r2fe1a6 204 204 ngx_gmtime(time_t t, ngx_tm_t *tp) 205 205 { 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; 209 212 210 213 /* Jaunary 1, 1970 was Thursday */ 211 214 wday = (4 + days) % 7; 212 215 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; 218 221 219 222 /* the algorithm based on Gauss's formula */ -
server/src/event/modules/ngx_eventport_module.c
r0019fc r2fe1a6 40 40 void *portnfy_user; /* user defined */ 41 41 } 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;47 42 48 43 int port_create(void) … … 107 102 static port_event_t *event_list; 108 103 static ngx_uint_t nevents; 109 static timer_t event_timer = -1;104 static timer_t event_timer = (timer_t) -1; 110 105 111 106 static ngx_str_t eventport_name = ngx_string("eventport"); … … 238 233 ngx_eventport_done(ngx_cycle_t *cycle) 239 234 { 240 if (event_timer != -1) {235 if (event_timer != (timer_t) -1) { 241 236 if (timer_delete(event_timer) == -1) { 242 237 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, … … 244 239 } 245 240 246 event_timer = -1;241 event_timer = (timer_t) -1; 247 242 } 248 243 -
server/src/event/modules/ngx_rtsig_module.c
r0019fc r2fe1a6 13 13 14 14 #define F_SETSIG 10 15 #define SIGRTMIN 33 16 #define si_fd __spare__[0] 15 #define si_fd _reason.__spare__.__spare2__[0] 17 16 #define KERN_RTSIGNR 30 18 17 #define KERN_RTSIGMAX 31 -
server/src/event/ngx_event_connect.c
r0019fc r2fe1a6 144 144 if (err != NGX_EINPROGRESS && err != NGX_EAGAIN) { 145 145 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 { 147 152 level = NGX_LOG_ERR; 153 148 154 } else { 149 155 level = NGX_LOG_CRIT; -
server/src/event/ngx_event_openssl.c
r08686b r2fe1a6 188 188 } 189 189 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 190 197 SSL_CTX_set_read_ahead(ssl->ctx, 1); 191 198 … … 1036 1043 sslerr = 0; 1037 1044 1038 /* SSL_shutdown() never return -1, on error it return0 */1039 1040 if (n != 1 ) {1045 /* SSL_shutdown() never returns -1, on error it returns 0 */ 1046 1047 if (n != 1 && ERR_peek_error()) { 1041 1048 sslerr = SSL_get_error(c->ssl->connection, n); 1042 1049 … … 1045 1052 } 1046 1053 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) { 1051 1055 SSL_free(c->ssl->connection); 1052 1056 c->ssl = NULL; … … 1112 1116 char *text) 1113 1117 { 1118 int n; 1114 1119 ngx_uint_t level; 1115 1120 … … 1125 1130 #endif 1126 1131 || err == NGX_ECONNREFUSED 1132 || err == NGX_ENETDOWN 1133 || err == NGX_ENETUNREACH 1134 || err == NGX_EHOSTDOWN 1127 1135 || err == NGX_EHOSTUNREACH) 1128 1136 { … … 1142 1150 } 1143 1151 } 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 } 1144 1181 } 1145 1182 … … 1151 1188 ngx_ssl_clear_error(ngx_log_t *log) 1152 1189 { 1153 if(ERR_peek_error()) {1190 while (ERR_peek_error()) { 1154 1191 ngx_ssl_error(NGX_LOG_ALERT, log, 0, "ignoring stale global SSL error"); 1155 1192 } 1193 1194 ERR_clear_error(); 1156 1195 } 1157 1196 … … 1160 1199 ngx_ssl_error(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, char *fmt, ...) 1161 1200 { 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]; 1165 1205 1166 1206 last = errstr + NGX_MAX_CONF_ERRSTR; … … 1172 1212 p = ngx_cpystrn(p, (u_char *) " (SSL:", last - p); 1173 1213 1174 while (p < last) {1214 for ( ;; ) { 1175 1215 1176 1216 n = ERR_get_error(); … … 1178 1218 if (n == 0) { 1179 1219 break; 1220 } 1221 1222 if (p >= last) { 1223 continue; 1180 1224 } 1181 1225 -
server/src/http/modules/ngx_http_dav_module.c
rcef790 r2fe1a6 1141 1141 */ 1142 1142 1143 conf->min_delete_depth = NGX_CONF_UNSET ;1143 conf->min_delete_depth = NGX_CONF_UNSET_UINT; 1144 1144 conf->access = NGX_CONF_UNSET_UINT; 1145 1145 conf->create_full_put_path = NGX_CONF_UNSET; -
server/src/http/modules/ngx_http_fastcgi_module.c
rb57b1b r2fe1a6 134 134 static char *ngx_http_fastcgi_upstream_fail_timeout_unsupported(ngx_conf_t *cf, 135 135 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");163 136 164 137 … … 413 386 414 387 388 static 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 411 static ngx_str_t ngx_http_fastcgi_script_name = 412 ngx_string("fastcgi_script_name"); 413 414 415 415 static ngx_str_t ngx_http_fastcgi_hide_headers[] = { 416 416 ngx_string("Status"), … … 418 418 ngx_string("X-Accel-Redirect"), 419 419 ngx_string("X-Accel-Limit-Rate"), 420 ngx_string("X-Accel-Buffer"), 420 ngx_string("X-Accel-Buffering"), 421 ngx_string("X-Accel-Charset"), 421 422 ngx_null_string 422 423 }; -
server/src/http/modules/ngx_http_proxy_module.c
r08686b r2fe1a6 436 436 ngx_string("X-Accel-Redirect"), 437 437 ngx_string("X-Accel-Limit-Rate"), 438 ngx_string("X-Accel-Buffer"), 438 ngx_string("X-Accel-Buffering"), 439 ngx_string("X-Accel-Charset"), 439 440 ngx_null_string 440 441 }; -
server/src/http/modules/perl/nginx.pm
rcef790 r2fe1a6 48 48 ); 49 49 50 our $VERSION = '0.6.2 5';50 our $VERSION = '0.6.26'; 51 51 52 52 require XSLoader; -
server/src/http/ngx_http_core_module.c
rcef790 r2fe1a6 653 653 654 654 655 static ngx_str_t ngx_http_core_get_method = { 3, (u_char *) "GET " }; 656 657 655 658 void 656 659 ngx_http_handler(ngx_http_request_t *r) … … 1761 1764 1762 1765 sr->unparsed_uri = r->unparsed_uri; 1763 sr->method_name = r->method_name;1766 sr->method_name = ngx_http_core_get_method; 1764 1767 sr->http_protocol = r->http_protocol; 1765 1768 … … 2910 2913 conf->resolver = ngx_resolver_create(NULL, cf->cycle->new_log); 2911 2914 if (conf->resolver == NULL) { 2912 return NGX_ OK;2915 return NGX_CONF_ERROR; 2913 2916 } 2914 2917 } -
server/src/http/ngx_http_request.c
rcef790 r2fe1a6 480 480 481 481 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 482 491 return; 483 492 } … … 986 995 987 996 if (n == NGX_AGAIN) { 988 if (!r ->header_timeout_set) {997 if (!rev->timer_set) { 989 998 cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module); 990 999 ngx_add_timer(rev, cscf->client_header_timeout); 991 r->header_timeout_set = 1;992 1000 } 993 1001 -
server/src/http/ngx_http_request.h
rcef790 r2fe1a6 427 427 unsigned fast_subrequest:1; 428 428 unsigned subrequest_in_memory:1; 429 430 unsigned header_timeout_set:1;431 429 432 430 unsigned gzip:2; -
server/src/http/ngx_http_upstream.c
r08686b r2fe1a6 1353 1353 r->headers_out.status_line = u->headers_in.status_line; 1354 1354 1355 u->headers_in.content_length_n = r->headers_out.content_length_n; 1356 1355 1357 if (r->headers_out.content_length_n != -1) { 1356 1358 u->length = (size_t) r->headers_out.content_length_n; … … 1956 1958 ngx_http_upstream_process_body(ngx_event_t *ev) 1957 1959 { 1960 ngx_temp_file_t *tf; 1958 1961 ngx_event_pipe_t *p; 1959 1962 ngx_connection_t *c, *downstream; … … 2050 2053 if (u->store) { 2051 2054 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 { 2054 2062 ngx_http_upstream_store(r, u); 2055 2063 … … 2057 2065 || (p->upstream_eof 2058 2066 && 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) 2060 2068 { 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 2064 2071 ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno, 2065 2072 ngx_delete_file_n " \"%s\" failed", -
server/src/http/ngx_http_upstream.h
rb57b1b r2fe1a6 193 193 #endif 194 194 195 off_t content_length_n; 196 195 197 ngx_array_t cache_control; 196 198 } ngx_http_upstream_headers_in_t; -
server/src/http/ngx_http_upstream_round_robin.c
rb57b1b r2fe1a6 606 606 607 607 for (i = 0; i < peers->number; i++) { 608 peer[i].current_weight += peer[i].weight;608 peer[i].current_weight = peer[i].weight; 609 609 } 610 610 } -
server/src/os/unix/ngx_errno.h
r0019fc r2fe1a6 38 38 #define NGX_ECONNREFUSED ECONNREFUSED 39 39 #define NGX_ENAMETOOLONG ENAMETOOLONG 40 #define NGX_ENETDOWN ENETDOWN 41 #define NGX_ENETUNREACH ENETUNREACH 42 #define NGX_EHOSTDOWN EHOSTDOWN 40 43 #define NGX_EHOSTUNREACH EHOSTUNREACH 41 44 #define NGX_ENOSYS ENOSYS -
server/src/os/unix/ngx_recv.c
r0019fc r2fe1a6 42 42 43 43 } else { 44 rev->ready = 0; 44 45 return NGX_AGAIN; 45 46 }
Note: See TracChangeset
for help on using the changeset viewer.
