40 ngx_http_upstream_ip_hash,
66 &ngx_http_upstream_ip_hash_module_ctx,
67 ngx_http_upstream_ip_hash_commands,
80 static u_char ngx_http_upstream_ip_hash_pseudo_addr[3];
90 us->
peer.
init = ngx_http_upstream_init_ip_hash_peer;
100 struct sockaddr_in *sin;
102 struct sockaddr_in6 *sin6;
123 iphp->
addr = (u_char *) &sin->sin_addr.s_addr;
130 iphp->
addr = (u_char *) &sin6->sin6_addr.s6_addr;
136 iphp->
addr = ngx_http_upstream_ip_hash_pseudo_addr;
160 "get ip hash peer, try: %ui", pc->
tries);
177 for (i = 0; i < iphp->
addrlen; i++) {
178 hash = (hash * 113 + iphp->
addr[
i]) % 6271;
197 n = p / (8 *
sizeof(uintptr_t));
198 m = (uintptr_t) 1 << p % (8 *
sizeof(uintptr_t));
203 "get ip hash peer, hash: %ui %04XA", p, m);
228 if (++iphp->
tries >= 20) {
257 "load balancing method redefined");