Print whatever nameserver ares did decide to use into logs.

master
Nicky 2013-08-10 22:45:28 +02:00
parent e337b68062
commit ba2fe23e60
1 changed files with 37 additions and 0 deletions

View File

@ -108,6 +108,43 @@ LLAres::LLAres() :
return;
}
// <FS:ND> Write nameserver info to logs. Need at least ares 1.10.o for ares_inet_ntop
#if (ARES_VERSION >= 0x010A00)
ares_addr_node *pServer(0);
if( ARES_SUCCESS == ares_get_servers( chan_, &pServer ) && pServer )
{
ares_addr_node *pCur( pServer );
while( pCur )
{
std::stringstream strm;
char aBuffer[ INET6_ADDRSTRLEN +1 ] = {0};
switch( pCur->family )
{
case( AF_INET ):
{
ares_inet_ntop( pCur->family, &pCur->addr.addr4, aBuffer, INET6_ADDRSTRLEN );
strm << "IPv4 nameserver " << aBuffer;
break;
}
case( AF_INET6 ):
{
ares_inet_ntop( pCur->family, &pCur->addr.addr6, aBuffer, INET6_ADDRSTRLEN );
strm << "IPv6 nameserver " << aBuffer;
break;
}
default:
strm << "Unknown protocol " << pCur->family;
}
llinfos << strm.str() << llendl;
pCur = pCur->next;
}
ares_free_data( pServer );
}
#endif
// </FS:ND>
mListener = boost::shared_ptr< LLAresListener >(new LLAresListener(this));
mInitSuccess = true;