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:
parent
d72ed16ba7
commit
6acda58495
@ -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
|
int
|
||||||
qemuMonitorAddNetdev(qemuMonitorPtr mon,
|
qemuMonitorAddNetdev(qemuMonitorPtr mon,
|
||||||
const char *netdevstr,
|
const char *netdevstr,
|
||||||
|
@ -874,14 +874,12 @@ int qemuMonitorGraphicsRelocate(qemuMonitorPtr mon,
|
|||||||
int qemuMonitorSendFileHandle(qemuMonitorPtr mon,
|
int qemuMonitorSendFileHandle(qemuMonitorPtr mon,
|
||||||
const char *fdname,
|
const char *fdname,
|
||||||
int fd);
|
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.
|
* error if no error was set before.
|
||||||
*/
|
*/
|
||||||
int qemuMonitorCloseFileHandle(qemuMonitorPtr mon,
|
int qemuMonitorCloseFileHandle(qemuMonitorPtr mon,
|
||||||
const char *fdname);
|
const char *fdname);
|
||||||
int qemuMonitorRemoveFd(qemuMonitorPtr mon, int fdset, int fd);
|
|
||||||
|
|
||||||
int qemuMonitorAddNetdev(qemuMonitorPtr mon,
|
int qemuMonitorAddNetdev(qemuMonitorPtr mon,
|
||||||
const char *netdevstr,
|
const char *netdevstr,
|
||||||
|
@ -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,
|
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
|
||||||
const char *netdevstr)
|
const char *netdevstr)
|
||||||
{
|
{
|
||||||
|
@ -203,12 +203,9 @@ int qemuMonitorJSONRemovePCIDevice(qemuMonitorPtr mon,
|
|||||||
int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
|
int qemuMonitorJSONSendFileHandle(qemuMonitorPtr mon,
|
||||||
const char *fdname,
|
const char *fdname,
|
||||||
int fd);
|
int fd);
|
||||||
int qemuMonitorJSONAddFd(qemuMonitorPtr mon, int fdset, int fd,
|
|
||||||
const char *name);
|
|
||||||
|
|
||||||
int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
|
int qemuMonitorJSONCloseFileHandle(qemuMonitorPtr mon,
|
||||||
const char *fdname);
|
const char *fdname);
|
||||||
int qemuMonitorJSONRemoveFd(qemuMonitorPtr mon, int fdset, int fd);
|
|
||||||
|
|
||||||
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
|
int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
|
||||||
const char *netdevstr);
|
const char *netdevstr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user