spice/server
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
..
tests server/tests/test_playback: correctly use spice_server_playback_get_buffer 2011-08-23 17:01:14 +03:00
.gitignore gitignore: add generated_*, vim temps, pyc 2010-11-08 16:06:55 +02:00
agent-msg-filter.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
agent-msg-filter.h server: add discard all option to agent message filter 2011-04-04 11:30:30 +02:00
char_device.h server: Add a usbredir channel 2011-08-10 22:42:40 +02:00
demarshallers.h Add destructor for demarshalled messages 2010-06-22 10:53:24 +02:00
glz_encode_match_tmpl.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encode_tmpl.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder_config.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
glz_encoder_dictionary_protected.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
glz_encoder_dictionary.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder_dictionary.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
glz_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
inputs_channel.c server: Add RedClient 2011-08-23 17:56:44 +03:00
inputs_channel.h server/inputs_channel: remove unused declaration in inputs_channel.h 2010-12-07 21:32:34 +02:00
jpeg_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
jpeg_encoder.h JPEG support: introducing jpeg encoding for spice bitmaps 2010-06-09 11:40:25 +02:00
main_channel.c server: Add RedClient 2011-08-23 17:56:44 +03:00
main_channel.h server: Add RedClient 2011-08-23 17:56:44 +03:00
Makefile.am server: Add a usbredir channel 2011-08-10 22:42:40 +02:00
mjpeg_encoder.c mjpeg: add missing SPICE_BITMAP_FMT_RGBA 2011-08-02 11:13:49 +02:00
mjpeg_encoder.h mjpeg_encoder: remove unused functions 2011-07-22 16:53:56 +02:00
red_bitmap_utils.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
red_channel.c server: Add RedClient 2011-08-23 17:56:44 +03:00
red_channel.h server: Add RedClient 2011-08-23 17:56:44 +03:00
red_client_cache.h server: move pipe from RedChannel to RedChannelClient 2011-08-23 17:44:54 +03:00
red_client_shared_cache.h server: move pipe from RedChannel to RedChannelClient 2011-08-23 17:44:54 +03:00
red_common.h server/common: introduce common/spice_common.h 2011-03-02 17:27:51 +02:00
red_dispatcher.c server: Add RedClient 2011-08-23 17:56:44 +03:00
red_dispatcher.h server: Add RedClient 2011-08-23 17:56:44 +03:00
red_memslots.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
red_memslots.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
red_parse_qxl.c server: add async io support 2011-07-20 16:00:19 +03:00
red_parse_qxl.h server: add async io support 2011-07-20 16:00:19 +03:00
red_tunnel_worker.c server: Add RedClient 2011-08-23 17:56:44 +03:00
red_tunnel_worker.h server: Unset executable bit of red_tunnel_worker.h 2011-05-05 20:04:49 +03:00
red_worker.c server: Add RedClient 2011-08-23 17:56:44 +03:00
red_worker.h server: Add RedClient 2011-08-23 17:56:44 +03:00
reds_gl_canvas.c common,server: use ASSERT from spice_common.h 2011-05-03 14:44:11 +02:00
reds_gl_canvas.h autotools: correctly build canvas-related code 2011-05-03 14:44:10 +02:00
reds_sw_canvas.c common,server: use ASSERT from spice_common.h 2011-05-03 14:44:11 +02:00
reds_sw_canvas.h autotools: correctly build canvas-related code 2011-05-03 14:44:10 +02:00
reds.c server: Add RedClient 2011-08-23 17:56:44 +03:00
reds.h server: Add RedClient 2011-08-23 17:56:44 +03:00
smartcard.c server: Add RedClient 2011-08-23 17:56:44 +03:00
smartcard.h remove unused function 2011-07-19 13:31:10 +02:00
snd_worker.c server: Add RedClient 2011-08-23 17:56:44 +03:00
snd_worker.h use foo(void) instead of foo() in prototypes 2011-05-02 11:24:44 +02:00
spice-experimental.h move chardevs out of experimental 2010-12-16 09:16:10 +01:00
spice-server.syms server: add QXLWorker.flush_surfaces_async for S3/S4 support 2011-07-20 16:00:19 +03:00
spice.h Bump version in server/spice,h to 0.9.1 2011-07-26 14:16:07 +02:00
stat.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
usbredir.c server: Add RedClient 2011-08-23 17:56:44 +03:00
zlib_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
zlib_encoder.h applying zlib compression over glz on WAN connection 2010-06-21 15:05:37 +02:00