The set of patches aims to three kind of jobs.
First, for SRV RR, in order to strictly comform to RFC 2782, the patch
changed and upgraded codes in following parts.
The format of SRV RR:
_Service._Proto.Name TTL Class SRV Priority Weight Port Target
1,The protocol and service labels are prepended with an underscore.
e.g:
_ldap._tcp.example.com
2,The range of Port,Priority,Weight is 0-65535.
3,A Target of "." means that the service is decidedly not available at this
domain.
Also, trying to invoke dnsmasq command line based on its manpage.
--srv-host=<_service>.<_prot>.[<domain>],[<target>[,<port>[,<priority>[,<weight>]]]]
_service and protocol are mandatory options.
The reset of them are optional.
When the target is not given in dnsmasq, it comform to the third item above.
For TXT RR, we changed the text field from mandatory to optional based on
dnsmasq manpage:
--txt-record=<name>[[,<text>],<text>]
Second, changed the way of dns element as well as its children elements parsing via
virXPathNodeSet(). It has advantages when multiple children elements there is.
Third, fixed related bug and unexposed bugs
https://bugzilla.redhat.com/show_bug.cgi?id=836326