[Spice-devel] [RFCv5 00/47] server: multiple client support
Alon Levy
alevy at redhat.com
Sun May 8 06:10:56 PDT 2011
changes from previous (v4) after Marc-Andre's review:
Surfaces struct renamed to RedRender
patch count reduction.
reduction of argument count (makes search replace patches more readable too)
some other cleanups. I'm sure I missed a few.
to turn on multiple client support you need to set SPICE_DEBUG_ALLOW_MC=1
(or any value).
tested the handle_dev patch, it seems rendering is not correct with this
patch series, see comment on last patch.
Still a lot of todos.
Tree: git://anongit.freedesktop.org/spice/spice server_multi_client.v5
Alon Levy (47):
server/main_channel.c: set NET_TEST_STAGE_INVALID=0 explicitly (TODO
- the rest)
server/red_channel: renames to use _proc postfix consistently
server/red_worker: drop red_pipe_add_tail, use
red_channel_pipe_add_tail
server/red_channel (all): introduce RedChannelClient
server/red_worker: introduce {display,cursor}_is_connected
server: move pipe from RedChannel to RedChannelClient
server/main_channel: use MainChannel in sig
server/red_channel: workaround for fast client disconnect bug (TODO -
real fix)
server/red_client: clear pipe on disconnect
server/red_worker: release PIPE_ITEM_TYPE_VERB in display channel
server/main_channel+reds: make main_channel_init return
MainChannelClient
server: Add RedClient
server/reds: add concept of secondary channels
server/main_channel: move latency and bitrate to channel client
server/main_channel: move ping here from reds.
server/main_channel: move connection_id from reds
server/red_channel: ignore error if already shutdown
server/red_channel: introduce pipes functions
server/main_channel: support multiple clients
server/inputs_channel: support multiple clients
server/red_tunnel_worker: trivial multi client support
server/smartcard: support multiple clients
server/red_worker: split RedRender from RedWorker
server/red_worker: cleanup
server/red_worker: split display and cursor channels
server/red_worker: remove more direct access to RedChannelClient.rcc
server/red_channel: add pipe_size helpers
server/red_channel: introduce client ring in RedChannel
server/reds: add RedsState.allow_multiple_clients
server/red_worker: introduce RedSurfaceReleaseInfo
server/red_worker: add ref counting to RedDrawable
server/red_worker: start using RENDER_FOREACH
server/red_worker: whitespace fixes
server/red_worker: copy and free new surfaces after first client
server/red_worker: get_streams_timeout: go over all clients
server/red_worker: move free from display_channel_send_item to
_release_item
server/red_worker: split cursor pipe item from cursor item
server/red_worker: remove forced disconnect on connect
server/red_worker: add cursor_channel_client_disconnect
server/red_worker: red_current_add_equal: add dcc null checks
server/red_worker: on_new_display_channel_client: push ack, cleanup
server/red_worker: give each client a different id for caches
server/red_worker: DEBUG_CURSORS
(temp) server/reds: use ALLOW_NO_SSL define externally to trigger
debug only DEBUG_GENERATE_NULL_KEY
(temp) server/reds: DEBUG: add a define for working with no SSL (good
for valgrind)
(temp) client/red_channel: DEBUG: allow no SSL usage (useful for
valgrind)
server/red_worker: handle_dev_update: for all clients (checkme)
client/red_channel.cpp | 40 +-
server/inputs_channel.c | 151 +-
server/main_channel.c | 626 ++++---
server/main_channel.h | 47 +-
server/red_channel.c | 1027 ++++++++---
server/red_channel.h | 195 ++-
server/red_client_cache.h | 58 +-
server/red_client_shared_cache.h | 48 +-
server/red_dispatcher.c | 39 +-
server/red_dispatcher.h | 7 +-
server/red_parse_qxl.h | 1 +
server/red_tunnel_worker.c | 403 +++--
server/red_worker.c | 3877 +++++++++++++++++++++++---------------
server/red_worker.h | 2 +
server/reds.c | 198 ++-
server/reds.h | 16 +-
server/smartcard.c | 196 +-
server/snd_worker.c | 24 +-
18 files changed, 4365 insertions(+), 2590 deletions(-)
--
1.7.5.1
More information about the Spice-devel
mailing list