You have to be careful about the architecture of all this.

In the original version of the code, it stepped through the operations mandated 
by RFC 3263.
This led to the obvious results, such as, it wouldn't look for A records for 
the domain name if
it found SRV records.

The problem with this strategy is that it requires several round-trips between 
the sipXtackLib
routine and the DNS server, which takes a bit of time, even if the server is on 
the same host.

The code was modified to make all possible queries in parallel.  This results 
in a useless queries
in almost all circumstances, but it makes the overall process faster, as all of 
the round-trips are
done in parallel.

Logging has another paradox.  In principle, there's no reason to log a warning 
just because a
certain class of DNS records is not found for a domain name, as it's a routine 
circumstance.
But in practice, when one is tracing a failed call, one wants to know "Did it 
get the DNS records
for this domain name?"  Failed DNS lookups (or invalid domain names) are a 
common cause
of failure, and the person diagnosing the problem has a hard time knowing if 
the DNS succeeded
or failed (long after the fact) if a note isn't put into the log file when a 
DNS lookup turns up empty.

Dale
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev/

Reply via email to