|Summary:||freebsd-update does not form a valid MLIST when host -t srv returns non caps reply|
|Product:||Base System||Reporter:||George Mamalakis <mamalos>|
|Component:||bin||Assignee:||Colin Percival <cperciva>|
|Severity:||Affects Some People||CC:||mamalos|
Description George Mamalakis 2016-10-12 10:14:01 UTC
Created attachment 175655 [details] Patch that just makes the sed statement case insensitive. freebsd-update fetch fails to find a valid mirror list on some FreeBSD systems (tested with 10.1-RELEASE and 10.2-RELEASE), by returning: Looking up update.FreeBSD.org mirrors... none found. Fetching metadata signature for 10.2-RELEASE from update.FreeBSD.org... Reason: Depending on the DNS server a FreeBSD box asks, the answer to a query like: host -tsrv _http._tcp.update.FREEBSD.org can be either: _http._tcp.update.freebsd.org has SRV record 1 5 80 update3.freebsd.org. _http._tcp.update.freebsd.org has SRV record 1 50 80 update5.freebsd.org. _http._tcp.update.freebsd.org has SRV record 1 35 80 update4.freebsd.org. _http._tcp.update.freebsd.org has SRV record 1 40 80 update6.freebsd.org. or: _http._tcp.update.FREEBSD.org has SRV record 1 50 80 update5.freebsd.org. _http._tcp.update.FREEBSD.org has SRV record 1 40 80 update6.freebsd.org. _http._tcp.update.FREEBSD.org has SRV record 1 5 80 update3.freebsd.org. _http._tcp.update.FREEBSD.org has SRV record 1 35 80 update4.freebsd.org. freebsd-update script forms a list of available mirror servers by executing such a query and by running various sed commands on its output. If the reply does not contain FREEBSD in caps, the produced list turns out to be empty - which is wrong, since the reply is not empty (and since FQDNs are case insensitive). This happens because the SERVERNAME variable of freebsd-update takes its value (update.FREEBSD.org) from /etc/freebsd-update.conf, which has caps in it. It's strange that some DNS servers reply with caps when asked with caps and others don't, but this is a different issue... A patch that makes the sed statement case insensitive is provided. Another possible patch that would resolve the issue would be to change /etc/freebsd-update.conf's record to use lower case, but IMHO, the script is wrong because FQDNs are case insensitive and it doesn't take it into account.