diff options
Diffstat (limited to 'src/inet_ntop_cache.c')
-rw-r--r-- | src/inet_ntop_cache.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/inet_ntop_cache.c b/src/inet_ntop_cache.c deleted file mode 100644 index 51755df3..00000000 --- a/src/inet_ntop_cache.c +++ /dev/null @@ -1,53 +0,0 @@ -#include <sys/types.h> - -#include <string.h> - - -#include "base.h" -#include "inet_ntop_cache.h" -#include "sys-socket.h" - -const char * inet_ntop_cache_get_ip(server *srv, sock_addr *addr) { -#ifdef HAVE_IPV6 - size_t ndx = 0, i; - for (i = 0; i < INET_NTOP_CACHE_MAX; i++) { - if (srv->inet_ntop_cache[i].ts != 0 && srv->inet_ntop_cache[i].family == addr->plain.sa_family) { - if (srv->inet_ntop_cache[i].family == AF_INET6 && - 0 == memcmp(srv->inet_ntop_cache[i].addr.ipv6.s6_addr, addr->ipv6.sin6_addr.s6_addr, 16)) { - /* IPv6 found in cache */ - break; - } else if (srv->inet_ntop_cache[i].family == AF_INET && - srv->inet_ntop_cache[i].addr.ipv4.s_addr == addr->ipv4.sin_addr.s_addr) { - /* IPv4 found in cache */ - break; - - } - } - } - - if (i == INET_NTOP_CACHE_MAX) { - /* not found in cache */ - - i = ndx; - inet_ntop(addr->plain.sa_family, - addr->plain.sa_family == AF_INET6 ? - (const void *) &(addr->ipv6.sin6_addr) : - (const void *) &(addr->ipv4.sin_addr), - srv->inet_ntop_cache[i].b2, INET6_ADDRSTRLEN); - - srv->inet_ntop_cache[i].ts = srv->cur_ts; - srv->inet_ntop_cache[i].family = addr->plain.sa_family; - - if (srv->inet_ntop_cache[i].family == AF_INET) { - srv->inet_ntop_cache[i].addr.ipv4.s_addr = addr->ipv4.sin_addr.s_addr; - } else if (srv->inet_ntop_cache[i].family == AF_INET6) { - memcpy(srv->inet_ntop_cache[i].addr.ipv6.s6_addr, addr->ipv6.sin6_addr.s6_addr, 16); - } - } - - return srv->inet_ntop_cache[i].b2; -#else - UNUSED(srv); - return inet_ntoa(addr->ipv4.sin_addr); -#endif -} |