static ngx_uint_t get_ip_addr_crc(ngx_connection_t* c, int algorithm) {
ngx_int_t ip_type = c->sockaddr->sa_family;// r->connection->sockaddr->sa_family;
if (ip_type == AF_INET) {
//struct sockaddr_in* ip = (struct sockaddr_in*)(r->connection->sockaddr);
struct sockaddr_in* ip = (struct sockaddr_in*)(c->sockaddr);
char* addr = inet_ntoa(ip->sin_addr);
if (1 == algorithm)
{
return ngx_hash_key((u_char*)addr, ngx_strlen(addr));
}
else if (2 == algorithm) {
return ngx_murmur_hash2((u_char*)addr, ngx_strlen(addr));
}
else if (3 == algorithm) {
return ngx_crc32_short((u_char*)addr, ngx_strlen(addr));
}
}
return 0;
}