virDomainNetFindIdx no longer returns info whether device was not found,
or there was multiple matches. Additionally it already handle error
reporting. Introduce virDomainHasNet which does a simple task, without
implicit error reporting.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
return matchidx;
}
+bool
+virDomainHasNet(virDomainDefPtr def, virDomainNetDefPtr net)
+{
+ size_t i;
+ bool PCIAddrSpecified = virDomainDeviceAddressIsValid(&net->info,
+ VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI);
+
+ for (i = 0; i < def->nnets; i++) {
+ if (virMacAddrCmp(&def->nets[i]->mac, &net->mac))
+ continue;
+
+ if (PCIAddrSpecified) {
+ if (virDevicePCIAddressEqual(&def->nets[i]->info.addr.pci,
+ &net->info.addr.pci))
+ return true;
+ } else {
+ return true;
+ }
+ }
+ return false;
+}
void
virDomainNetRemoveHostdev(virDomainDefPtr def,
int virDomainNetFindIdx(virDomainDefPtr def, virDomainNetDefPtr net);
virDomainNetDefPtr virDomainNetFind(virDomainDefPtr def, const char *device);
+bool virDomainHasNet(virDomainDefPtr def, virDomainNetDefPtr net);
int virDomainNetInsert(virDomainDefPtr def, virDomainNetDefPtr net);
virDomainNetDefPtr virDomainNetRemove(virDomainDefPtr def, size_t i);
void virDomainNetRemoveHostdev(virDomainDefPtr def, virDomainNetDefPtr net);
virDomainGraphicsVNCSharePolicyTypeFromString;
virDomainGraphicsVNCSharePolicyTypeToString;
virDomainHasDiskMirror;
+virDomainHasNet;
virDomainHostdevCapsTypeToString;
virDomainHostdevDefAlloc;
virDomainHostdevDefClear;