Should we be returning an actual structure that contains a list?  This feels like quite a heavyweight copy.  Better to pass a target DnsResult structure in, or return a DnsResult pointer?