summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
authorArnon Gilboa <agilboa@redhat.com>2010-12-07 12:44:34 +0200
committerArnon Gilboa <agilboa@redhat.com>2010-12-07 14:34:22 +0200
commit8a7e6fef27a508c3aa22ddb0d79094cfa7735cb7 (patch)
tree5c5d0153c3bd7ab3ed9552d078721f7cdecd706e /server/reds.c
parent9dfeeaefbe10163863192703ca35ac65e02bc0db (diff)
downloadspice-8a7e6fef27a508c3aa22ddb0d79094cfa7735cb7.tar.gz
spice-8a7e6fef27a508c3aa22ddb0d79094cfa7735cb7.tar.xz
spice-8a7e6fef27a508c3aa22ddb0d79094cfa7735cb7.zip
spicec: do not call connect_secure when connect_unsecure fails due to protocol version mismatch (v2)
If connect_unsecure failed due to protocol version mismatch, don't try to connect_secure with the same version, but retry (connect_secure or connect_unsecure) with older version. catch (...) is handled by caller at RedChannel::run(). This solves the following bug: when "new" Spice client (protocol version 2) with given secure_port connects to "old" server which is not using the same secure_port (or not using a secure_port at all), the client exits immediately. In this scenario, the client first tries to use Spice protocol version 2 to connect the unsecure port, and altough this fails due to version mismatch, it tries to connect to the secure port with the same protocol version 2, which is a wrong behavior, fails due to socket error 10061 (WSAECONNREFUSED - Connection refused) and handled mistakenly by immediate exit, instead of retrying with protocol version 1.
Diffstat (limited to 'server/reds.c')
0 files changed, 0 insertions, 0 deletions