
On 07/10/2018 05:09 PM, Cole Robinson wrote:
This adds some generic virinterfaceobj code, roughly matching what is used by other stateful drivers like network, storage, etc.
Signed-off-by: Cole Robinson <crobinso@redhat.com> --- src/conf/virinterfaceobj.c | 105 +++++++++++++++++++++++++++++++++++++ src/conf/virinterfaceobj.h | 7 +++ src/libvirt_private.syms | 1 + src/test/test_driver.c | 15 ++++++ 4 files changed, 128 insertions(+)
diff --git a/src/conf/virinterfaceobj.c b/src/conf/virinterfaceobj.c index a1d7346eb2..87ce188117 100644 --- a/src/conf/virinterfaceobj.c +++ b/src/conf/virinterfaceobj.c @@ -241,6 +241,111 @@ virInterfaceObjListFindByName(virInterfaceObjListPtr interfaces, return obj; }
2 blank lines
+#define MATCH(FLAG) (flags & (FLAG)) +static bool +virInterfaceMatch(virInterfaceObjPtr obj,
virInterfaceObjMatch
+ unsigned int flags) +{ + /* filter by active state */ + if (MATCH(VIR_CONNECT_LIST_INTERFACES_FILTERS_ACTIVE) && + !((MATCH(VIR_CONNECT_LIST_INTERFACES_ACTIVE) && + virInterfaceObjIsActive(obj)) || + (MATCH(VIR_CONNECT_LIST_INTERFACES_INACTIVE) && + !virInterfaceObjIsActive(obj)))) + return false; + + return true; +} +#undef MATCH + + +struct virInterfaceObjListData { + virConnectPtr conn; + virInterfacePtr *ifaces; + virInterfaceObjListFilter filter; + unsigned int flags; + int nifaces; + bool error; +}; + +static int +virInterfaceObjListPopulate(void *payload,
This follows the NetworkObj code and I'll just point that the naming is still not common on what's done between: virDomainObjListCollectIterator virNetworkObjListPopulate virNodeDeviceObjListExportCallback virNWFilterBindingObjListCollectIterator virSecretObjListExportCallback virStoragePoolObjVolumeListExportCb virStoragePoolObjListExportCb Perhaps a common name could be a bite sized task. I never quite got to where I wanted to get to with the common object code mainly because of varying opinions and not having the energy to continue 0-). With the virInterfaceObjMatch adjustment, Reviewed-by: John Ferlan <jferlan@redhat.com> John [...]