mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 05:17:59 +03:00
qemu: cleanup code to release VNC port
Code to release VNC port looks repetitive. The reason is there were originally 2 functions to release ports - for auto and non-auto cases. Also portReserved flag is not cleared on stop in case of reconnect with auto port (flags is set on reconnect in qemuProcessGraphicsReservePorts call). Yeah config is freed in the end of stopping domain but still. Let's use this flag whenever we reserve port (auto or not). This makes things clearer. Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@openvz.org> Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
8b60342f76
commit
658ce2c3d4
@ -3994,6 +3994,7 @@ qemuProcessVNCAllocatePorts(virQEMUDriver *driver,
|
||||
if (virPortAllocatorAcquire(driver->remotePorts, &port) < 0)
|
||||
return -1;
|
||||
graphics->data.vnc.port = port;
|
||||
graphics->data.vnc.portReserved = true;
|
||||
}
|
||||
|
||||
if (graphics->data.vnc.websocket == -1) {
|
||||
@ -8261,9 +8262,7 @@ void qemuProcessStop(virQEMUDriver *driver,
|
||||
for (i = 0; i < vm->def->ngraphics; ++i) {
|
||||
virDomainGraphicsDef *graphics = vm->def->graphics[i];
|
||||
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
|
||||
if (graphics->data.vnc.autoport) {
|
||||
virPortAllocatorRelease(graphics->data.vnc.port);
|
||||
} else if (graphics->data.vnc.portReserved) {
|
||||
if (graphics->data.vnc.portReserved) {
|
||||
virPortAllocatorRelease(graphics->data.vnc.port);
|
||||
graphics->data.vnc.portReserved = false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user