Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-08-26 20:11:30 +0400
committerIgor Sysoev <igor@sysoev.ru>2008-08-26 20:11:30 +0400
commitd3bf7c1cd511a7defc463a2ff153c2540ca33200 (patch)
tree70ff89d3c72908e494fc8975c09e0c1f3e769222 /src/core
parent54477e417a9b571b970dd43b62672fac28a267ee (diff)
fix bugs introduced in r2204
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ngx_inet.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index d565705b0..6568cecb7 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -256,6 +256,8 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
ngx_int_t n;
struct hostent *h;
+ u->family = AF_INET;
+
host = u->url.data;
last = host + u->url.len;
@@ -279,12 +281,23 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
if (port) {
port++;
- if (last - port == 0) {
+ len = last - port;
+
+ if (len == 0) {
+ u->err = "invalid port";
+ return NGX_ERROR;
+ }
+
+ n = ngx_atoi(port, len);
+
+ if (n < 1 || n > 65536) {
u->err = "invalid port";
return NGX_ERROR;
}
- u->port_text.len = last - port;
+ u->port = (in_port_t) n;
+
+ u->port_text.len = len;
u->port_text.data = port;
last = port - 1;
@@ -332,6 +345,10 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
u->host.len = len;
u->host.data = host;
+ if (u->no_resolve) {
+ return NGX_OK;
+ }
+
if (len++) {
p = ngx_alloc(len, pool->log);
@@ -361,24 +378,6 @@ ngx_parse_inet_url(ngx_pool_t *pool, ngx_url_t *u)
u->addr.in_addr = INADDR_ANY;
}
- if (u->port_text.len) {
-
- n = ngx_atoi(u->port_text.data, u->port_text.len);
-
- if (n < 1 || n > 65536) {
- u->err = "invalid port";
- return NGX_ERROR;
- }
-
- u->port = (in_port_t) n;
- }
-
- u->family = AF_INET;
-
- if (u->no_resolve) {
- return NGX_OK;
- }
-
if (u->no_port) {
u->port = u->default_port;
}