On 2013-09-27 at 13:42, Øyvind Kolbu wrote:
On 2013-09-27 at 11:49, Daniel-Constantin Mierla
wrote:
Haven't got time to get back to it -- hope to
happen soon.
I've taken a small peak and think I at least found some of the problem, but
also got quite confused.
What is the relationship between
dns_cache.c:dns_srv_sip_resolvehost() and
dns_cache.c:dns_srv_sip_resolve()? They look very much copy and paste, with
the same error in them. Both will only search for UDP records if *proto is
not set. They also mangle the *proto value as they both set it to
PROTO_UDP if it is unset, and the leaves it that way instead of resetting
it to 0.
In resolve.c:no_naptr_srv_sip_resolvehost() a proper SRV lookup function is
defined, but not used at least for the t_relay() case. Perhaps change both
functions in dns_cache.c to use no_naptr_srv_sip_resolvehost?
The patch attached fixes the no NAPTR and no UDP case, but only when
use_dns_failover is set to off. We usually have it on, but I can't recall
why..
Anyhow the patch is rather trivial, just store *proto before overwriting it
and restore it before calling no_naptr_srv_sip_resolvehost.
--
Øyvind Kolbu