On Mon, May 28, 2018 at 12:28:24AM +0200, Fabiano Fidêncio wrote:
xenParseVfi() does a lot of stuff and, in order to make things cleaner, let's split it in two new functions: - xenParseVfi(): it's a new function that keeps the old name. It's responsible for the whole per-Vfi logic from the old xenParseVfi(); - xenParseVfiList(): it's basically the old xenParsePCI(), but now it just iterates over the list of Vfis, calling xenParsePCI() per each Vfi.
s/Vfi/Vif/g
This patch is basically preparing the ground for the future when typesafe virConf acessors will be used. Signed-off-by: Fabiano Fidêncio <fabiano@xxxxxxxxxxxx> --- src/xenconfig/xen_common.c | 363 ++++++++++++++++++++++++--------------------- 1 file changed, 192 insertions(+), 171 deletions(-) diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c index fc7b0683b8..45fecbced8 100644 --- a/src/xenconfig/xen_common.c +++ b/src/xenconfig/xen_common.c @@ -846,202 +846,223 @@ xenParseCharDev(virConfPtr conf, virDomainDefPtr def, const char *nativeFormat) } -static int -xenParseVif(virConfPtr conf, virDomainDefPtr def, const char *vif_typename) +static virDomainNetDefPtr +xenParseVif(char *entry, const char *vif_typename) { - char *script = NULL; virDomainNetDefPtr net = NULL; - virConfValuePtr list = virConfGetValue(conf, "vif"); + char *script = NULL; + char model[10]; + char type[10]; + char ip[128]; + char mac[18]; + char bridge[50]; + char vifname[50]; + char rate[50]; + char *key; + int rc = 0;
The usage of rc adds a lot of non-whitespace changes. Instead, you can declare another NetDefPtr: virDomainNetDefPtr ret = NULL;
+ + bridge[0] = '\0'; + mac[0] = '\0'; + ip[0] = '\0'; + model[0] = '\0'; + type[0] = '\0';
[...]
- goto cleanup; - if (VIR_ALLOC(bandwidth->out) < 0) { - VIR_FREE(bandwidth); - goto cleanup; - }
do: VIR_STEAL_PTR(ret, net);
+ cleanup: + if (rc < 0) + virDomainNetDefFree(net);
And make this free unconditional. Jano
+ VIR_FREE(script); + return net; +}
Attachment:
signature.asc
Description: Digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list