Go to file
Alon Levy 448ed75bd6 server: Add RedClient
That means RedClient tracks a ring of channels. Right now there will be only
a single client because of the disconnection mechanism - whenever a new
client comes we disconnect all existing clients. But this patch adds already
a ring of clients to reds.c (stored in RedServer).

There is a known problem handling many connections and disconnections at the
same time, trigerrable easily by the following script:

export NEW_DISPLAY=:3.0

Xephyr $NEW_DISPLAY -noreset &
for ((i = 0 ; i < 5; ++i)); do
    for ((j = 0 ; j < 10; ++j)); do
        DISPLAY=$NEW_DISPLAY c_win7x86_qxl_tests &
    done
    sleep 2;
done

I fixed a few of the problems resulting from this in the same patch. This
required already introducing a few other changes:
 * make sure all removal of channels happens in the main thread, for that
 two additional dispatcher calls are added to remove a specific channel
 client (RED_WORKER_MESSAGE_CURSOR_DISCONNECT_CLIENT and
 RED_WORKER_MESSAGE_DISPLAY_DISCONNECT_CLIENT).
 * change some asserts in input channel.
 * make main channel disconnect not recursive
 * introduce disconnect call back to red_channel_create_parser

The remaining abort is from a double free in the main channel, still can't
find it (doesn't happen when running under valgrind - probably due to the
slowness resulting from that), but is easy to see when running under gdb.
2011-08-23 17:56:44 +03:00
client use Xkb to get keyboard modifier mask 2011-08-17 10:42:19 +02:00
common common: introduce red_printf_debug 2011-08-23 17:01:14 +03:00
python_modules add check for pyparsing 2011-06-22 16:24:32 +02:00
server server: Add RedClient 2011-08-23 17:56:44 +03:00
tests tests/migrate.py: add --vdagent 2011-08-23 17:01:14 +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 set version number to 0.9.0 2011-07-22 10:24:30 +02: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 add SASL and smartcard to distcheck flags 2011-07-22 10:24:30 +02:00
NEWS Release 0.9.0 2011-07-23 18:42:31 +03: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:26:09 +02:00
spice_codegen.py don't #include config.h in generated header files 2011-06-22 16:29:52 +02:00
spice-server.pc.in Rename .so spice-server.so 2010-03-24 17:13:42 +01:00
spice.proto spice.proto: add comment for origin of STYLED and START_WITH_GAP 2011-08-23 17:01:14 +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/>.