use pool instead of ngx_conf_t

This commit is contained in:
Igor Sysoev 2007-10-08 08:55:12 +00:00
parent 7973964b3f
commit 7ed63ee75f
8 changed files with 33 additions and 26 deletions

View File

@ -225,7 +225,7 @@ ngx_ptocidr(ngx_str_t *text, void *cidr)
ngx_int_t
ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u)
ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u)
{
u_char *p, *host, *port_start;
size_t len, port_len;
@ -273,12 +273,12 @@ ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u)
return NGX_ERROR;
}
u->addrs = ngx_pcalloc(cf->pool, sizeof(ngx_peer_addr_t));
u->addrs = ngx_pcalloc(pool, sizeof(ngx_peer_addr_t));
if (u->addrs == NULL) {
return NGX_ERROR;
}
saun = ngx_pcalloc(cf->pool, sizeof(struct sockaddr_un));
saun = ngx_pcalloc(pool, sizeof(struct sockaddr_un));
if (saun == NULL) {
return NGX_ERROR;
}
@ -408,12 +408,12 @@ no_port:
if (u->host.len) {
host = ngx_palloc(cf->temp_pool, u->host.len + 1);
if (host == NULL) {
return NGX_ERROR;
}
host = ngx_alloc(u->host.len + 1, pool->log);
if (host == NULL) {
return NGX_ERROR;
}
(void) ngx_cpystrn(host, u->host.data, u->host.len + 1);
(void) ngx_cpystrn(host, u->host.data, u->host.len + 1);
u->addr.in_addr = inet_addr((const char *) host);
@ -421,6 +421,7 @@ no_port:
h = gethostbyname((const char *) host);
if (h == NULL || h->h_addr_list[0] == NULL) {
ngx_free(host);
u->err = "host not found";
return NGX_ERROR;
}
@ -428,6 +429,8 @@ no_port:
u->addr.in_addr = *(in_addr_t *) (h->h_addr_list[0]);
}
ngx_free(host);
} else {
u->addr.in_addr = INADDR_ANY;
}
@ -453,7 +456,7 @@ no_port:
return NGX_ERROR;
}
if (ngx_inet_resolve_host(cf, u) != NGX_OK) {
if (ngx_inet_resolve_host(pool, u) != NGX_OK) {
return NGX_ERROR;
}
@ -462,7 +465,7 @@ no_port:
ngx_int_t
ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u)
{
u_char *p, *host;
size_t len;
@ -471,7 +474,7 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
struct hostent *h;
struct sockaddr_in *sin;
host = ngx_palloc(cf->temp_pool, u->host.len + 1);
host = ngx_alloc(u->host.len + 1, pool->log);
if (host == NULL) {
return NGX_ERROR;
}
@ -485,6 +488,8 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
if (in_addr == INADDR_NONE) {
h = gethostbyname((char *) host);
ngx_free(host);
if (h == NULL || h->h_addr_list[0] == NULL) {
u->err = "host not found";
return NGX_ERROR;
@ -499,7 +504,7 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
/* MP: ngx_shared_palloc() */
u->addrs = ngx_pcalloc(cf->pool, i * sizeof(ngx_peer_addr_t));
u->addrs = ngx_pcalloc(pool, i * sizeof(ngx_peer_addr_t));
if (u->addrs == NULL) {
return NGX_ERROR;
}
@ -508,7 +513,7 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
for (i = 0; h->h_addr_list[i] != NULL; i++) {
sin = ngx_pcalloc(cf->pool, sizeof(struct sockaddr_in));
sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in));
if (sin == NULL) {
return NGX_ERROR;
}
@ -522,7 +527,7 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
len = INET_ADDRSTRLEN - 1 + 1 + sizeof(":65536") - 1;
p = ngx_palloc(cf->pool, len);
p = ngx_palloc(pool, len);
if (p == NULL) {
return NGX_ERROR;
}
@ -535,14 +540,16 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
} else {
ngx_free(host);
/* MP: ngx_shared_palloc() */
u->addrs = ngx_pcalloc(cf->pool, sizeof(ngx_peer_addr_t));
u->addrs = ngx_pcalloc(pool, sizeof(ngx_peer_addr_t));
if (u->addrs == NULL) {
return NGX_ERROR;
}
sin = ngx_pcalloc(cf->pool, sizeof(struct sockaddr_in));
sin = ngx_pcalloc(pool, sizeof(struct sockaddr_in));
if (sin == NULL) {
return NGX_ERROR;
}
@ -556,7 +563,7 @@ ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u)
u->addrs[0].sockaddr = (struct sockaddr *) sin;
u->addrs[0].socklen = sizeof(struct sockaddr_in);
p = ngx_palloc(cf->pool, u->host.len + sizeof(":65536") - 1);
p = ngx_palloc(pool, u->host.len + sizeof(":65536") - 1);
if (p == NULL) {
return NGX_ERROR;
}

View File

@ -61,8 +61,8 @@ typedef struct {
size_t ngx_sock_ntop(int family, struct sockaddr *sa, u_char *text, size_t len);
size_t ngx_inet_ntop(int family, void *addr, u_char *text, size_t len);
ngx_int_t ngx_ptocidr(ngx_str_t *text, void *cidr);
ngx_int_t ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u);
ngx_int_t ngx_inet_resolve_host(ngx_conf_t *cf, ngx_url_t *u);
ngx_int_t ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u);
ngx_int_t ngx_inet_resolve_host(ngx_pool_t *pool, ngx_url_t *u);

View File

@ -2607,7 +2607,7 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.listen = 1;
u.default_port = 80;
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in \"%V\" of the \"listen\" directive",

View File

@ -3065,7 +3065,7 @@ ngx_http_upstream_server(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.url = value[1];
u.default_port = 80;
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in upstream \"%V\"", u.err, &u.url);
@ -3180,7 +3180,7 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags)
if (!(flags & NGX_HTTP_UPSTREAM_CREATE)) {
if (ngx_parse_url(cf, u) != NGX_OK) {
if (ngx_parse_url(cf->pool, u) != NGX_OK) {
if (u->err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in upstream \"%V\"", u->err, &u->url);

View File

@ -145,7 +145,7 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
u.host = us->host;
u.port = (in_port_t) (us->port ? us->port : us->default_port);
if (ngx_inet_resolve_host(cf, &u) != NGX_OK) {
if (ngx_inet_resolve_host(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
"%s in upstream \"%V\" in %s:%ui",

View File

@ -1368,7 +1368,7 @@ ngx_mail_auth_http(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.url.data += 7;
}
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in auth_http \"%V\"", u.err, &u.url);

View File

@ -285,7 +285,7 @@ ngx_mail_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.url = value[1];
u.listen = 1;
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in \"%V\" of the \"listen\" directive",

View File

@ -187,7 +187,7 @@ ngx_http_mysql_test(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
u.url = value[1];
u.default_port = 3306;
if (ngx_parse_url(cf, &u) != NGX_OK) {
if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
if (u.err) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"%s in upstream \"%V\"", u.err, &u.url);