[Spice-devel] [PATCH spice-server] red_worker: Do not sent empty monitor config message

Pavel Grunt pgrunt at redhat.com
Thu Oct 1 08:19:23 PDT 2015


Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=1061942
---
 server/red_worker.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/server/red_worker.c b/server/red_worker.c
index e2feb23..a106923 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -9144,7 +9144,6 @@ static void red_marshall_monitors_config(RedChannelClient *rcc, SpiceMarshaller
     SpiceMsgDisplayMonitorsConfig *msg = spice_malloc0(sizeof(*msg) + heads_size);
     int count = 0; // ignore monitors_config->count, it may contain zero width monitors, remove them now
 
-    red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_MONITORS_CONFIG, NULL);
     for (i = 0 ; i < monitors_config->count; ++i) {
         if (monitors_config->heads[i].width == 0 || monitors_config->heads[i].height == 0) {
             continue;
@@ -9157,9 +9156,12 @@ static void red_marshall_monitors_config(RedChannelClient *rcc, SpiceMarshaller
         msg->heads[count].y = monitors_config->heads[i].y;
         count++;
     }
-    msg->count = count;
-    msg->max_allowed = monitors_config->max_allowed;
-    spice_marshall_msg_display_monitors_config(base_marshaller, msg);
+    if (count > 0) {
+        red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_MONITORS_CONFIG, NULL);
+        msg->count = count;
+        msg->max_allowed = monitors_config->max_allowed;
+        spice_marshall_msg_display_monitors_config(base_marshaller, msg);
+    }
     free(msg);
 }
 
-- 
2.5.0



More information about the Spice-devel mailing list