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

Marc-André Lureau marcandre.lureau at gmail.com
Mon Feb 14 17:28:48 PST 2011


Hi Alon,

On Fri, Feb 11, 2011 at 6:48 PM, Alon Levy <alevy at redhat.com> wrote:
> 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.

There are a few things that annoys me in this patch series (see
individual patch comments):

- apparently, patch 22-26 are missing form the ML. This is not a
problem since you can already take some of the review comments and
resend the patch series later.

- some patches are really non-trivial for me, please give me a bit
more context :) - see my comments

- the almost systematic refactoring of OO C methods of the form
my_foo_call(foo) to something with less encapsulation, like:
my_foo_call(foo, arg1, arg2), where args are in fact foo members, and
can be reached from foo directly. Perhaps the objects are lacking some
accessors to make life easier?

- some renaming lack consistency

regards

>
> 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
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>



-- 
Marc-André Lureau


More information about the Spice-devel mailing list