IT评测·应用市场-qidao123.com技术社区
标题:
ngx_http_core_create_main_conf
[打印本页]
作者:
魏晓东
时间:
6 天前
标题:
ngx_http_core_create_main_conf
在 src\http\ngx_http_core_module.c
static void *
ngx_http_core_create_main_conf(ngx_conf_t *cf)
{
ngx_http_core_main_conf_t *cmcf;
cmcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_core_main_conf_t));
if (cmcf == NULL) {
return NULL;
}
if (ngx_array_init(&cmcf->servers, cf->pool, 4,
sizeof(ngx_http_core_srv_conf_t *))
!= NGX_OK)
{
return NULL;
}
cmcf->server_names_hash_max_size = NGX_CONF_UNSET_UINT;
cmcf->server_names_hash_bucket_size = NGX_CONF_UNSET_UINT;
cmcf->variables_hash_max_size = NGX_CONF_UNSET_UINT;
cmcf->variables_hash_bucket_size = NGX_CONF_UNSET_UINT;
return cmcf;
}
复制代码
ngx_http_core_create_main_conf 函数是 Nginx 在初始化 HTTP 核心模块时创建并初始化主配置结构体
ngx_http_core_main_conf_t *cmcf;
cmcf = ngx_pcalloc(cf->pool, sizeof(ngx_http_core_main_conf_t));
if (cmcf == NULL) {
return NULL;
}
复制代码
分配内存,作为一个 ngx_http_core_main_conf_t 结构体,也是函数要返回的地点
ngx_http_core_main_conf_t-CSDN博客
if (ngx_array_init(&cmcf->servers, cf->pool, 4,
sizeof(ngx_http_core_srv_conf_t *))
!= NGX_OK)
{
return NULL;
}
复制代码
if (ngx_array_init(&cmcf->servers, cf->pool, 4, sizeof(ngx_http_core_srv_conf_t *)) != NGX_OK)
初始化一个动态数组 cmcf->servers,用于存储(`server` 级)的配置。
参数解析
&cmcf->servers:目标动态数组的地点
cf->pool:内存池,用于分配数组所需的内存。
4:数组的初始预分配元素个数(可动态扩展)。
sizeof(ngx_http_core_srv_conf_t *):数组元素的大小(每个元素是一个指向 `ngx_http_core_srv_conf_t` 结构体的指针)。
返回值检查:
`ngx_array_init` 返回 `NGX_OK` 表现成功,否则返回错误码。
若初始化失败,直接返回 `NULL`,停止函数实行。
cmcf->server_names_hash_max_size = NGX_CONF_UNSET_UINT;
cmcf->server_names_hash_bucket_size = NGX_CONF_UNSET_UINT;
cmcf->variables_hash_max_size = NGX_CONF_UNSET_UINT;
cmcf->variables_hash_bucket_size = NGX_CONF_UNSET_UINT;
return cmcf;
复制代码
初始化这些字段,设置的值的寄义表现此字段尚未设置
然后返回 ngx_http_core_main_conf_t 结构体的地点
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4