split ngx_parse_url()

This commit is contained in:
Igor Sysoev 2008-08-22 13:36:56 +00:00
parent 843ad94e81
commit 154013c5f3

View File

@ -8,6 +8,10 @@
#include <ngx_core.h>
static ngx_int_t ngx_parse_unix_domain_url(ngx_pool_t *pool, ngx_url_t *u);
static ngx_int_t ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u);
/* AF_INET only */
in_addr_t
@ -149,21 +153,34 @@ ngx_ptocidr(ngx_str_t *text, void *cidr)
ngx_int_t
ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u)
{
u_char *p, *host, *port_start;
size_t len, port_len;
ngx_int_t port;
ngx_uint_t i;
struct hostent *h;
#if (NGX_HAVE_UNIX_DOMAIN)
struct sockaddr_un *saun;
#endif
u_char *p;
len = u->url.len;
p = u->url.data;
if (ngx_strncasecmp(p, (u_char *) "unix:", 5) == 0) {
return ngx_parse_unix_domain_url(pool, u);
}
if ((p[0] == ':' || p[0] == '/') && !u->listen) {
u->err = "invalid host";
return NGX_ERROR;
}
return ngx_parse_inet_url(pool, u);
}
static ngx_int_t
ngx_parse_unix_domain_url(ngx_pool_t *pool, ngx_url_t *u)
{
#if (NGX_HAVE_UNIX_DOMAIN)
u_char *p;
size_t len;
ngx_uint_t i;
struct sockaddr_un *saun;
len = u->url.len;
p = u->url.data;
p += 5;
len -= 5;
@ -223,17 +240,26 @@ ngx_parse_url(ngx_pool_t *pool, ngx_url_t *u)
return NGX_OK;
#else
u->err = "the unix domain sockets are not supported on this platform";
return NGX_ERROR;
#endif
}
}
if ((p[0] == ':' || p[0] == '/') && !u->listen) {
u->err = "invalid host";
return NGX_ERROR;
}
static ngx_int_t
ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
{
u_char *p, *host, *port_start;
size_t len, port_len;
ngx_int_t port;
ngx_uint_t i;
struct hostent *h;
len = u->url.len;
p = u->url.data;
u->host.data = p;