[libvirt] [PATCH 2/3] qemu: mark user defined websocket as used
Nikolay Shirokovskiy
nshirokovskiy at virtuozzo.com
Fri Dec 9 13:15:01 UTC 2016
On 09.12.2016 15:57, John Ferlan wrote:
>
>
> On 12/09/2016 01:51 AM, Nikolay Shirokovskiy wrote:
>>
>>
>> On 08.12.2016 23:07, John Ferlan wrote:
>>>
>>>
>>> On 11/22/2016 06:09 AM, Nikolay Shirokovskiy wrote:
>>>> We need extra state variable to distinguish between autogenerated
>>>> and user defined cases after auto generation is done.
>>>> ---
>>>> src/conf/domain_conf.h | 1 +
>>>> src/qemu/qemu_process.c | 19 +++++++++++++++++--
>>>> 2 files changed, 18 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
>>>> index 541b600..9bc4522 100644
>>>> --- a/src/conf/domain_conf.h
>>>> +++ b/src/conf/domain_conf.h
>>>> @@ -1468,6 +1468,7 @@ struct _virDomainGraphicsDef {
>>>> int port;
>>>> bool portReserved;
>>>> int websocket;
>>>> + bool websocketGenerated;
>>>> bool autoport;
>>>> char *keymap;
>>>> virDomainGraphicsAuthDef auth;
>>>> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
>>>> index 6aaaa10..1799f33 100644
>>>> --- a/src/qemu/qemu_process.c
>>>> +++ b/src/qemu/qemu_process.c
>>>> @@ -3574,6 +3574,7 @@ qemuProcessVNCAllocatePorts(virQEMUDriverPtr driver,
>>>> if (virPortAllocatorAcquire(driver->webSocketPorts, &port) < 0)
>>>> return -1;
>>>> graphics->data.vnc.websocket = port;
>>>> + graphics->data.vnc.websocketGenerated = true;
>>>> }
>>>>
>>>> return 0;
>>>> @@ -4065,6 +4066,12 @@ qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
>>>> return -1;
>>>> graphics->data.vnc.portReserved = true;
>>>> }
>>>> + if (graphics->data.vnc.websocket != -1 && /* auto websocket */
>>>> + graphics->data.vnc.websocket && /* no websocket */
>>>> + virPortAllocatorSetUsed(driver->remotePorts,
>>>> + graphics->data.vnc.websocket,
>>>> + true) < 0)
>>>> + return -1;
>>>> break;
>>>>
>>>> case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
>>>> @@ -6189,8 +6196,16 @@ void qemuProcessStop(virQEMUDriverPtr driver,
>>>> false);
>>>> graphics->data.vnc.portReserved = false;
>>>> }
>>>> - virPortAllocatorRelease(driver->webSocketPorts,
>>>> - graphics->data.vnc.websocket);
>>>> + if (graphics->data.vnc.websocketGenerated) {
>>>> + virPortAllocatorRelease(driver->webSocketPorts,
>>>> + graphics->data.vnc.websocket);
>>>> + graphics->data.vnc.websocketGenerated = false;
>>>> + graphics->data.vnc.websocket = -1;
>>>
>>> One more question... Should this be 0 instead of -1?
>>>
>>> We set to -1 during Reserve and set the Generated flag indicating that
>>> the user didn't set to -1, but we did.
>>
>> Not quite. -1 is valid user input. Reserve does not change websocket value.
>>
>
> Oh right - I think I was crossing thoughts and thinking setting to -1
> was internally done...
>
> The series is now pushed
>
> Tks,
>
> John
Thankx!
More information about the libvir-list
mailing list