[getdns-api] Spec change request: Set suffixes from OS

Willem Toorop willem at nlnetlabs.nl
Thu Mar 24 10:30:45 CET 2016


Op 23-03-16 om 22:46 schreef Willem Toorop:
> Dear all,
> 
> The current spec (in paragraph 8.5 https://getdnsapi.net/spec.html#8.5 )
> states that the default suffixes is "an empty list".
> 
> I propose to change this to "set from the OS when the context is created
> with the "set_from_os" parameter set, otherwise an empty list".
> 
> This would be consistent with how other settings are "set from the OS",
> such as for example the upstream recursive servers.
> 
> The complete text will then become:
> 
> 
> 	getdns_return_t
> 	getdns_context_set_suffix(
> 	  getdns_context  *context,
> 	  getdns_list     *value
> 	);
> 
> 	The value is a list of bindatas that are strings that are to
> 	be appended based on getdns_context_set_append_name; the
> 	default is an set from the OS when the context is created with

Sorry, the "an" was unintended.  "set" was meant to be a verb.  So the
sentence should be:

	the default is set from the OS when the context is created with
	the "set_from_os" parameter set, otherwise an empty list.

The terminology "set from OS" is perhaps a little vague, but it is
coming from the spec (and not from me the implementer). The spec
elaborates a little more in 4th paragraph of section 8 (
https://getdnsapi.net/spec.html#8. ) where it says:

	When the context is used in the API for the first time and
	set_from_os is 1, the API starts replacing some of the values
	with values from the OS, such as those that would be found in
	res_query(3), /etc/resolv.conf, and so on, then proceeds with
	the new function.

In our implementation we construct the suffix list from the "domain" and
"search" options from /etc/resolv.conf in unix like systems, and read it
from the registry location
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
or HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/VxD/MSTCP
keys "Domain", "DhcpDomain" and "SearchList" on windows.  This is also
what ldns and Net::DNS do, and what getaddrinfo() does by default.

Note that the text also mentions that you have to create the context
with the set_from_OS argument of the getdns_context_create() function
set.  If you create a context without that parameter, then you do not
read the upstreams and suffixes from /etc/resolv.conf.

I would also be happy to have the getdns_context_set_append_name()
default value to be GETDNS_APPEND_NAME_NEVER .  It is just that current
default value is not what people are used to expect, so I want it to be
more what is conventional.


-- Willem


> 	the "set_from_os" parameter set, otherwise an empty list. The
> 	values here follow the rules in section 2.1 of RFC 4343 to
> 	allow non-ASCII octets and special characters in labels.
> 
> 
> Do you agree?
> 
> I would appreciate a response on short notice as I am about to do the
> 1.0beta release very soon (preferable before the DNS-OARC and IETF95).
> 
> Thanks,
> 
> -- Willem
> _______________________________________________
> spec mailing list
> spec at getdnsapi.net
> 



More information about the spec mailing list