X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fresolver.cpp;h=196a8b2beae1b8bfcaae8cf8fb68260617639ecc;hb=HEAD;hp=702ce9670d59100d649a47dd29a7df060dd557b2;hpb=26fb816da7078d687f7540e2e0a2d525801592f7;p=netvis.git diff --git a/source/resolver.cpp b/source/resolver.cpp index 702ce96..196a8b2 100644 --- a/source/resolver.cpp +++ b/source/resolver.cpp @@ -50,6 +50,13 @@ void Resolver::cancel(Host *h) in_queue.erase(i); break; } + + for(list::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];