On 07/20/2012 10:25 AM, Osier Yang wrote: > src/network/bridge_driver.c: Implement listAllNetworks. > --- > src/network/bridge_driver.c | 18 ++++++++++++++++++ > 1 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c > index bb2a765..6a3ed3f 100644 > --- a/src/network/bridge_driver.c > +++ b/src/network/bridge_driver.c > @@ -47,6 +47,7 @@ > #include "datatypes.h" > #include "bridge_driver.h" > #include "network_conf.h" > +#include "virobjectlist.h" > #include "driver.h" > #include "buf.h" > #include "virpidfile.h" > @@ -2201,6 +2202,22 @@ static int networkListDefinedNetworks(virConnectPtr conn, char **const names, in > return -1; > } > > +static int > +networkListAllNetworks(virConnectPtr conn, > + virNetworkPtr **nets, > + unsigned int flags) > +{ > + struct network_driver *driver = conn->networkPrivateData; > + int ret = -1; > + > + virCheckFlags(VIR_CONNECT_LIST_NETWORKS_FILTERS_ALL, -1); If you return with an error here, nets will be unset. Even though a *sane* caller would check the return value prior to dereferencing anything in nets, it would still be a good idea to to "*nets = NULL" before anything else. Otherwise, ACK. > + > + networkDriverLock(driver); > + ret = virNetworkList(conn, driver->networks, nets, flags); > + networkDriverUnlock(driver); > + > + return ret; > +} > > static int networkIsActive(virNetworkPtr net) > { > @@ -2689,6 +2706,7 @@ static virNetworkDriver networkDriver = { > .listNetworks = networkListNetworks, /* 0.2.0 */ > .numOfDefinedNetworks = networkNumDefinedNetworks, /* 0.2.0 */ > .listDefinedNetworks = networkListDefinedNetworks, /* 0.2.0 */ > + .listAllNetworks = networkListAllNetworks, /* 0.9.14 */ > .networkLookupByUUID = networkLookupByUUID, /* 0.2.0 */ > .networkLookupByName = networkLookupByName, /* 0.2.0 */ > .networkCreateXML = networkCreate, /* 0.2.0 */ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list