
On 20.05.2013 17:54, Eric Blake wrote:
On 05/20/2013 07:47 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. Moreover, the function is not following our structure where return value is set to -1 initially, and after all operations succeeded then it is set to zero. --- src/openvz/openvz_driver.c | 80 +++++++++++----------------------------------- 1 file changed, 19 insertions(+), 61 deletions(-) @@ -919,40 +889,28 @@ openvzDomainSetNetwork(virConnectPtr conn, const char *vpsid, } }
- if (!(opt = virBufferContentAndReset(&buf))) - goto no_memory; + if (!(opt = virBufferContentAndReset(&buf))) { + virReportOOMError(); + goto cleanup; + }
You can skip the call to virBufferContentAndReset, if you instead do:
- ADD_ARG_LIT(opt) ; + /* --netif_add ifname[,mac,host_ifname,host_mac] */ + virCommandAddArgList(cmd, "--netif_add", opt, NULL);
virCommandAddArg(cmd, "--netif_add"); virCommandAddArgBuffer(cmd, opt);
Even nicer! I went with this version and pushed. Thank you both guys. Michal