24 #ifndef __NETCOMM_UTILS_RESOLVER_THREAD_H_
25 #define __NETCOMM_UTILS_RESOLVER_THREAD_H_
27 #include <core/threading/thread.h>
28 #include <core/utils/lock_hashset.h>
29 #include <core/utils/lock_hashmap.h>
30 #include <utils/misc/string_compare.h>
32 #include <netcomm/dns-sd/avahi_resolver_handler.h>
34 #include <sys/socket.h>
35 #include <netinet/in.h>
44 class NetworkNameResolver;
48 class NetworkNameResolverThread :
public Thread,
public AvahiResolverHandler
62 struct sockaddr **addr, socklen_t *addr_len);
64 char **name,
bool *namefound);
66 virtual void resolved_name(
char *name,
struct sockaddr *addr, socklen_t addrlen);
67 virtual void resolved_address(
struct sockaddr_in *addr, socklen_t addrlen,
char *name);
82 Mutex *__namesq_mutex;
83 unsigned int __namesq_active;
84 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)
89 NamesQMap __namesqs[2];
91 NamesQMap *__namesq_proc;
95 unsigned int __addrq_active;
96 typedef std::map<uint32_t, std::pair<struct sockaddr *, socklen_t> > AddrQMap;
99 AddrQMap *__addrq_proc;