mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
network_conf: Introduce virNetworkObjListGetNames
An accessor following pattern laid out by virDomainObjList* APIs. Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
454fe219ef
commit
5a13c48b73
@ -4317,3 +4317,41 @@ virNetworkObjListForEach(virNetworkObjListPtr nets,
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
virNetworkObjListGetNames(virNetworkObjListPtr nets,
|
||||||
|
bool active,
|
||||||
|
char **names,
|
||||||
|
int nnames,
|
||||||
|
virNetworkObjListFilter filter,
|
||||||
|
virConnectPtr conn)
|
||||||
|
{
|
||||||
|
int got = 0;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < nets->count && got < nnames; i++) {
|
||||||
|
virNetworkObjPtr obj = nets->objs[i];
|
||||||
|
virNetworkObjLock(obj);
|
||||||
|
if (filter && !filter(conn, obj->def)) {
|
||||||
|
virNetworkObjUnlock(obj);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((active && virNetworkObjIsActive(obj)) ||
|
||||||
|
(!active && !virNetworkObjIsActive(obj))) {
|
||||||
|
if (VIR_STRDUP(names[got], obj->def->name) < 0) {
|
||||||
|
virNetworkObjUnlock(obj);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
got++;
|
||||||
|
}
|
||||||
|
virNetworkObjUnlock(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
return got;
|
||||||
|
|
||||||
|
error:
|
||||||
|
for (i = 0; i < got; i++)
|
||||||
|
VIR_FREE(names[i]);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
@ -451,6 +451,14 @@ typedef int (*virNetworkObjListIterator)(virNetworkObjPtr net,
|
|||||||
int virNetworkObjListForEach(virNetworkObjListPtr nets,
|
int virNetworkObjListForEach(virNetworkObjListPtr nets,
|
||||||
virNetworkObjListIterator callback,
|
virNetworkObjListIterator callback,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
|
||||||
|
int virNetworkObjListGetNames(virNetworkObjListPtr nets,
|
||||||
|
bool active,
|
||||||
|
char **names,
|
||||||
|
int nnames,
|
||||||
|
virNetworkObjListFilter filter,
|
||||||
|
virConnectPtr conn);
|
||||||
|
|
||||||
/* for testing */
|
/* for testing */
|
||||||
int
|
int
|
||||||
virNetworkDefUpdateSection(virNetworkDefPtr def,
|
virNetworkDefUpdateSection(virNetworkDefPtr def,
|
||||||
|
@ -571,6 +571,7 @@ virNetworkObjIsDuplicate;
|
|||||||
virNetworkObjListExport;
|
virNetworkObjListExport;
|
||||||
virNetworkObjListForEach;
|
virNetworkObjListForEach;
|
||||||
virNetworkObjListFree;
|
virNetworkObjListFree;
|
||||||
|
virNetworkObjListGetNames;
|
||||||
virNetworkObjLock;
|
virNetworkObjLock;
|
||||||
virNetworkObjReplacePersistentDef;
|
virNetworkObjReplacePersistentDef;
|
||||||
virNetworkObjSetDefTransient;
|
virNetworkObjSetDefTransient;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user