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