On 05/19/2013 11:52 AM, Michal Privoznik wrote:
Currently, the openvzDomainSetNetwork function constructs an
array of strings representing a command line for VZCTL binary.
This is a overkill since our virCommand APIs can cover all the
functionality.
---
src/openvz/openvz_driver.c | 56 ++++++++++------------------------------------
1 file changed, 12 insertions(+), 44 deletions(-)
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 129e328..db41d72 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
snip snip snip
@@ -922,37 +892,35 @@ openvzDomainSetNetwork(virConnectPtr conn,
const char *vpsid,
if (!(opt = virBufferContentAndReset(&buf)))
goto no_memory;
- ADD_ARG_LIT(opt) ;
+ /* --netif_add ifname[,mac,host_ifname,host_mac] */
+ virCommandAddArgList(cmd, "--netif_add", opt, NULL);
VIR_FREE(opt);
} else if (net->type == VIR_DOMAIN_NET_TYPE_ETHERNET &&
net->data.ethernet.ipaddr != NULL) {
/* --ipadd ip */
- ADD_ARG_LIT("--ipadd") ;
- ADD_ARG_LIT(net->data.ethernet.ipaddr) ;
+ virCommandAddArgList(cmd, "--ipadd", net->data.ethernet.ipaddr,
NULL);
}
/* TODO: processing NAT and physical device */
- if (prog[0] != NULL) {
- ADD_ARG_LIT("--save");
- if (virRun(prog, NULL) < 0) {
+ if (cmd) {
cmd may be NULL here on OOM too.
+ virCommandAddArg(cmd, "--save");
+ if (virCommandRun(cmd, NULL) < 0) {
rc = -1;
goto exit;
Redundant goto (unless you initialize rc to -1 and use it to skip over
"rc = 0").
}
}
exit:
- cmdExecFree(prog);
+ virCommandFree(cmd);
return rc;
no_memory:
VIR_FREE(opt);
opt is NULL here.
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Could not put argument to %s"), VZCTL);
I think a standard "out of memory" message would be more fitting here.
You could also rename 'exit' to 'cleanup' and get rid of the
'no_memory' label
completely.
Jan