use sin6_addr.s6_addr instead of "(u_char *) & .sin6_addr"
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index 326383b..7dfd341 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -221,7 +221,7 @@
text[n++] = '[';
}
- n = ngx_inet6_ntop((u_char *) &sin6->sin6_addr, &text[n], len);
+ n = ngx_inet6_ntop(sin6->sin6_addr.s6_addr, &text[n], len);
if (port) {
n = ngx_sprintf(&text[1 + n], "]:%d",
@@ -771,7 +771,7 @@
u->host.len = len;
u->host.data = host;
- if (ngx_inet6_addr(host, len, (u_char *) &sin6->sin6_addr) != NGX_OK) {
+ if (ngx_inet6_addr(host, len, sin6->sin6_addr.s6_addr) != NGX_OK) {
u->err = "invalid IPv6 address";
return NGX_ERROR;
}
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c
index b25e648..a8f5d96 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -887,7 +887,7 @@
v->valid = 1;
v->no_cacheable = 0;
v->not_found = 0;
- v->data = (u_char *) &sin6->sin6_addr;
+ v->data = sin6->sin6_addr.s6_addr;
break;
#endif