3 This file is part of NetVis
4 Copyright @ 2008 Mikko Rasa, Mikkosoft Productions
5 Distributed unter the GPL
8 #include <netinet/in.h>
10 #include <msp/time/units.h>
11 #include <msp/time/utils.h>
30 void Resolver::push(Host *h)
34 in_queue.push_back(h);
37 void Resolver::cancel(Host *h)
47 for(list<Host *>::iterator i=in_queue.begin(); i!=in_queue.end(); ++i)
54 for(list<Result>::iterator i=out_queue.begin(); i!=out_queue.end(); ++i)
66 for(list<Result>::iterator i=out_queue.begin(); i!=out_queue.end(); ++i)
67 i->host->set_name(i->name);
78 addr.sin_family = AF_INET;
83 current = in_queue.front();
84 in_queue.erase(in_queue.begin());
85 addr.sin_addr.s_addr = htonl(current->get_address());
89 int err = getnameinfo(reinterpret_cast<sockaddr *>(&addr), sizeof(addr), buf, sizeof(buf), 0, 0, NI_NOFQDN|NI_NAMEREQD);
94 out_queue.push_back(Result(current, buf));
98 Time::sleep(100*Time::msec);