MC(Monitor Config)协商用于spice客户端和服务器端的屏幕尺寸信息,客户端原有的机制是在dispaly channel建立之后,收到的onSettingchange消息后,发送MC消息给服务器端,但是在现有机制下,需要服务器端需要提前得到客户端尺寸,在启动显示驱动时完成适度匹配,修改的背景如此。
分析了一下函数流程如下
spice_main_send_monitor_config -> agent_msg_queue-many -> spice_msg_out_new (...调用spice消息发送函数,发送包含MC的Agent_DATA消息)
^
tiimer_set_dispaly <- update_display_timer <- main_handler_agent_connect 从采集到的log看,服务器未发此消息,此类消息处理函数未调用
<- main_handler_agent_connected_token 从采集log看,服务器未发此消息
<-spice_main_update_display android_io_RequestResolution 中调用