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 <utils/misc/string_compare.h> 31 #include <sys/socket.h> 32 #include <netinet/in.h> 45 class NetworkNameResolverThread;
56 bool resolve_name(
const char *name,
struct sockaddr **addr, socklen_t *addrlen);
58 bool resolve_address(
struct sockaddr *addr, socklen_t addr_len, std::string &name);
68 void name_resolved(std::string name,
struct sockaddr *addr, socklen_t addrlen);
69 void addr_resolved(
struct sockaddr *addr, socklen_t addrlen, std::string name,
bool namefound);
70 void name_resolution_failed(std::string name);
71 void address_resolution_failed(
struct sockaddr *addr, socklen_t addrlen);
76 unsigned int __cache_timeout;
bool resolve_name(const char *name, struct sockaddr **addr, socklen_t *addrlen)
Resolve name.
const char * hostname()
Get long hostname.
Fawkes library namespace.
Worker thread for NetworkNameResolver.
~NetworkNameResolver()
Destructor.
void flush_cache()
Flush cache.
const char * short_hostname()
Get short hostname.
bool resolve_address(struct sockaddr *addr, socklen_t addr_len, std::string &name)
Resolve address.
Network name and address resolver.
unsigned int cache_timeout()
Get cache timeout.
bool resolve_name_blocking(const char *name, struct sockaddr **addr, socklen_t *addrlen)
Resolve name and wait for the result.
void set_cache_timeout(unsigned int sec)
Set cache timeout.
NetworkNameResolver(AvahiThread *avahi_thread=NULL)
Constructor.