-
Type: Bug
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: 0.0.13
-
Component/s: Options & Configuration
-
None
The way net.LookupTXT functions changed in Go 1.11. Previously, a TXT record with multiple components would be returned as a single string, which means a TXT record with the fields "a" "b" and "c" would be returned as "abc". Multiple TXT records would be returned as multiple strings. So if there were 2 TXT records one with "foo" and another with "bar", they would be returned as two separate strings.
The handling of multiple strings within a TXT record was incorrect, but interface made an assumption that there would be one string returned for each TXT record. Go 1.11 handles this by just returning all the fields separately, so a TXT record with "a" "b" "c" will return 3 strings. This means there is no way to determine from the returned values if there was one TXT record with multiple fields or if there were multiple TXT records.
Since there is no way to expose the internals of the LookupTXT function we'll need to come up with an alternative way of handling this functionality. In the interim we should just skip the test. If Go doesn't provide a new LookupTXT function in Go 1.12, then we'll need to either ignore the part of the initial DNS seedlist discovery specification the requires handling one TXT with a multiple strings and multiple TXT records or we'll need to implement our own DNS lookups using a library like https://github.com/miekg/dns.