On 06.03.2013 16:38, Peter Krempa wrote: > This patch implements the callback that is used to fill the qemu default > network card into the XML if none is specified. > > Libvirt assumes that the network card for qemu if none specified is the > "rtl8139". Record this in the XML using the new callback to avoid user > confusion. > --- > src/qemu/qemu_conf.c | 2 +- > src/qemu/qemu_domain.c | 25 +++++++++++++++++++++++++ > src/qemu/qemu_domain.h | 1 + > 3 files changed, 27 insertions(+), 1 deletion(-) > > diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c > index ef592cd..b9b7357 100644 > --- a/src/qemu/qemu_conf.c > +++ b/src/qemu/qemu_conf.c > @@ -555,7 +555,7 @@ virDomainXMLConfPtr > virQEMUDriverCreateXMLConf(void) > { > return virDomainXMLConfNew(&virQEMUDriverPrivateDataCallbacks, > - NULL, > + &virQEMUDriverDomainDefAdjustCallbacks, > &virQEMUDriverDomainXMLNamespace); > } > > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c > index 2be207f..02ef24e 100644 > --- a/src/qemu/qemu_domain.c > +++ b/src/qemu/qemu_domain.c > @@ -646,6 +646,7 @@ qemuDomainDefNamespaceFormatXML(virBufferPtr buf, > return 0; > } > > + > static const char * > qemuDomainDefNamespaceHref(void) > { > @@ -661,6 +662,30 @@ virDomainXMLNamespace virQEMUDriverDomainXMLNamespace = { > }; > > > +static int > +qemuDomainDeviceDefAdjust(virDomainDeviceDefPtr dev, > + virDomainDefPtr def ATTRIBUTE_UNUSED, > + virCapsPtr caps ATTRIBUTE_UNUSED) > +{ > + if (dev->type == VIR_DOMAIN_DEVICE_NET && > + dev->data.net->type != VIR_DOMAIN_NET_TYPE_HOSTDEV) { > + if (!dev->data.net->model && > + !(dev->data.net->model = strdup("rtl8139"))) > + goto no_memory; This is unnecessary for this time. But I can live with it. > + } > + return 0; > + > +no_memory: > + virReportOOMError(); > + return -1; > +} > + > + > +virDomainDefAdjustCallbacks virQEMUDriverDomainDefAdjustCallbacks = { > + .devices = qemuDomainDeviceDefAdjust, > +}; > + > + > static void > qemuDomainObjSaveJob(virQEMUDriverPtr driver, virDomainObjPtr obj) > { > diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h > index 3a12b45..05a9daf 100644 > --- a/src/qemu/qemu_domain.h > +++ b/src/qemu/qemu_domain.h > @@ -339,5 +339,6 @@ void qemuDomainCleanupRun(virQEMUDriverPtr driver, > > extern virDomainXMLPrivateDataCallbacks virQEMUDriverPrivateDataCallbacks; > extern virDomainXMLNamespace virQEMUDriverDomainXMLNamespace; > +extern virDomainDefAdjustCallbacks virQEMUDriverDomainDefAdjustCallbacks; > > #endif /* __QEMU_DOMAIN_H__ */ > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list