Go to file
Christophe Fergeau c44878ff8d client: don't crash when agent is missing WAN support
If you try to connect to a linux guest with WAN options, SPICE window opens up
and is blank - it then fails with vdagent timeout message.  It should give a
warning that this is only applicable for windows guest and still connect to
guest.

It all starts in RedClient::handle_init
This function checks whether we have an agent or not, because if we have an
agent, there will be some kind of handshake to check both sides capabilities
before all the spice channels are created.

When there is no agent running, the startup process goes on with
SPICE_MSGC_MAIN_ATTACH_CHANNELS

When there is a windows agent running, VD_AGENT_ANNOUNCE_CAPABILITIES and
VD_AGENT_DISPLAY_CONFIG messages are sent to the agent, and when processing the
agent answer to the VD_AGENT_DISPLAY_CONFIG message,
SPICE_MSGC_MAIN_ATTACH_CHANNELS will be sent and the startup process will go
on.

However, when there is no agent running but --color-depth was used, handle_init
won't send the SPICE_MSGC_MAIN_ATTACH_CHANNELS message but will wait for the
agent handshake to proceed to its end, which won't happen, so it will timeout
waiting for agent answers.

Similarly, the linux agent handles VD_AGENT_ANNOUNCE_CAPABILITIES messages, but
it doesn't handle VD_AGENT_DISPLAY_CONFIG messages, so we'll never reach the
point where a SPICE_MSGC_MAIN_ATTACH_CHANNELS will be sent.

This commit fixes this in 2 places:
- unconditionnally send SPICE_MSGC_ATTACH_CHANNELS when no agent is running in
handle_init
- send SPICE_MSGC_MAIN_ATTACH_CHANNELS in
RedClient::on_agent_announce_capabilities if the agent doesn't have the
VD_AGENT_CAP_DISPLAY_CONFIG capability

This fixes RH bug #712938
2011-07-21 15:09:29 +03:00
client client: don't crash when agent is missing WAN support 2011-07-21 15:09:29 +03:00
common common: spice_memdup could accept NULL 2011-07-21 15:09:28 +03:00
python_modules add check for pyparsing 2011-07-21 15:09:28 +03:00
server server: fix access to a released drawable. RHBZ #713474 2011-07-21 15:09:28 +03:00
tools Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
uncrustify_cfg fresh start 2009-10-14 15:06:41 +02:00
.gitignore gitignore: add generated_*, vim temps, pyc 2010-11-08 16:06:55 +02:00
AUTHORS fresh start 2009-10-14 15:06:41 +02:00
autogen.sh autogen: exit upon errors (subdir config) 2010-03-24 14:03:51 +01:00
ChangeLog fresh start 2009-10-14 15:06:41 +02:00
configure.ac add check for pyparsing 2011-07-21 15:09:28 +03:00
COPYING Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
GITVERSION Add --enable-werror and make it the default only for git builds 2010-07-09 12:14:32 +02:00
Makefile.am Make distcheck work 2010-07-08 20:20:35 +02:00
NEWS Release 0.8.1 2011-04-20 10:51:32 +02:00
README Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
spice1.proto spice-client migration: fix minor for old migration support. 2011-01-27 18:31:56 +02:00
spice_codegen.py Make pointers 32bit in new protocol format 2010-06-23 16:33:07 +02:00
spice-server.pc.in Rename .so spice-server.so 2010-03-24 17:13:42 +01:00
spice.proto spice.proto: Fill.rop_descriptor type s/uint16/ropd (10x atiti) 2011-07-21 15:09:27 +03:00

Copyright 2009 Red Hat, Inc. and/or its affiliates.

This program and libraries is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see <http://www.gnu.org/licenses/>.