]> git.tdb.fi Git - netvis.git/blobdiff - source/resolver.cpp
Handle ICMP packets
[netvis.git] / source / resolver.cpp
index 702ce9670d59100d649a47dd29a7df060dd557b2..196a8b2beae1b8bfcaae8cf8fb68260617639ecc 100644 (file)
@@ -50,6 +50,13 @@ void Resolver::cancel(Host *h)
                        in_queue.erase(i);
                        break;
                }
+
+       for(list<Result>::iterator i=out_queue.begin(); i!=out_queue.end(); ++i)
+               if(i->host==h)
+               {
+                       out_queue.erase(i);
+                       break;
+               }
 }
 
 void Resolver::tick()
@@ -67,15 +74,14 @@ void Resolver::main()
        {
                while(!done)
                {
-                       sockaddr_in addr;
-                       addr.sin_family = AF_INET;
+                       sockaddr_storage addr;
                        {
                                MutexLock l_(mutex);
                                if(in_queue.empty())
                                        break;
                                current = in_queue.front();
                                in_queue.erase(in_queue.begin());
-                               addr.sin_addr.s_addr = htonl(current->get_address());
+                               current->get_address().to_sockaddr(addr);
                        }
                        
                        char buf[128];