
Marek Marczykowski-Górecki wrote:
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> --- src/conf/domain_conf.c | 21 +++++++++++++++++++++ src/conf/domain_conf.h | 1 + src/libvirt_private.syms | 1 + 3 files changed, 23 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9b7ae3f..c430e03 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11908,6 +11908,27 @@ virDomainNetFindIdx(virDomainDefPtr def, virDomainNetDefPtr net) return matchidx; }
+bool virDomainHasNet(virDomainDefPtr def, virDomainNetDefPtr net)
Nit: libvirt style is to have return type on separate line.
+{ + 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) {
Braces here are fine, where the single statement spans multiple lines.
+ if (virDevicePCIAddressEqual(&def->nets[i]->info.addr.pci, + &net->info.addr.pci)) { + return true; + }
But not needed here. ACK. Will fix the nits before pushing. Regards, Jim
+ } else { + return true; + } + } + return false; +}
void virDomainNetRemoveHostdev(virDomainDefPtr def, diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 02ddd93..36c8131 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2601,6 +2601,7 @@ bool virDomainHasDiskMirror(virDomainObjPtr vm);
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); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index ba05cc6..5fe6ae0 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -292,6 +292,7 @@ virDomainGraphicsTypeToString; virDomainGraphicsVNCSharePolicyTypeFromString; virDomainGraphicsVNCSharePolicyTypeToString; virDomainHasDiskMirror; +virDomainHasNet; virDomainHostdevCapsTypeToString; virDomainHostdevDefAlloc; virDomainHostdevDefClear;