Mercurial > hg > nginx
comparison src/core/nginx.c @ 1080:681e048981a6
fix online upgrade
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 25 Jan 2007 21:48:28 +0000 |
parents | e6fc18f1a032 |
children | eb232400e829 |
comparison
equal
deleted
inserted
replaced
1079:c1d1a14ed071 | 1080:681e048981a6 |
---|---|
421 ngx_uint_t i, n; | 421 ngx_uint_t i, n; |
422 ngx_core_conf_t *ccf; | 422 ngx_core_conf_t *ccf; |
423 | 423 |
424 ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); | 424 ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); |
425 | 425 |
426 if (last) { | 426 if (last == NULL && ccf->environment) { |
427 n = *last; | 427 return ccf->environment; |
428 | |
429 } else { | |
430 if (ccf->environment) { | |
431 return ccf->environment; | |
432 } | |
433 | |
434 n = 0; | |
435 } | 428 } |
436 | 429 |
437 var = ccf->env.elts; | 430 var = ccf->env.elts; |
438 | 431 |
439 for (i = 0; i < ccf->env.nelts; i++) { | 432 for (i = 0; i < ccf->env.nelts; i++) { |
450 var->data = (u_char *) "TZ"; | 443 var->data = (u_char *) "TZ"; |
451 | 444 |
452 var = ccf->env.elts; | 445 var = ccf->env.elts; |
453 | 446 |
454 tz_found: | 447 tz_found: |
448 | |
449 n = 0; | |
455 | 450 |
456 for (i = 0; i < ccf->env.nelts; i++) { | 451 for (i = 0; i < ccf->env.nelts; i++) { |
457 | 452 |
458 if (var[i].data[var[i].len] == '=') { | 453 if (var[i].data[var[i].len] == '=') { |
459 n++; | 454 n++; |
470 } | 465 } |
471 } | 466 } |
472 } | 467 } |
473 | 468 |
474 if (last) { | 469 if (last) { |
470 env = ngx_alloc((*last + n + 1) * sizeof(char *), cycle->log); | |
475 *last = n; | 471 *last = n; |
476 env = ngx_alloc((n + 1) * sizeof(char *), cycle->log); | |
477 | 472 |
478 } else { | 473 } else { |
479 env = ngx_palloc(cycle->pool, (n + 1) * sizeof(char *)); | 474 env = ngx_palloc(cycle->pool, (n + 1) * sizeof(char *)); |
480 } | 475 } |
481 | 476 |