diff --git a/src/core/ngx_inet.h b/src/core/ngx_inet.h
index 3014023..380ea50 100644
--- a/src/core/ngx_inet.h
+++ b/src/core/ngx_inet.h
@@ -17,8 +17,8 @@
 
 
 typedef struct {
-    in_addr_t  addr;
-    in_addr_t  mask;
+    in_addr_t           addr;
+    in_addr_t           mask;
 } ngx_inet_cidr_t;
 
 
@@ -57,53 +57,60 @@
 };
 
 
+typedef union {
+    in_addr_t           in_addr;
+} ngx_url_addr_t;
+
+
 typedef struct {
-    ngx_int_t     type;
+    ngx_int_t           type;
 
-    ngx_peers_t  *peers;
+    ngx_peers_t        *peers;
 
-    ngx_str_t     url;
-    ngx_str_t     host;
-    ngx_str_t     host_header;
-    ngx_str_t     port;
-    ngx_str_t     uri;
+    ngx_str_t           url;
+    ngx_str_t           host;
+    ngx_str_t           host_header;
+    ngx_str_t           port;
+    ngx_str_t           uri;
 
-    in_port_t     portn;
-    in_port_t     default_portn;
+    in_port_t           portn;
+    in_port_t           default_portn;
 
-    unsigned      listen:1;
-    unsigned      uri_part:1;
-    unsigned      upstream:1;
+    unsigned            listen:1;
+    unsigned            uri_part:1;
+    unsigned            upstream:1;
 
-    unsigned      default_port:1;
-    unsigned      wildcard:1;
+    unsigned            default_port:1;
+    unsigned            wildcard:1;
 
-    char         *err;
+    ngx_url_addr_t      addr;
+
+    char               *err;
 } ngx_url_t;
 
 
 typedef struct {
-    ngx_str_t     name;           /* "schema:host:port/uri" */
-    ngx_str_t     url;            /* "host:port/uri" */
-    ngx_str_t     host;
-    ngx_str_t     uri;
-    ngx_str_t     host_header;    /* "host:port" */
-    ngx_str_t     port_text;      /* "port" */
+    ngx_str_t           name;           /* "schema:host:port/uri" */
+    ngx_str_t           url;            /* "host:port/uri" */
+    ngx_str_t           host;
+    ngx_str_t           uri;
+    ngx_str_t           host_header;    /* "host:port" */
+    ngx_str_t           port_text;      /* "port" */
 
-    in_port_t     port;
+    in_port_t           port;
 
-    in_port_t     default_port_value;
+    in_port_t           default_port_value;
 
-    unsigned      default_port:1;
-    unsigned      wildcard:1;
+    unsigned            default_port:1;
+    unsigned            wildcard:1;
 
-    unsigned      uri_part:1;
-    unsigned      port_only:1;
+    unsigned            uri_part:1;
+    unsigned            port_only:1;
 } ngx_inet_upstream_t;
 
 
 size_t ngx_sock_ntop(int family, struct sockaddr *sa, u_char *text,
-                     size_t len);
+    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);
@@ -111,7 +118,6 @@
 ngx_peers_t *ngx_inet_upstream_parse(ngx_conf_t *cf, ngx_inet_upstream_t *u);
 ngx_peers_t *ngx_inet_resolve_peer(ngx_conf_t *cf, ngx_str_t *name,
     in_port_t port);
-char *ngx_inet_parse_host_port(ngx_inet_upstream_t *u);
 ngx_int_t ngx_parse_url(ngx_conf_t *cf, ngx_url_t *u);
 
 
