Mercurial > hg > nginx-quic
changeset 1144:324a5a3fe27f
ip_hash used wrong byte order
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 23 Mar 2007 12:52:33 +0000 |
parents | c6c42497106c |
children | 64854c7c95d0 |
files | src/http/modules/ngx_http_upstream_ip_hash_module.c |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_upstream_ip_hash_module.c +++ b/src/http/modules/ngx_http_upstream_ip_hash_module.c @@ -93,6 +93,7 @@ static ngx_int_t ngx_http_upstream_init_ip_hash_peer(ngx_http_request_t *r, ngx_http_upstream_srv_conf_t *us) { + u_char *p; struct sockaddr_in *sin; ngx_http_upstream_ip_hash_peer_data_t *iphp; @@ -111,9 +112,10 @@ ngx_http_upstream_init_ip_hash_peer(ngx_ /* AF_INET only */ sin = (struct sockaddr_in *) r->connection->sockaddr; - iphp->addr[0] = (u_char) ((sin->sin_addr.s_addr >> 24) & 0xff); - iphp->addr[1] = (u_char) ((sin->sin_addr.s_addr >> 16) & 0xff); - iphp->addr[2] = (u_char) ((sin->sin_addr.s_addr >> 8) & 0xff); + p = (u_char *) &sin->sin_addr.s_addr; + iphp->addr[0] = p[0]; + iphp->addr[1] = p[1]; + iphp->addr[2] = p[2]; iphp->hash = 89; iphp->tries = 0;