mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
util: dnsmasq: refactor CapsRefresh
Use two variables with automatic cleanup instead of reusing one. Remove the pointless cleanup label. Signed-off-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
7624796ac8
commit
1b5510c42d
@ -666,9 +666,9 @@ dnsmasqCapsSetFromBuffer(dnsmasqCaps *caps, const char *buf)
|
||||
static int
|
||||
dnsmasqCapsRefreshInternal(dnsmasqCaps *caps, bool force)
|
||||
{
|
||||
int ret = -1;
|
||||
struct stat sb;
|
||||
virCommand *cmd = NULL;
|
||||
g_autoptr(virCommand) vercmd = NULL;
|
||||
g_autoptr(virCommand) helpcmd = NULL;
|
||||
g_autofree char *help = NULL;
|
||||
g_autofree char *version = NULL;
|
||||
g_autofree char *complete = NULL;
|
||||
@ -692,31 +692,26 @@ dnsmasqCapsRefreshInternal(dnsmasqCaps *caps, bool force)
|
||||
if (!virFileIsExecutable(caps->binaryPath)) {
|
||||
virReportSystemError(errno, _("dnsmasq binary %s is not executable"),
|
||||
caps->binaryPath);
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
cmd = virCommandNewArgList(caps->binaryPath, "--version", NULL);
|
||||
virCommandSetOutputBuffer(cmd, &version);
|
||||
virCommandAddEnvPassCommon(cmd);
|
||||
virCommandClearCaps(cmd);
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
goto cleanup;
|
||||
virCommandFree(cmd);
|
||||
vercmd = virCommandNewArgList(caps->binaryPath, "--version", NULL);
|
||||
virCommandSetOutputBuffer(vercmd, &version);
|
||||
virCommandAddEnvPassCommon(vercmd);
|
||||
virCommandClearCaps(vercmd);
|
||||
if (virCommandRun(vercmd, NULL) < 0)
|
||||
return -1;
|
||||
|
||||
cmd = virCommandNewArgList(caps->binaryPath, "--help", NULL);
|
||||
virCommandSetOutputBuffer(cmd, &help);
|
||||
virCommandAddEnvPassCommon(cmd);
|
||||
virCommandClearCaps(cmd);
|
||||
if (virCommandRun(cmd, NULL) < 0)
|
||||
goto cleanup;
|
||||
helpcmd = virCommandNewArgList(caps->binaryPath, "--help", NULL);
|
||||
virCommandSetOutputBuffer(helpcmd, &help);
|
||||
virCommandAddEnvPassCommon(helpcmd);
|
||||
virCommandClearCaps(helpcmd);
|
||||
if (virCommandRun(helpcmd, NULL) < 0)
|
||||
return -1;
|
||||
|
||||
complete = g_strdup_printf("%s\n%s", version, help);
|
||||
|
||||
ret = dnsmasqCapsSetFromBuffer(caps, complete);
|
||||
|
||||
cleanup:
|
||||
virCommandFree(cmd);
|
||||
return ret;
|
||||
return dnsmasqCapsSetFromBuffer(caps, complete);
|
||||
}
|
||||
|
||||
static dnsmasqCaps *
|
||||
|
Loading…
x
Reference in New Issue
Block a user