mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: mark user defined websocket as used
We need extra state variable to distinguish between autogenerated and user defined cases after auto generation is done.
This commit is contained in:
parent
b07cfd724f
commit
1215965a4c
@ -1487,6 +1487,7 @@ struct _virDomainGraphicsDef {
|
|||||||
int port;
|
int port;
|
||||||
bool portReserved;
|
bool portReserved;
|
||||||
int websocket;
|
int websocket;
|
||||||
|
bool websocketGenerated;
|
||||||
bool autoport;
|
bool autoport;
|
||||||
char *keymap;
|
char *keymap;
|
||||||
virDomainGraphicsAuthDef auth;
|
virDomainGraphicsAuthDef auth;
|
||||||
|
@ -3614,6 +3614,7 @@ qemuProcessVNCAllocatePorts(virQEMUDriverPtr driver,
|
|||||||
if (virPortAllocatorAcquire(driver->webSocketPorts, &port) < 0)
|
if (virPortAllocatorAcquire(driver->webSocketPorts, &port) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
graphics->data.vnc.websocket = port;
|
graphics->data.vnc.websocket = port;
|
||||||
|
graphics->data.vnc.websocketGenerated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -4105,6 +4106,11 @@ qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
|
|||||||
return -1;
|
return -1;
|
||||||
graphics->data.vnc.portReserved = true;
|
graphics->data.vnc.portReserved = true;
|
||||||
}
|
}
|
||||||
|
if (graphics->data.vnc.websocket > 0 &&
|
||||||
|
virPortAllocatorSetUsed(driver->remotePorts,
|
||||||
|
graphics->data.vnc.websocket,
|
||||||
|
true) < 0)
|
||||||
|
return -1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
|
case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
|
||||||
@ -6212,8 +6218,16 @@ void qemuProcessStop(virQEMUDriverPtr driver,
|
|||||||
false);
|
false);
|
||||||
graphics->data.vnc.portReserved = false;
|
graphics->data.vnc.portReserved = false;
|
||||||
}
|
}
|
||||||
virPortAllocatorRelease(driver->webSocketPorts,
|
if (graphics->data.vnc.websocketGenerated) {
|
||||||
graphics->data.vnc.websocket);
|
virPortAllocatorRelease(driver->webSocketPorts,
|
||||||
|
graphics->data.vnc.websocket);
|
||||||
|
graphics->data.vnc.websocketGenerated = false;
|
||||||
|
graphics->data.vnc.websocket = -1;
|
||||||
|
} else if (graphics->data.vnc.websocket) {
|
||||||
|
virPortAllocatorSetUsed(driver->remotePorts,
|
||||||
|
graphics->data.vnc.websocket,
|
||||||
|
false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
|
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
|
||||||
if (graphics->data.spice.autoport) {
|
if (graphics->data.spice.autoport) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user