if (virSocketAddrEqual(&host.ip, &dns->hosts[i].ip))
foundThisTime = true;
- for (j = 0; j < host.nnames && !foundThisTime; j++) {
- for (k = 0; k < dns->hosts[i].nnames && !foundThisTime; k++) {
- if (STREQ(host.names[j], dns->hosts[i].names[k]))
- foundThisTime = true;
+ /* when adding we want to only check duplicates of address since having
+ * multiple addresses with the same hostname is a legitimate configuration */
+ if (!isAdd) {
+ for (j = 0; j < host.nnames && !foundThisTime; j++) {
+ for (k = 0; k < dns->hosts[i].nnames && !foundThisTime; k++) {
+ if (STREQ(host.names[j], dns->hosts[i].names[k]))
+ foundThisTime = true;
+ }
}
}
+
if (foundThisTime) {
foundCt++;
foundIdx = i;
<forward dev='eth0' mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<dns forwardPlainNames='no'>
+ <host ip='192.168.122.122'>
+ <hostname>pudding</hostname>
+ </host>
<host ip='192.168.122.1'>
<hostname>host</hostname>
<hostname>gateway</hostname>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<dns forwardPlainNames='no'>
+ <host ip='192.168.122.122'>
+ <hostname>pudding</hostname>
+ </host>
<host ip='192.168.122.1'>
<hostname>host</hostname>
<hostname>gateway</hostname>
<host ip='f0:d::f0:d'>
<hostname>pudding</hostname>
</host>
+ <host ip='192.168.122.122'>
+ <hostname>pudding</hostname>
+ </host>
<host ip='192.168.122.1'>
<hostname>host</hostname>
<hostname>gateway</hostname>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<dns forwardPlainNames='no'>
+ <host ip='192.168.122.122'>
+ <hostname>pudding</hostname>
+ </host>
<host ip='192.168.122.2'>
<hostname>shared</hostname>
<hostname>names</hostname>