On 17.10.2013 19:09, Daniel-Constantin Mierla wrote:
looking at the first patch, I see that PROTO_NONE was
removed from those
switch statements on proto variables. I guess it was the reason of the
issue, as you pointed it out, that a non-existing udp srv records
results in failure. Isn't it?
No, the reason was that it can never be true, as just before *proto is
set to PROTO_UDP if not set.
if (proto){ /* makes sure we have a protocol set*/
if (*proto==0)
*proto=srv_proto=PROTO_UDP; /* default */
else
srv_proto=*proto;
}else{
srv_proto=PROTO_UDP;
}
The problem with the old code was that, unless you specified a
protocol, it would only attempt to search up _sip._udp and not
continue with _sip._tcp and possible other protocols.
To be sure I got properly the new logic, if proto var
is PROTO_NONE,
then create_srv_pref_list(..) will build a list of protocols to try
based on config preferences. The it will be a dns lookup of the values
in the list. Right?
Yes, if the original *proto is PROTO_NONE, then call
create_srv_pref_list and then stop on the first match in the
generated list.
--
Øyvind