qemuMonitorOpenUnix: Refactor cleanup

Use VIR_AUTOFREE for the temp socket so that the 'error:' label can be
removed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
This commit is contained in:
Peter Krempa 2022-02-03 13:51:34 +01:00
parent ee51ab86c2
commit 0e01846dbf

View File

@ -233,7 +233,7 @@ qemuMonitorOpenUnix(const char *monitor,
unsigned long long timeout) unsigned long long timeout)
{ {
struct sockaddr_un addr; struct sockaddr_un addr;
int monfd; VIR_AUTOCLOSE monfd = -1;
virTimeBackOffVar timebackoff; virTimeBackOffVar timebackoff;
int ret = -1; int ret = -1;
@ -248,12 +248,12 @@ qemuMonitorOpenUnix(const char *monitor,
if (virStrcpyStatic(addr.sun_path, monitor) < 0) { if (virStrcpyStatic(addr.sun_path, monitor) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Monitor path %s too big for destination"), monitor); _("Monitor path %s too big for destination"), monitor);
goto error; return -1;
} }
if (retry) { if (retry) {
if (virTimeBackOffStart(&timebackoff, 1, timeout * 1000) < 0) if (virTimeBackOffStart(&timebackoff, 1, timeout * 1000) < 0)
goto error; return -1;
while (virTimeBackOffWait(&timebackoff)) { while (virTimeBackOffWait(&timebackoff)) {
ret = connect(monfd, (struct sockaddr *)&addr, sizeof(addr)); ret = connect(monfd, (struct sockaddr *)&addr, sizeof(addr));
@ -269,28 +269,27 @@ qemuMonitorOpenUnix(const char *monitor,
virReportSystemError(errno, "%s", virReportSystemError(errno, "%s",
_("failed to connect to monitor socket")); _("failed to connect to monitor socket"));
goto error; return -1;
} }
if (ret != 0) { if (ret != 0) {
virReportSystemError(errno, "%s", virReportSystemError(errno, "%s",
_("monitor socket did not show up")); _("monitor socket did not show up"));
goto error; return -1;
} }
} else { } else {
ret = connect(monfd, (struct sockaddr *) &addr, sizeof(addr)); ret = connect(monfd, (struct sockaddr *) &addr, sizeof(addr));
if (ret < 0) { if (ret < 0) {
virReportSystemError(errno, "%s", virReportSystemError(errno, "%s",
_("failed to connect to monitor socket")); _("failed to connect to monitor socket"));
goto error; return -1;
} }
} }
return monfd; ret = monfd;
monfd = -1;
error: return ret;
VIR_FORCE_CLOSE(monfd);
return -1;
} }