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()
{
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];