24 #ifndef _NETCOMM_UTILS_RESOLVER_H_
25 #define _NETCOMM_UTILS_RESOLVER_H_
27 #include <core/utils/lock_hashmap.h>
28 #include <core/utils/lock_map.h>
29 #include <netinet/in.h>
30 #include <sys/socket.h>
31 #include <utils/misc/string_compare.h>
41 class NetworkNameResolverThread;
44 class NetworkNameResolver
46 friend NetworkNameResolverThread;
52 bool resolve_name(
const char *name,
struct sockaddr **addr, socklen_t *addrlen);
54 bool resolve_address(
struct sockaddr *addr, socklen_t addr_len, std::string &name);
64 void name_resolved(std::string name,
struct sockaddr *addr, socklen_t addrlen);
65 void addr_resolved(
struct sockaddr *addr, socklen_t addrlen, std::string name,
bool namefound);
66 void name_resolution_failed(std::string name);
67 void address_resolution_failed(
struct sockaddr *addr, socklen_t addrlen);
72 unsigned int cache_timeout_;