ui/vnc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
VNC_FEATURE_XVP was not shifted left before adding it to vs->features,
so it was never enabled.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
ui/vnc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/vnc.c b/ui/vnc.c
index 6fd86996a54..3d13757b72b 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -2205,7 +2205,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
break;
case VNC_ENCODING_XVP:
if (vs->vd->power_control) {
- vs->features |= VNC_FEATURE_XVP;
+ vs->features |= VNC_FEATURE_XVP_MASK;
send_xvp_message(vs, VNC_XVP_CODE_INIT);
}
break;
--
2.41.0
On Mon, Sep 25, 2023 at 04:50:34PM +0200, Paolo Bonzini wrote:
> VNC_FEATURE_XVP was not shifted left before adding it to vs->features,
> so it was never enabled.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
> ui/vnc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
/facepalm
I definitely tested this code, because I had to use QEMU to
validate the GTK-VNC client implementation....
>
> diff --git a/ui/vnc.c b/ui/vnc.c
> index 6fd86996a54..3d13757b72b 100644
> --- a/ui/vnc.c
> +++ b/ui/vnc.c
> @@ -2205,7 +2205,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
> break;
> case VNC_ENCODING_XVP:
> if (vs->vd->power_control) {
> - vs->features |= VNC_FEATURE_XVP;
> + vs->features |= VNC_FEATURE_XVP_MASK;
> send_xvp_message(vs, VNC_XVP_CODE_INIT);
> }
> break;
....I made the same screwup when processing messages:
case VNC_MSG_CLIENT_XVP:
if (!(vs->features & VNC_FEATURE_XVP)) {
error_report("vnc: xvp client message while disabled");
vnc_client_error(vs);
break;
}
so the bugs (kinda) cancelled out. So you'll need to fix
both places
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On 9/25/23 17:43, Daniel P. Berrangé wrote:
> On Mon, Sep 25, 2023 at 04:50:34PM +0200, Paolo Bonzini wrote:
>> VNC_FEATURE_XVP was not shifted left before adding it to vs->features,
>> so it was never enabled.
>>
>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> ---
>> ui/vnc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> /facepalm
>
> I definitely tested this code, because I had to use QEMU to
> validate the GTK-VNC client implementation....
>
>
>>
>> diff --git a/ui/vnc.c b/ui/vnc.c
>> index 6fd86996a54..3d13757b72b 100644
>> --- a/ui/vnc.c
>> +++ b/ui/vnc.c
>> @@ -2205,7 +2205,7 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings)
>> break;
>> case VNC_ENCODING_XVP:
>> if (vs->vd->power_control) {
>> - vs->features |= VNC_FEATURE_XVP;
>> + vs->features |= VNC_FEATURE_XVP_MASK;
>> send_xvp_message(vs, VNC_XVP_CODE_INIT);
>> }
>> break;
>
> ....I made the same screwup when processing messages:
>
>
> case VNC_MSG_CLIENT_XVP:
> if (!(vs->features & VNC_FEATURE_XVP)) {
> error_report("vnc: xvp client message while disabled");
> vnc_client_error(vs);
> break;
> }
>
> so the bugs (kinda) cancelled out. So you'll need to fix
> both places
Doh, I "assumed" it was a thinko coming from usage of vnc_has_feature
elsewhere. I will send v2.
Paolo
© 2016 - 2026 Red Hat, Inc.