[libvirt] [PATCH] Add interface object list manipulation functions.

Daniel P. Berrange berrange at redhat.com
Mon Jul 20 18:48:38 UTC 2009


On Mon, Jul 20, 2009 at 01:42:05PM -0400, Laine Stump wrote:
> These functions are useful for an implementation of an interface driver
> that doesn't use a library that manages its own list of interfaces
> (as netcf does), for example the test interface driver.


> +
> +int virInterfaceFindByMACString(const virInterfaceObjListPtr interfaces,
> +                                const char *mac,
> +                                virInterfaceObjPtr *matches, int maxmatches)
> +{
> +    unsigned int i, matchct = 0;
> +
> +    for (i = 0 ; i < interfaces->count ; i++) {
> +        int lock_for_caller = 0;
> +        virInterfaceObjLock(interfaces->objs[i]);
> +        if (STREQ(interfaces->objs[i]->def->mac, mac)) {
> +            if (matchct < maxmatches) {
> +                matches[matchct] = interfaces->objs[i];
> +                lock_for_caller = 1;
> +            }
> +        matchct++;
> +        }
> +        if (!lock_for_caller) {
> +            /* it is the caller's responsibility to unlock *all* matches */
> +            virInterfaceObjUnlock(interfaces->objs[i]);
> +        }
> +    }

I think it'd be a little nicer to just use 'continue' there
instead of introducing the 'lock_for_caller = 1' assignment.
Also minor indentation typo.


ACK to this anyway

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list