[Spice-devel] [PATCH 00/26] final part of red_channel refactor

Alon Levy alevy at redhat.com
Fri Feb 11 09:48:45 PST 2011


Starts with using RedChannel in red_worker.c, then tries to use the marshaller
all the way [1]. The later parts are mainly for adding multiple clients later.

This patchset is basically right before the patch that adds the
RedChannelClient struct (although it is only really useful quite a few patches
later). The tree with the complete multi client support is here (only
reference, still quite dirty with debug stuff and a few wrong turns):

 git.freedesktop.org/~alon/spice server_multi_client.v2.refactor.wip

[1]  I'm just going over these patches that I haven't touched in a few months,
sorry for the lame description.

Alon Levy (26):
  server/red_channel: protect red_channel_destroy from NULL peer
  server/red_channel (all): change send_pipe_item to add marshaller to
    sig
  server/red_channel (all): handle MIGRATE_DATA and MIGRATE_FLUSH_DATA
  ring: add RING_FOREACH{,_SAFE,_REVERSED}
  server: add missing include to ring.h
  server/red_channel (all): add peer to config_socket sig
  server/tunnel: pass SpiceMarshaller reference from send
  server/red_channel (+): remove red_channel_add_buf
  server/red_channel: add red_channel_set_shut and use in
    inputs_channel
  server/red_channel: add red_channel_get_first_socket
  server/red_channel (all): pass header in channel_send_pipe_item_proc
  server/red_worker: cursor channel: replace _send_ with _marshall_
  server/red_channel: add red_channel_all_blocked
  server/red_channel: add red_channel_send_message_pending
  server/red_worker: replace _send_ functions by _marshall_
  server/red_worker: complete removal of send_data.marshaller use
  server/red_channel: add red_channel_{,no_}item_being_sent
  server/red_worker: remove RedChannel argument from add_buf_from_info
  server/red_channel: move free of SET_ACK pipe item to release
  server/red_channel: reset send_data.item to NULL after release
  server/red_channel: add red_channel_disconnect, use in red_worker
  server/red_worker: use red_channel_is_connected
  server/red_channel: no opaque in red_channel_peer_on_*_error
  server/red_channel: split Incoming/Outgoing to callback and state
  server/red_channel: move out_bytes_counter from Outgoing to
    RedChannel
  server/red_worker: use red_channel_pipe_item_init

 common/ring.h              |   21 ++
 server/inputs_channel.c    |   21 +-
 server/main_channel.c      |  151 ++++++-----
 server/red_channel.c       |  192 ++++++++++----
 server/red_channel.h       |   98 ++++++--
 server/red_client_cache.h  |    2 +-
 server/red_tunnel_worker.c |  209 ++++++++--------
 server/red_worker.c        |  607 ++++++++++++++++++++++---------------------
 server/smartcard.c         |   37 ++--
 9 files changed, 764 insertions(+), 574 deletions(-)

-- 
1.7.4



More information about the Spice-devel mailing list