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(
char *name,
struct sockaddr *addr, socklen_t addrlen);
69 void addr_resolved(
struct sockaddr *addr, socklen_t addrlen,
char *name,
bool namefound);
70 void name_resolution_failed(
char *name);
71 void address_resolution_failed(
struct sockaddr *addr, socklen_t addrlen);
76 unsigned int __cache_timeout;
80 std::pair<struct sockaddr *, time_t>,
81 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2) 82 std::tr1::hash<char *>,
84 __gnu_cxx::hash<char *>,
90 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2) 91 std::tr1::hash<char *>,
93 __gnu_cxx::hash<char *>,
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.