[libvirt] [PATCH 2/4] Allow empty bridges in interface xml.

Daniel P. Berrange berrange at redhat.com
Thu Jan 14 12:44:20 UTC 2010


On Fri, Jan 01, 2010 at 08:40:24PM -0500, Laine Stump wrote:
> ---
>  src/conf/interface_conf.c |   32 +++++++++++++++++---------------
>  1 files changed, 17 insertions(+), 15 deletions(-)
> 
> diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
> index ca82208..d7821e7 100644
> --- a/src/conf/interface_conf.c
> +++ b/src/conf/interface_conf.c
> @@ -557,28 +557,30 @@ virInterfaceDefParseBridge(virConnectPtr conn, virInterfaceDefPtr def,
>  
>      bridge = ctxt->node;
>      nbItf = virXPathNodeSet(conn, "./interface", ctxt, &interfaces);
> -    if (nbItf <= 0) {
> +    if (nbItf < 0) {
>          virInterfaceReportError(conn, VIR_ERR_XML_ERROR,
> -                                "%s", _("bridge has no interfaces"));
> +                                "%s", _("bridge interfaces"));
>          ret = -1;
>          goto error;
>      }
> -    if (VIR_ALLOC_N(def->data.bridge.itf, nbItf) < 0) {
> -        virReportOOMError(conn);
> -        ret = -1;
> -        goto error;
> -    }
> -    def->data.bridge.nbItf = nbItf;
> -
> -    for (i = 0; i < nbItf;i++) {
> -        ctxt->node = interfaces[i];
> -        itf = virInterfaceDefParseBareInterface(conn, ctxt, 0);
> -        if (itf == NULL) {
> +    if (nbItf > 0) {
> +        if (VIR_ALLOC_N(def->data.bridge.itf, nbItf) < 0) {
> +            virReportOOMError(conn);
>              ret = -1;
> -            def->data.bridge.nbItf = i;
>              goto error;
>          }
> -        def->data.bridge.itf[i] = itf;
> +        def->data.bridge.nbItf = nbItf;
> +
> +        for (i = 0; i < nbItf;i++) {
> +            ctxt->node = interfaces[i];
> +            itf = virInterfaceDefParseBareInterface(conn, ctxt, 0);
> +            if (itf == NULL) {
> +                ret = -1;
> +                def->data.bridge.nbItf = i;
> +                goto error;
> +            }
> +            def->data.bridge.itf[i] = itf;
> +        }
>      }
>  
>  error:

ACK

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