Mercurial > hg > nginx
comparison src/core/nginx.c @ 860:201d017ea470
slab allocator in shared memory
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 20 Nov 2006 08:51:45 +0000 |
parents | 3db9dd3d9d8c |
children | 45df22906c12 |
comparison
equal
deleted
inserted
replaced
859:d1e8c59a50ee | 860:201d017ea470 |
---|---|
619 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) | 619 ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) |
620 { | 620 { |
621 ngx_core_conf_t *ccf = conf; | 621 ngx_core_conf_t *ccf = conf; |
622 | 622 |
623 #if !(NGX_WIN32) | 623 #if !(NGX_WIN32) |
624 ngx_str_t lock_file; | |
624 struct passwd *pwd; | 625 struct passwd *pwd; |
625 struct group *grp; | 626 struct group *grp; |
626 #endif | 627 #endif |
627 | 628 |
628 ngx_conf_init_value(ccf->daemon, 1); | 629 ngx_conf_init_value(ccf->daemon, 1); |
695 } | 696 } |
696 | 697 |
697 ngx_memcpy(ngx_cpymem(ccf->oldpid.data, ccf->pid.data, ccf->pid.len), | 698 ngx_memcpy(ngx_cpymem(ccf->oldpid.data, ccf->pid.data, ccf->pid.len), |
698 NGX_OLDPID_EXT, sizeof(NGX_OLDPID_EXT)); | 699 NGX_OLDPID_EXT, sizeof(NGX_OLDPID_EXT)); |
699 | 700 |
701 | |
700 if (ccf->lock_file.len == 0) { | 702 if (ccf->lock_file.len == 0) { |
701 ccf->lock_file.len = sizeof(NGX_LOCK_PATH) - 1; | 703 ccf->lock_file.len = sizeof(NGX_LOCK_PATH) - 1; |
702 ccf->lock_file.data = (u_char *) NGX_LOCK_PATH; | 704 ccf->lock_file.data = (u_char *) NGX_LOCK_PATH; |
703 } | 705 } |
704 | 706 |
705 if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) { | 707 if (ngx_conf_full_name(cycle, &ccf->lock_file) == NGX_ERROR) { |
706 return NGX_CONF_ERROR; | 708 return NGX_CONF_ERROR; |
709 } | |
710 | |
711 lock_file = cycle->old_cycle->lock_file; | |
712 | |
713 if (lock_file.len) { | |
714 lock_file.len--; | |
715 | |
716 if (ccf->lock_file.len != lock_file.len | |
717 || ngx_strncmp(ccf->lock_file.data, lock_file.data, lock_file.len) | |
718 != 0) | |
719 { | |
720 ngx_log_error(NGX_LOG_EMERG, cycle->log, 0, | |
721 "\"lock_file\" could not be changed, ignored"); | |
722 } | |
723 | |
724 cycle->lock_file.len = lock_file.len + 1; | |
725 lock_file.len += sizeof(".accept"); | |
726 | |
727 cycle->lock_file.data = ngx_pstrdup(cycle->pool, &lock_file); | |
728 if (cycle->lock_file.data == NULL) { | |
729 return NGX_CONF_ERROR; | |
730 } | |
731 | |
732 } else { | |
733 cycle->lock_file.len = ccf->lock_file.len + 1; | |
734 cycle->lock_file.data = ngx_palloc(cycle->pool, | |
735 ccf->lock_file.len + sizeof(".accept")); | |
736 if (cycle->lock_file.data == NULL) { | |
737 return NGX_CONF_ERROR; | |
738 } | |
739 | |
740 ngx_memcpy(ngx_cpymem(cycle->lock_file.data, ccf->lock_file.data, | |
741 ccf->lock_file.len), | |
742 ".accept", sizeof(".accept")); | |
707 } | 743 } |
708 | 744 |
709 #endif | 745 #endif |
710 | 746 |
711 return NGX_CONF_OK; | 747 return NGX_CONF_OK; |