1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu: monitor: Remove legacy monitor commands for FD manipulation

The handlers for 'add-fd' and 'remove-fd' are unused now and riddled
with legacy cruft. Purge them.

Last use was removed in f2019083de3430101b94d4991a38fd947a08fd32.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
Peter Krempa 2019-09-19 17:01:55 +02:00
parent d72ed16ba7
commit 6acda58495
4 changed files with 1 additions and 134 deletions

View File

@ -2789,59 +2789,6 @@ qemuMonitorCloseFileHandle(qemuMonitorPtr mon,
}
/* Add the open file descriptor FD into the non-negative set FDSET.
* If NAME is present, it will be passed along for logging purposes.
* Returns the counterpart fd that qemu received, or -1 on error. */
int
qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name)
{
VIR_DEBUG("fdset=%d, fd=%d, name=%s", fdset, fd, NULLSTR(name));
QEMU_CHECK_MONITOR(mon);
if (fd < 0 || fdset < 0) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("fd and fdset must be valid"));
return -1;
}
if (!mon->hasSendFD) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
_("qemu is not using a unix socket monitor, "
"cannot send fd %s"), NULLSTR(name));
return -1;
}
return qemuMonitorJSONAddFd(mon, fdset, fd, name);
}
/* Remove one of qemu's fds from the given FDSET, or if FD is
* negative, remove the entire set. Preserve any previous error on
* entry. Returns 0 on success, -1 on error. */
int
qemuMonitorRemoveFd(qemuMonitorPtr mon, int fdset, int fd)
{
int ret = -1;
virErrorPtr error;
VIR_DEBUG("fdset=%d, fd=%d", fdset, fd);
error = virSaveLastError();
QEMU_CHECK_MONITOR_GOTO(mon, cleanup);
ret = qemuMonitorJSONRemoveFd(mon, fdset, fd);
cleanup:
if (error) {
virSetError(error);
virFreeError(error);
}
return ret;
}
int
qemuMonitorAddNetdev(qemuMonitorPtr mon,
const char *netdevstr,

View File

@ -874,14 +874,12 @@ int qemuMonitorGraphicsRelocate(qemuMonitorPtr mon,
int qemuMonitorSendFileHandle(qemuMonitorPtr mon,
const char *fdname,
int fd);
int qemuMonitorAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name);
/* These two functions preserve previous error and only set their own
/* This function preserves previous error and only set their own
* error if no error was set before.
*/
int qemuMonitorCloseFileHandle(qemuMonitorPtr mon,
const char *fdname);
int qemuMonitorRemoveFd(qemuMonitorPtr mon, int fdset, int fd);
int qemuMonitorAddNetdev(qemuMonitorPtr mon,
const char *netdevstr,

View File

@ -3850,81 +3850,6 @@ int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
}
int
qemuMonitorJSONAddFd(qemuMonitorPtr mon, int fdset, int fd, const char *name)
{
int ret;
virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("add-fd",
"i:fdset-id", fdset,
"S:opaque", name,
NULL);
virJSONValuePtr reply = NULL;
if (!cmd)
return -1;
ret = qemuMonitorJSONCommandWithFd(mon, cmd, fd, &reply);
if (ret == 0) {
/* qemu 1.2 lacks the functionality we need; but we have to
* probe to find that out. Don't log errors in that case. */
if (STREQ_NULLABLE(name, "/dev/null") &&
qemuMonitorJSONHasError(reply, "GenericError")) {
ret = -2;
goto cleanup;
}
ret = qemuMonitorJSONCheckReply(cmd, reply, VIR_JSON_TYPE_OBJECT);
}
if (ret == 0) {
virJSONValuePtr data = virJSONValueObjectGetObject(reply, "return");
if (virJSONValueObjectGetNumberInt(data, "fd", &ret) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("incomplete return information"));
goto error;
}
}
cleanup:
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
error:
/* Best effort cleanup - kill the entire fdset (even if it has
* earlier successful fd registrations), since we don't know which
* fd qemu got, and don't want to leave the fd leaked in qemu. */
qemuMonitorJSONRemoveFd(mon, fdset, -1);
ret = -1;
goto cleanup;
}
int
qemuMonitorJSONRemoveFd(qemuMonitorPtr mon, int fdset, int fd)
{
int ret = -1;
virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("remove-fd",
"i:fdset-id", fdset,
fd < 0 ? NULL : "i:fd",
fd, NULL);
virJSONValuePtr reply = NULL;
if (!cmd)
return -1;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
goto cleanup;
if (qemuMonitorJSONCheckError(cmd, reply) < 0)
goto cleanup;
ret = 0;
cleanup:
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
}
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
const char *netdevstr)
{

View File

@ -203,12 +203,9 @@ int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
const char *fdname,
int fd);
int qemuMonitorJSONAddFd(qemuMonitorPtr mon, int fdset, int fd,
const char *name);
int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
const char *fdname);
int qemuMonitorJSONRemoveFd(qemuMonitorPtr mon, int fdset, int fd);
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
const char *netdevstr);