[Spice-commits] Changes to 'replay-rebase'

Jonathon Jongsma jjongsma at kemper.freedesktop.org
Fri May 29 12:11:05 PDT 2015


New branch 'replay-rebase' available with the following commits:
commit e7bb7a20f37bce4ef71a400b30d6775450008043
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu May 28 13:19:37 2015 -0500

    Convert RedClient to GObject
    
    Move to a separate file, and add a few public methods to avoid accessing
    internal data.

commit 30d4cc06fecb0f992d5f85c020124073bdb95b81
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed May 27 14:25:29 2015 -0500

    Re-arrange channel client creation to avoid exposing client lock
    
    Instead of requiring the channel client to lock the client's lock,
    re-arrange things so that all of the locking can be internal to
    RedClient methods. So instead of having a pre-create validate function,
    we simply move the check to red_client_add_channel() and return an error
    if a channel already exists. This encapsulates the client implementation
    better and also reduces code duplication in RedChannelClient and
    DummyChannelClient.

commit 6bb18a9aab0fe4c18400a62301e71ef4967cd22c
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri May 22 15:19:37 2015 -0500

    Free channels in RedsState destructor

commit 80579779e48c38ac2ce506225ce4be31228cfa53
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon May 11 16:58:01 2015 -0500

    Convert RedChannel heirarchy to GObject
    
    When using private structs with GObject, there's a maximum size of (I
    think) 64k, which was exceeded by the DisplayChannel object. To make
    this work, I had to make several of the arrays here dynamically
    allocated rather than statically allocated.

commit 559946489ec67739902c00466c38fcbb0c350940
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Mar 30 13:48:01 2015 -0500

    gobject-ify RedChannelClient heirarchy
    
    Convert the RedChannelClient heirarchy into GObjects. Since the existing
    constructors could fail and return NULL, I inherited the base channel
    client from GInitable, which introduces a dependency on gio.

commit 7a35f4aa78a5a10827fdb2f47153c16d2400ca8b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Mar 23 15:17:10 2015 -0500

    Generate GTypes for spice-server enums

commit 2f73312c9d92c4f7299e1cc8dcad47b9b8ed7e7a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Mar 19 15:58:51 2015 -0500

    Move CursorChannelClient to separate file

commit 7c890933ca5da8ecfb02d3d0862642a8a2dc30c4
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Mar 13 11:43:37 2015 -0500

    Move RedChannelClient to separate file
    
    Reduce direct access to RedChannelClient, and get ready to convert to
    GObject.

commit e51a639136774995399c60ea077cb619d958f953
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Mar 12 16:50:59 2015 -0500

    Move CommonWorkerChannelClient to a separate file
    
    This reduces the direct access to the struct in preparation for
    GObjectification

commit 6f3594279a2b1de476a8a4ce7cbfb455e4f7ec38
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Mar 12 16:49:25 2015 -0500

    Add missing include to red-pipe-item.h
    
    This doesn't cause problems at the moment, because the files that
    include this file also include the other files that are needed, but just
    for completeness...

commit c8c0e596dd6eb4fe32445399defe6f90829ea8d4
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Mar 12 15:12:44 2015 -0500

    Limit direct access to DisplayChannelClient
    
    Add a few more methods and accessors so that other files don't need to
    manipulate the struct members directly. Move the struct definition to a
    private header which only the dcc-* files will include.

commit a3b76a2cf8085061609f58177c51b27a7604ac37
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Mar 6 16:54:07 2015 -0600

    Replace RedClient::channels with GList
    
    Allows us to not expose the client_link in RedChannelClient.

commit 51173ab9849201d34e9332c09d8ac21d5c7ab36f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Mar 6 16:00:30 2015 -0600

    rename red_channel_peer_ function to red_channel_client_
    
    Use consistent naming

commit af26632c261e179b9a399cdf3360cd2392cdd55c
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Mar 6 15:42:19 2015 -0600

    Replace RedChannel::clients with GList
    
    Instead of using a Ring, use a GList to store the list of channel
    clients. This allows us to iterate the clients without poking inside of
    the client struct to get the channel_link. This is required in order to
    make the RedChannelClient struct private.

commit 8c6ccf83ff772235f558c1f9cd05d7c0be3b1cc5
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Mar 4 16:05:35 2015 -0600

    Move InputsChannelClient to a separate file
    
    Preparation for converting to GObject

commit 9dbfb088e44227811db4b4ddd565adde309aec25
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Mar 3 10:58:48 2015 -0600

    Move MainChannelClient to separate file
    
    Preparation for converting to GObject

commit 3a78fe27b07fee4d825b862a8a2885e583cf1a79
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 27 09:33:03 2015 -0600

    Remove unused struct RedsOutItem

commit 5b89106bafdc69e2757aa0237b1da9f4ae4faeb7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Feb 26 10:34:18 2015 -0600

    Name MainChannelClient methods consistently
    
    Always use main_channel_client_ prefix instead of just main_channel_ in
    some cases.

commit 2d21b1d4a115ae999c152a970c4394a87cbc75d9
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Feb 26 10:17:26 2015 -0600

    Change new_pipe_item_t function signature
    
    Now that pipe_item_init() does not require a RedChannelClient* argument
    anymore, the new_pipe_item_t callback function does not ever use the
    channel client object passed to it. So just remove this and simplify
    things.

commit 3daa68f1ef7cefd188b4f41ae92126aff0ec8011
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 25 12:14:36 2015 -0600

    Add red_client_seamless_migration_done_for_channel()
    
    This is a public RedClient API that handles updating itself rather than
    having the RedChannelClient poke around at the internal structure in
    rec_channel_client_seamless_migration_done().

commit 5af5bae02481bbedb31d7caec1d31feba1298d09
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 25 12:13:17 2015 -0600

    Call public RedClient API instead of poking internals
    
    Use red_client_during_migrate_at_target() instead of checking
    rcc->client->during_target_migrate.

commit 1a6573d01026c27e45bcc371ac888e8b88148019
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 25 12:10:52 2015 -0600

    Make red_client_remove_channel() a RedClient method
    
    Explicitly pass RedClient* as first argument to this function, to mirror
    red_client_add_channel(). This will eventually allow us to separate the
    implementations of RedClient and RedChannelClient so that they don't
    need to be poking into the internals of eachother's structs.

commit 32216995eacd5906f946aa24cba3f06f9c3aa072
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 25 11:51:50 2015 -0600

    Don't touch RedClient internals from RedChannelClient
    
    Change red_channel_client_set_migration_seamless() so that it returns a
    boolean which RedClient can use to update its internal count of
    num_migrated_channels rather than having RedChannelClient reaching into
    the internals of RedClient

commit aea349c2c790537c916bc716a1feb877842574aa
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 24 16:11:21 2015 -0600

    RedChannel: remove unused BufDescriptor struct

commit a32727c262085c815ec55ca9d85a3d697eba904b
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 16:19:14 2015 +0100

    audio: Remove global 'playback_state' variable
    
    This variable belongs to SpiceServerConfig rather than being a static
    global variable hidden in sound.c

commit 912057109a18670afc7f9133e2763d526dd9c960
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 16:22:14 2015 +0100

    Remove unused snd_get_playback_compression() method

commit 62ace28dc0fa8c84dd59378002ad252f4ddaa82e
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 16:20:11 2015 +0100

    Remove dead code in reds_fill_channels()
    
    channels_info->num_of_channels is assigned, its value is not used, and
    then it's assigned a different value. The first assignment can be
    removed.

commit f3fe3431962a9ef17dc6c4d9f4455b54e5a00b06
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 16:02:36 2015 +0100

    Improve Reds/RedMainChannel interface
    
    Instead of exporting 2 methods to get number of channels, and to fill
    channel information, and use that from the main channel code, it's
    better to do everything in one go in reds.c, and call that single method
    from the main channel code.

commit 2d0c6e61118813628cd1f168ef8e2da115d72f20
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 15:43:36 2015 +0100

    Add _config_ to SpiceServerConfig accessors

commit c2a3e6e8501a2d3a97eed7793b265d793cd63ca0
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 15:28:22 2015 +0100

    Mark unused public API methods/code as deprecated
    
    Also mark one probably unused code block with a g_critical()

commit eb72678ff83797637100e2ad730fe26ba3bc059f
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Mar 5 15:11:00 2015 +0100

    Add SpiceServerConfig
    
    This wraps/groups the various parameters that can be set by spice-server
    users through the spice_server_set_xxx public API.

commit fde3e2c10285768fde6631c70633c8ab54df3daa
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 18:51:20 2015 +0100

    Use weak gobject ref instead of reds_on_char_device_state_destroy
    
    RedCharDevice implementation had to callback into reds.c in order to let
    it know a char device was being destroyed. Now that RedCharDevice is a
    gobject, a weak reference can be used instead allowing to remove that
    coupling.

commit 3f2252c3cef66998dc8994f6ab411b10fa4fc479
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 18:23:59 2015 +0100

    Use GQueue for RedCharDevice::send_queue
    
    There was an extra SpiceCharDeviceMsgToClientItem type whose only
    purpose was to manage a linked list of items to send. GQueue has the
    same purpose as this type in addition to being generic. As the length of
    the send queue is tracked, a GQueue is more appropriate than a GList and
    allow to remove RedCharDevice::send_queue_size.

commit 23c59a2c11ff937d2b7d4fed774a3b95d9439db9
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 17:48:31 2015 +0100

    Remove use of opaque from vdi_port_read_one_msg_from_device
    
    We can get 'reds' from the RedCharDevice accessible from the
    SpiceCharDeviceInstance passed as an argument.

commit ca4130350131c992301930482f1d8bd8ba7cd322
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 17:45:55 2015 +0100

    Replace RedCharDevice::on_free_self_token with a signal
    
    It's more natural to do things this way with glib, and this allows to
    remove some coupling between Reds and RedCharDeviceVDIPort. Before this
    commit, the RedCharDeviceVDIPort has to provide a on_free_self_token()
    because Reds needs to know about it. With a signal, RedCharDeviceVDIPort
    does not have to do anything special, and Reds can just connect to the
    signal it's interested in.

commit 545ebcf2aa3986d7b0013d1706f689ce0d1765fa
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 14:33:57 2015 +0100

    char-device: Remove RedCharDeviceClass::{un,}ref_msg_to_client
    
    Now that client messages are always RedPipeItem, we don't need virtual
    functions to know how to ref/unref them.

commit 1d9e8f9dbb1b987f73534255a7bdb34828aca48e
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 14:47:30 2015 +0100

    char-device: Replace SpiceCharDeviceMsgToClient with RedPipeItem
    
    Now that all derived classes use a type deriving from RedPipeItem for
    their SpiceCharDeviceMsgToClient, we can make this explicit in the
    RedCharDeviceClass vfuncs, and remove the SpiceCharDeviceMsgToClient
    typedef.

commit 79424a32848a66f67b1c001dfda536696e8b6117
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 14:07:33 2015 +0100

    spicevmc: Derive SpiceVmcPipeItem from RedPipeItem
    
    This allows to reuse red_pipe_item_{ref, unref} rather than
    reimplementing them in spicevmc.c

commit c5b12b651e06911da67337ae168148608b36e57f
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 14:06:45 2015 +0100

    smartcard: Derive MsgItem from RedPipeItem
    
    This allows to reuse red_pipe_item_{ref, unref} rather than
    reimplementing them in smartcard.c

commit ef072053f8338dd51dddbe29f1b6fca14d7b8a62
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Mar 6 11:52:00 2015 +0100

    FIXME/HACK: RedPipeItem/VDIPortBuf refcounting hack
    
    related to 7d375e0
    workaround a runtime check in red_pipe_item_ref()

commit b5be3fecdfb13be2b49a68232cfdd85a0e8b64d1
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 13:55:28 2015 +0100

    reds: Derive VDIPortReadBuf from RedPipeItem
    
    Since RedPipeItem is already refcounted, this allows to remove various
    layers of ref/unref helpers from reds.c, and use the generic
    red_pipe_item_{ref, unref} instead.

commit 92b28160d09fe561e7dc1ed7089c4144a6e33437
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 11:44:22 2015 +0100

    reds: Put PipeItem first in VDIReadBuf
    
    This is a bit artificial as this is not a real 'PipeItem', but it will
    allow us to make it use the common base class for refcounted pipe items.

commit 95036d3e7766540ff2b7b88e7419a4c92b261d71
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 19 18:01:48 2015 +0100

    Introduce simple RedPipeItem class
    
    This is similar to PipeItem (which is a type id + a RingItem linked list
    member), except that it's refcounted. A user-defined callback is called
    when the refcount drops to 0.
    Refcounted is open coded for several classes deriving from PipeItem, so
    this base class will help to share this code, and allow to remove some
    ref/unref virtual functions in some interfaces when we can assume every
    instance derives from this base class.

commit c5018f7f68a943e05513cc60cd7f1969ba784d4b
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 14:31:33 2015 +0100

    Remove spice_char_device_state_{un,}ref
    
    They were #define'd to be g_object_{ref, unref}, it's clearer to get rid
    of them now.

commit 6ff6db5afd18308a30b32ea65c273a400e85de10
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 12:42:18 2015 +0100

    RedCharDevice: Add typedef for class virtual functions
    
    When initializing the class vfuncs, this allows us to cast already
    existing functions to the right type rather than having a wrapper
    function whose only purpose is to cast one argument to the right type.

commit b8c7104e4c8df3abd2838dafece9db738674fe97
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 26 12:13:08 2015 +0100

    Rename red_pipe_item_init to pipe_item_init
    
    This is acting on a PipeItem object so correct name is pipe_item_init
    without the red_ namespacing. Next commits will introduce a
    red_pipe_item_init acting on a RedPipeItem object.

commit 7eb561add5844b5ceb9478a72c496f305e22f17a
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Feb 25 19:17:54 2015 +0100

    Move SpiceCharDeviceCallbacks into RedCharDeviceClass
    
    This structure holding virtual function pointers was kept until now as a
    RedCharDevice member in order to make the GObject conversion easier.
    Now that all RedCharDevice children are converted to GObject, it can be
    moved into RedCharDeviceClass.

commit 310a0b5753f4dbd0a0a23b88c975f0730ab4b1cb
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Feb 25 19:15:44 2015 +0100

    reds: Remove spice_char_device_state_create()
    
    Nothing is using it anymore now that CharDevice classes are
    gobjectified.

commit d8215b0499c2a70a5bb74f2fa5cfed277c179af4
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Feb 25 18:26:17 2015 +0100

    reds: Make VDIPortState a gobject
    
    This inherits from RedCharDevice.

commit 55922349e551fdcbc78256f92156e3780e8ba4bb
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Wed Feb 25 13:07:35 2015 +0100

    reds: Make VDIPortState private to reds.c
    
    VDIPortState and VDIReadBuf don't really need to be defined in a header
    file as they are only used in reds.c

commit 006375884ab02fcc4929159a22e51c4c008ab6cf
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 13:57:40 2015 +0100

    smartcard: Turn SmartcardState into a GObject
    
    This inherits from RedCharDevice. Once all char device states are
    converted, we can turn the associated vfuncs into RedCharDeviceClass
    vfuncs.

commit 6cd5aa9e4aad22c1bf71ea0703f32630abca8b06
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 12:05:22 2015 +0100

    smartcard: Move private constant to C file
    
    APDUBufSize is only used within smartcard.c, no need to expose it in
    smartcard.h

commit 2c3c10e5f79c7f564fe0113043b9cad9d6c49677
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 20:19:40 2015 +0100

    spicevmc: Move SpiceVmcState::pipe_item to RedCharDeviceSpiceVmc
    
    This pipe item belongs to the char device, not to the spicevmc channel.

commit 778a13c45302fad1d816020b2b75a941b8916514
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 19:58:39 2015 +0100

    spicevmc: Introduce RedCharDeviceSpiceVmc GObject

commit ab2b0ad03b54f7c7baf820344569c15f19182c7a
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 18:54:47 2015 +0100

    char-device: Make SpiceCharDeviceState a gobject

commit b9bf2786d3ca130c2f440576b83bbec3f78434ff
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 17:34:47 2015 +0100

    char-device: Add helpers for SpiceCharDeviceCallbacks vfuncs
    
    Add helper functions wrapping calls to the virtual functions
    defined in SpiceCharDeviceCallbacks.

commit 7c81383323cc39ff6dfed3fa94899c31f2784ff2
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 17:04:04 2015 +0100

    char-device: Refactor spice_char_device_client_add a bit
    
    Factor out CharDeviceClientState creation out of
    spice_char_device_client_add.

commit 349c57cb88fc82a83f355ac87c99472e7b0527e6
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Tue Feb 24 20:15:36 2015 +0100

    Rename red_channel_pipe_item_init to red_pipe_item_init
    
    The RedChannel argument is not used by red_pipe_item_init. Removing it
    will make code simpler in places where we don't have a RedChannel
    directly available.

commit 87344fcd3c2c1bcf2d2ef6fc00655a93fe053160
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Mon Feb 23 18:54:58 2015 +0100

    Replace RedsPrivate::mig_wait_disconnect_clients with a GList
    
    The code was introducing an intermediate RedsMigWaitDisconnectClient type to
    hold linked list elements, resulting in a memory handling behaviour very
    similar to a GList. Using GList directly makes the code shorter and more
    readable.

commit 5da01d338ce491ab605a30e5920e989e4e195a5d
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Mon Feb 23 18:37:52 2015 +0100

    Replace RedsPrivate::char_devs_state with a GList
    
    The code was introducing an intermediate SpiceCharDevStateItem type to
    hold linked list elements, resulting in a memory handling behaviour very
    similar to a GList. Using GList directly makes the code shorter and more
    readable.

commit e0c9965c9deba841d30b5e334e4c53ba16ec27c9
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Feb 20 18:26:47 2015 +0100

    Remove dependency of vdi_port_read_buf_process on RedsState
    
    This makes it easier to move the VDIPort API to a different file, and
    make it as self-contained as possible.

commit 565887cc6dfb738ea2a08c850901aff32ec971ee
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Feb 20 18:19:24 2015 +0100

    Introduce spice_char_device_get_interface()
    
    Hides awkward casting/dereferencing to go from a
    SpiceCharDeviceInstance to a SpiceCharDeviceInterface

commit 406018242f6f5635ebf9ea6528d7a157ff31cd94
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Mon Feb 23 17:53:05 2015 +0100

    Make use of the new reds_core_timer_* API
    
    This makes the code more readable.

commit 788e52052bc0fd545ae873c5f71c49362bd7e0b6
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Mon Feb 23 17:27:30 2015 +0100

    Introduce reds_core_timer_*

commit 4e70b5048198d77e44c80dbf124fe0d0f5cc92ec
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Feb 20 16:14:44 2015 +0100

    Introduce reds_core_watch_*
    
    These methods wrap the RedsCoreInterface::watch_add,
    RedsCoreInterface::watch_remove and RedsCoreInterface::watch_update_mask
    vfuncs.

commit 6d6d6627675ad61785b8d242e0d90c48a7ee9311
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 24 09:34:31 2015 -0600

    Hook up main_dispatcher_constructed()
    
    Forgot to implement hook up this vfunc in the class init function, so we
    were getting a crash on the main dispatcher. We also need to make sure
    that we chain up to the parent vfunc.
    
        #0  0x00007fffed0478c7 in __GI_raise (sig=sig at entry=6) at
        ../sysdeps/unix/sysv/linux/raise.c:55
        #1  0x00007fffed04952a in __GI_abort () at abort.c:89
        #2  0x00007fffed04046d in __assert_fail_base (fmt=0x7fffed19a1f8
        "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
        assertion=assertion at entry=0x7ffff7b8cf28
        "dispatcher->priv->messages[message_type].handler",
        file=file at entry=0x7ffff7b8cede "dispatcher.c", line=line at entry=324,
        function=function at entry=0x7ffff7b8d210 <__PRETTY_FUNCTION__.16179>
        "dispatcher_send_message") at assert.c:92
        #3  0x00007fffed040522 in __GI___assert_fail (assertion=0x7ffff7b8cf28
        "dispatcher->priv->messages[message_type].handler", file=0x7ffff7b8cede
        "dispatcher.c", line=324, function=0x7ffff7b8d210
        <__PRETTY_FUNCTION__.16179> "dispatcher_send_message") at assert.c:101
        #4  0x00007ffff7a89367 in dispatcher_send_message
        (dispatcher=0x55555625f0c0 [MainDispatcher], message_type=2,
        payload=0x7fffdd1fe5a0) at dispatcher.c:324
        #5  0x00007ffff7a8d3da in main_dispatcher_set_mm_time_latency
        (self=0x55555625f0c0 [MainDispatcher], client=0x5555564d2740, latency=0)
        at main-dispatcher.c:260

commit 7e39c9004c6f6c12b4d7e6c3260a9357a57db131
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 20 17:14:47 2015 -0600

    Free dispatchers at exit

commit fa61d507ac65260d3ddf8de18619b6fa218c5214
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 20 17:13:36 2015 -0600

    Convert Dispatcher and MainDispatcher to GObjects
    
    Allows more explicit inheritance relationship, and numerous other
    advantages.

commit ecf6fb6f094109c65c16a0b26ca2e6daed3341e7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 20 15:00:02 2015 -0600

    Add GObject to build requirements
    
    Preparation for GObject-ifying some internals

commit 255718a0777e7cd295ca55c5466f5ac6948023aa
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Feb 20 17:00:53 2015 +0100

    Remove redundant argument to vdi_port_read_buf_process
    
    The 'port' argument can be determined from VDIPortState, so no need to
    pass both (through RedsState) to vdi_port_read_buf_process().

commit c3a658e356252b2f2679dd1396e3d41b70922dbe
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Fri Feb 20 17:00:52 2015 +0100

    Fix typo in comment in char-device.h

commit 3718eeccf59143d1ad4de61133f8803b17b25b97
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Feb 12 11:01:50 2015 -0600

    add missing license headers to source files

commit 37ead0cd72b0b4a84469b10165df879ded69f301
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Feb 12 10:55:46 2015 -0600

    Remove last usage of global 'reds' variable
    
    This should be the final piece of removing the global reds variable. We
    still need a global variable to clean up during the atexit() function,
    but we use a GList of servers (even though we technically don't support
    multiple servers in the same process yet).

commit 84d7a5d3e71d669ab3e965270f8083f0bf19d845
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 11 17:11:02 2015 -0600

    Remove use of global 'reds' from AgentMsgFilter

commit 3345a1851b1454f6f19e0e521061fbfd15048fe0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Feb 11 11:38:57 2015 -0600

    Remove use of global 'reds' from sound.c
    
    Pass RedsState variable to snd_attach_(playback|record) and get a
    reference to this variable when needed by various functions.

commit 9b8303a77b7cf4c0fedfeaf8d72022caedcd6ad9
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 10 16:37:49 2015 -0600

    Remove global main_dispatcher variable
    
    Requires changing a bunch of internal API to take MainDispatcher
    arguments, etc. The main dispatcher object is now owned by RedsState,
    since that is the object that previously created (initialized) it.

commit efe3c68b0ca4d75b7c8710723c3c93b6eec38e5b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 10 15:40:40 2015 -0600

    Add RedsState reference to RedsStream
    
    Allows us to remove use of global 'reds' variable from reds-stream.c.
    Requires changing the RedsStream constructor to accept a RedsState arg.

commit 005dc50f9ac95531a07aa994ce4a42f38a0017eb
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 10 11:24:33 2015 -0600

    Fix spice-server crash on char device callbacks
    
    We weren't properly setting the 'opaque' pointer to be the RedsState
    server object. This was only triggering on windows guests.

commit 777f235b9b4fd4920528325d90a77007e7b2a9e2
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:41:22 2015 -0600

    Remove global 'reds' usage from stream.c
    
    Use the server variable from the display channel rather than the
    global variable.

commit d527369844ea9f89571f264d5872fe834d2b0ccf
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:39:39 2015 -0600

    Add red_channel_get_server()
    
    Instead of poking into the internals of the RedChannel, provide an
    accessor.

commit dfb2fa736eb6125e4363bb1626636579c287bf09
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:31:46 2015 -0600

    Don't typedef RedWorker twice
    
    No need to typedef the struct here, it's typedef'ed in the header
    already.

commit 31965e024a2022d81eee936094b1a358d534f27d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:31:11 2015 -0600

    Remove use of global 'reds' within RedWorker
    
    Get the server variable from the RedDispatcher instead of using the
    global variable

commit 683d6913be4b272298062749b4b3690fe8baafac
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:29:05 2015 -0600

    Add red_dispatcher_get_server()

commit 235901623e51575c8f4cc9e6f1be8d5a4d498267
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:22:04 2015 -0600

    Store reference to RedsState in RedDispatcher
    
    Remove use of global 'reds' variable from RedDispatcher functions.
    Instead store the owning RedsState variable inside the RedDispatcher
    struct and use that when necessary.

commit 994a217138b713597e750207bdac3df605f94700
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:10:29 2015 -0600

    CommonChannel -> CommonWorkerChannel
    
    Rename this struct to make it clear that it's only the base class for
    worker channels (e.g. display and cursor), not all channels.
    
    Also renamed CommonChannelClient to CommonWorkerChannelClient.

commit d399b938d8b8429e147001f5d9ab8a4ffffda790
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 11:53:36 2015 -0600

    Remove global 'dispatchers', 'num_active_workers' variables
    
    Since these are server-level variables, move them into RedsState.
    However, num_active_workers was removed because:
    - each dispatcher always has 1 active worker, so we can determine the
      number of active workers by counting the dispatchers
    - it was never actually set correctly. Even if there was more than one
      worker, this variable was always only set to either 0 or 1.
    
    This change required moving a bunch of helper code into RedsState as
    well, an providing some RedDispatcher interfaces to access dispatcher
    information from RedsState.

commit 179f533aae1b3632be82a7dd321c165aeb65e8f6
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 3 11:03:39 2015 -0600

    MainChannel: don't use global 'reds' variable
    
    Add RedsState arg to main_channel_new(), and use the 'reds' property
    that is stored in the base RedChannel struct rather than the global
    'reds' variable.

commit 4134e5e53fb3bd96484ec10e194420ef64ecc83b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Feb 3 10:59:39 2015 -0600

    Add RedsState arg to reds_set_migration_dest_info()

commit 43782ee8f946b4de3be5ae89287339e3edb22afc
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Feb 2 13:58:36 2015 -0600

    Add RedsState arg to inputs_channel_new()

commit 853a2242d6ab54f1dc539540d743f38787daa206
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 16:53:54 2015 -0600

    Store a reference to RedsState in Channel base class

commit f25af5566a95a26ea760f78bc4c8e7498229ff0c
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 16:57:16 2015 -0600

    Add RedsState arg to smartcard_device_connect()

commit 532ceca5d838026c2facda473423a304edde6f8e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 16:41:57 2015 -0600

    Add RedsState arg to activate_modifiers_watch()

commit 5e2b528495637f3ca0fcf2c612c9ba675aea8334
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 16:40:17 2015 -0600

    Use strong type on spice_tablet_state_get_server()

commit 02be9bcc3d10237417b35118e16dc78eaf81893e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 16:32:02 2015 -0600

    Add RedsState arg to spicevmc_device_connect|disconnect()

commit e63de01c5b64149c90ff1a4dc1dba38296fe5963
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 14:47:14 2015 -0600

    Add RedsState arg to red_on_main_agent_tokens()

commit 81c4e10d095baae53d6dd8c0d9492bdcf9fa31f6
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 30 14:35:12 2015 -0600

    Store a reference to RedsState in RedsMigTargetClient
    
    This allows RedsMigTargetClient methods to use local variables rather
    than the global 'reds' variable

commit 5901f5e82788217736451f5dab35b4051c3ad64e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 29 16:56:43 2015 -0600

    spice_server_kbd_leds: don't use global 'reds'
    
    Store a reference to the RedsState server in the keyboard state struct

commit f70353885dc62e9e70d2c6ad3590140a1b1bfda4
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 29 16:47:17 2015 -0600

    RedsState: use local variables in more places
    
    Various functions were still using the global 'reds' variable rather
    than the local argument of type RedsState

commit 6cfdea3e4d56f668b2f5f6bd0f9208c632f774e5
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 29 16:43:55 2015 -0600

    Add reference to server in RedClient
    
    Allows client methods to not use global 'reds' variable

commit 76a41cd88961e6e8118a663cdb9b5f82405f041e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 29 13:56:57 2015 -0600

    char-device: use local 'reds' variable
    
    Store a reference to the server in the SpiceCharDeviceState struct and
    use that rather than the global 'reds' variable

commit 2804f4fcf8d26c31e38f5c3e39020cd7e0675b87
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 28 15:52:46 2015 -0600

    Remove use of global 'reds' from VDIReadBuf functions
    
    Add a new 'state' property to VDIReadBuf so that we can refer back to
    the VDIPortState struct from the readbuf functions.

commit b7611c0e8108546d6a47fa586e51ff78f9a9698a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 28 10:30:12 2015 -0600

    Add RedsState arg to all stat functions

commit 8cc13864faf8a70953e0e39eae87cbc8250c0eb0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 28 09:54:26 2015 -0600

    Add RedsState arg to reds_handle_channel_event()

commit adc379c40c0b2388d73b78ed712873217b2632d1
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 28 09:37:31 2015 -0600

    spice_server_remove_interface: use local variable
    
    We were accidentally setting the global 'reds' variable in one of the
    branches in this function when we wanted to set the local variable.

commit bd4f247e8dcbaa3f686a0c8dbc596e57e5ae144d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 16:51:03 2015 -0600

    Add RedsState member to RedLinkInfo
    
    This allows us to use local 'reds' variables in all of the various async
    callbacks rather than using the global 'reds' variable.

commit 7bbbae952c4bdac40d8b28e17e1ba1bca66bd541
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 16:35:17 2015 -0600

    Add RedsState arg to reds_init_client_[ssl_]connection()

commit 46dbaa344d186902799ab4de360653368d1b9ae8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 16:34:35 2015 -0600

    Move 'core' into RedsState struct
    
    Also add reds_get_core_interface() accessor for external use.

commit 757028b1ffe5446855c2e75b688a6d4861bd665c
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 16:07:05 2015 -0600

    Rename vdi_port_read_buf_get() to match convention
    
    Since this is technically a RedsState method, name it as such.

commit bdd6f7273a191cfdfaa7e11e67e612a0b91c830f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:31:49 2015 -0600

    Move ssl_parameters to RedsState struct
    
    Removing more global variables

commit 79dc475d22d39179639658d861206c2e8a84673f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:23:38 2015 -0600

    Move exit_on_disconnect to RedsState struct
    
    Removing more global variables

commit 31f9f5f902ca5ce084d58eca88f3a0398bb685ec
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:22:29 2015 -0600

    Move agent_file_xfer to RedsState struct
    
    Removing more global variables

commit 405dc09e317b108903a899f6158fb8d8458ee7c2
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:21:33 2015 -0600

    Move agent_copypaste to RedsState struct
    
    Removing more global variables

commit 453f1f7e7159cbae19e32e1e328aeedd42b2dcf3
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:20:08 2015 -0600

    Move agent_mouse to RedsState struct
    
    Required adding a RedsState arg to reds_get_agent_mouse()

commit ff241e7e054fbcbc63c98593895f84504cd959ef
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:17:28 2015 -0600

    Move zlib_glz_state to RedsState struct
    
    Also required adding reds_get_zlib_glz_state() for external access.

commit 9f4b1a4b92a271c7cb395f66b92ecd604355698f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:15:07 2015 -0600

    Move jpeg_state to RedsState struct
    
    Also required adding reds_get_jpeg_state() for external access.

commit 3a4a42202cf57e5c7e43045e835a273061bff682
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:12:17 2015 -0600

    Move image_compression to RedsState struct
    
    Removing more global variables

commit 662e21935f2ecf1f2b8039a506dff4742c49a1f7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 14:07:01 2015 -0600

    Move streaming_video to RedsState struct
    
    Also requires adding reds_get_streaming_video() accessor so that other
    files can check this value.

commit 32cfa316cf41466212f34f5264dd0f186fc6d5e8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:48:41 2015 -0600

    Move ticketing_enabled to RedsState struct
    
    Removing more global variables

commit 8c695e11f23926c31dd1759be22e0e697eba8f9d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:47:18 2015 -0600

    Move spice_uuid, spice_uuid_is_set to RedsState struct
    
    Removing more global variables

commit 69efc7a7e844b2bb441c18e5b14b52d49a060632
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:45:04 2015 -0600

    Move spice_name to RedsState struct
    
    Remove more global variables

commit a5855d2b7854c38a1774510b70d6ee0c87c883a8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:43:56 2015 -0600

    Move sasl_enabled, sasl_appname to RedsState struct
    
    Removing more global variables

commit 1688024151ca5fba720ddec8e269198391427944
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:41:33 2015 -0600

    Move taTicket to RedsState struct
    
    Removing more global variables

commit dcf5945886fefe024fa5ac4ef5c13ab2053c723a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:40:01 2015 -0600

    Move spice_family to RedsState struct
    
    Removing more global variables

commit 65fdc9bb3060cbc4fb138047729ef93f6a6ec388
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:38:39 2015 -0600

    Move spice_addr to RedsState struct
    
    Removing more global variables

commit 1781a05afc5de2dda7f65a2ec56d9a31804b1441
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:38:07 2015 -0600

    Move spice_listen_socket_fd to RedsState struct
    
    Removing more global variables

commit c2ab5c2c70bb1a4445ca97afb08fe016a3a7e2b6
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:26:02 2015 -0600

    Move spice_secure_port to RedsState struct
    
    removing more global variables

commit 2a80022a1b29a1a279e7f3a8caf18205351e50bc
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 13:24:30 2015 -0600

    Move migration_interface to RedsState struct

commit a116203b2e9d8669c8e8cd3470e36bd1608f3a50
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 11:23:23 2015 -0600

    Move vdagent to RedsState struct
    
    Also change API of reds_has_vdagent() to take RedsState arg.  Removes
    another global variable.

commit 4fb6ced011480241b5d1dae5d71fca9eaf7b4be1
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 27 11:19:21 2015 -0600

    Move spice_port to RedsState struct
    
    Remove another global variable

commit 39b9c9ae12b32c4c2be5438fbe2c10fa9b37501a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 26 15:08:23 2015 -0600

    Store 'renderers' as GArray in RedsState

commit 9b4f7703b13c50cfd0583ffd5215ee2a2e4a8331
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 26 15:06:55 2015 -0600

    Fix crash when checking mouse mode
    
    Since the mouse mode is now stored in the inputs channel, we were
    crashing when somebody was calling this API before the inputs channel
    was created.

commit f746c9936ac175c75d70970fab58825ae209a818
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 22 10:50:18 2015 -0600

    Move default_renderer into RedsState
    
    Not global.

commit ba8c52385bb03a23e62fdddc0a885dfbeac3c04d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 22 10:44:29 2015 -0600

    Make default_security and channels_security non-global
    
    Move them into the RedsState struct, adjust functions that use these
    variables to take a RedsState arg.

commit a994e9baebd6773f4adbd44d7ed6087abd796390
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 22 09:58:49 2015 -0600

    Change init_vd_agent_resources() to take RedsState arg

commit 4b68f0395772290390915e6ac26e4ca1833cfdbb
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 22 09:56:16 2015 -0600

    Remove use of global 'reds' var from spice_server_remove_interface()
    
    Since this is public API, we can't easily change the signature of the
    function to take a RedsState argument, so instead we apply a hack and
    store the reds argument inside the device state struct when the
    interface is added, and retrieve it for use later when it is removed.

commit 3a093c5a8335855cca7a2055ca4ee21546e50f8f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 21 16:59:11 2015 -0600

    main_channel_init() -> main_channel_new()
    
    Rename to make function name more consistent

commit 784fd30080eabcb6dcdc5962b93dfb5b4e9db935
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 21 16:58:30 2015 -0600

    inputs_init() -> inputs_channel_new()
    
    Rename function to be more consistent

commit 40f087ea9798fba002e54284ffc49dcb2d879e13
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 21 16:54:32 2015 -0600

    Remove global inputs channel
    
    Make the RedsState object own an InputsChannel object rather than
    having a global inputs channel. This means changing a lot of
    inputs-related API to take an InputsChannel* argument and moving the
    keyboard, mouse, and tablet objects into the InputsChannel object.

commit 33987d7283b4d4e6a3ecc5ae94699911e727e604
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 17:05:33 2015 -0600

    spice_server_add_interface: use local 's' variable
    
    Prefer local argument variable over global 'reds' variable

commit 41eac0a9b70ef95b1e07c41355af195eb6d36170
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 17:04:29 2015 -0600

    Change spice_server_char_device_remove_interface to take RedsState arg

commit 5710bc32ec45efc0f26d7ed2e8731c50cf1616c8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 17:03:31 2015 -0600

    Change reds_on_char_device_state_destroy() to take RedsState arg

commit 36bc9886d6071a20d9f438236ced5a393fd25f46
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 17:03:14 2015 -0600

    Change reds_char_device_remove_state() to take RedsState arg

commit 5c0240f49aefdc0861e07330bf840efa80568fe8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:12:56 2015 -0600

    Change reds_char_device_add_state() to take RedsState arg

commit 525137b852ce6bbb0d5cf07c9f6556609013c77f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:11:29 2015 -0600

    Change attach_to_red_agent() to take RedsState arg

commit 0e16b7b3a9dbb9ab9900d5981fbce79943b0a9b7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:10:42 2015 -0600

    Change reds_disable_mm_time() to take RedsState arg

commit b5d3aad13ba2c3d2b9f8ff4d6852be234a655c7d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:09:27 2015 -0600

    Change reds_enable_mm_time() to take RedsState arg

commit 8fb82bf3d587b2cd2e51269a69a63f2660a7d5e7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:07:50 2015 -0600

    Change migrate_timeout() to take reds as data arg

commit ae0151fa041860c2473c25d1445f1f1118a4df13
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:06:34 2015 -0600

    Change reds_mig_switch() to take RedsState arg

commit dacc30ba443d7473eb45cb676d771d035affd608
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:06:03 2015 -0600

    Change reds_mig_finished() to take RedsState arg

commit 370d4a653ddcf8b62161df0f7f331132b432bed2
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:05:32 2015 -0600

    Change reds_migrate_channels_seamless() to take RedsState arg

commit 4f06bdd54051ddeb3996ef4fb498b1946a5a6060
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:04:55 2015 -0600

    Change reds_mig_remove_wait_disconnect_client() to take RedsState arg

commit f2a99c611b854b243947542ad079466f27afe43b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:04:11 2015 -0600

    Change reds_mig_cleanup_wait_disconnect() to take RedsState arg

commit e53c7ed0c529513f9598b3d1f179064627391c06
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:03:34 2015 -0600

    Change reds_mig_fill_wait_disconnect() to take RedsState arg

commit d13dc866653c9baa7e8d4e68c06530a233cbc6b3
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:03:06 2015 -0600

    Change reds_mig_started() to take RedsState arg

commit 902c2446fd1712c78acd474f311d0578336a4ae5
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:02:28 2015 -0600

    Change reds_mig_release to take RedsState arg

commit cdf9b88a82fb7b38c8fa0a896d8850688dc0b4f5
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:00:41 2015 -0600

    Change spice_server_set_ticket() to use local 's'
    
    Rather than using global 'reds' variable

commit e16c68d3b4e1eab6aca11c9adf319a4ed0bc3a03
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 16:00:16 2015 -0600

    change on_activating_ticketing() to take RedsState arg

commit b444d25f0b6ad05c5e3f3d5013015be2eabd5537
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 14:20:27 2015 -0600

    Change reds_init_ssl() to take RedsState arg

commit 8d625c1f6d7ca2bbf35ce673f47ed9caa544e1ef
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 14:19:11 2015 -0600

    Change do_spice_init() to take RedsState arg

commit 5ab5ae7d4655cf2c38f4eb48f3b47367013ab2a0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 14:18:37 2015 -0600

    Change reds_init_net() to take RedsState arg

commit 976089d8a6a6128cc37cc7c8b075ae28e88f598a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 14:17:24 2015 -0600

    Change reds_set_client_mm_time_latency() to take RedsState arg

commit ccac63225d39140f06ccbdc943e240a2cf88fddc
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 19 14:15:52 2015 -0600

    Change reds_send_mm_time() to take RedsState arg

commit 80585384a69c5dc69b9d1d1e79cad776c3d0667a
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 17:00:02 2015 -0600

    Change reds_handle_link() to take RedsState arg

commit 716d3e2b0f787bff98b8b09567ba5f41aaeb8e28
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:59:18 2015 -0600

    Change reds_handle_other_links() to take RedsState arg

commit 538d31777d10d3d3ed9b1016f55aeb138d2fc092
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:58:33 2015 -0600

    Change reds_on_client_semi_seamless_migrate_complete() to take RedsState arg

commit 77de050fd6d558eec20091d056375359476d469f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:57:27 2015 -0600

    Change reds_on_client_seamless_migrate_complete() to take RedsState arg

commit 577a9d85a5659bb15140da63654fc80efc37b8a6
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:56:01 2015 -0600

    Change reds_on_migrate_dst_set_seamless() to take RedsState arg

commit a6127b7b8a19e4004e5c7bfbf779dc459be0d000
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:54:34 2015 -0600

    Change reds_link_mig_target_channels() to take RedsState arg

commit fcb421b1c91a484d24e58688d776faaa54a8e7f8
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:53:25 2015 -0600

    Change reds_set_client_mouse_allowed() to take RedsState arg

commit 46f2cc4236c0260b9f72ac04125ed1d9eda0cda6
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:52:08 2015 -0600

    Change reds_handle_main_link() to take RedsState arg

commit e9cd85a78a30781c167a08e4580b86887ec14c6f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:51:28 2015 -0600

    Change reds_get_client() to take RedsState arg

commit 7108ed342da4977780e14eb352d7e4c48ce6b245
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:50:40 2015 -0600

    Change reds_find_client() to take RedsState arg

commit ce2aa55cc118f0cfee400f1602366e2af37a6361
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:49:50 2015 -0600

    Change reds_mig_target_client_disconnect_all() to take RedsState arg

commit 0845badf789b676717195be570507a2f8a97fb54
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:49:07 2015 -0600

    Change reds_mig_target_client_free() to take RedsState arg

commit 4517bccd148c409741d2db9aaa584a3ae3ed1f6f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:47:30 2015 -0600

    Change reds_mig_target_client_find() to take RedsState arg

commit 0e08c28da6b2eaad4c2946c3759d9c068cb340e7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:46:31 2015 -0600

    Change reds_mig_target_client_add() to take RedsState arg

commit 7356cdcf23aeb209f5dd4db578aa1a0b057e670e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:45:14 2015 -0600

    Change reds_send_link_ack() to take RedsState arg

commit 0b6f05ee028c9e7a97ba610b04aea50bd95cf8c9
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:44:00 2015 -0600

    Change reds_handle_migrate_data() to take RedsState arg

commit 20911ccb748a17bc368e9f42af95d3a249ef89f0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:42:24 2015 -0600

    Change reds_agent_state_restore() to take RedsState arg

commit c7838d4747d6c8b342acbf1a65a63724ce25fbcf
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:41:32 2015 -0600

    Change reds_marshall_migrate_data() to take RedsState arg

commit 09b5235ec9bc3218c245becf0f039e50b6274995
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:40:27 2015 -0600

    Change reds_on_main_channel_migrate() to take RedsState arg

commit dda28077ce2a5d26bff23727874048005e7a3f76
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:39:14 2015 -0600

    Change reds_on_main_mouse_mode_request() to take RedsState arg

commit 76072664086c6034a2e0744c217965580d4bee8e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:38:10 2015 -0600

    Change reds_on_main_migrate_connected() to take RedsState arg

commit 29f0d5d3672ed2c190085fe82fbf690274ea5417
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:36:51 2015 -0600

    Change red_on_main_agent_data() to take RedsState arg

commit c07d9bc2c88fdcbe32d116814722adb446cca659
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:34:38 2015 -0600

    Change reds_client_monitors_config_cleanup() to take RedsState arg

commit e0445afc8a1293bafc0532a2a22a3f51fd5902ad
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:32:48 2015 -0600

    Change reds_release_agent_data_buffer() to take RedsState arg

commit dd4a54f562f93fa849e66e83b047741664ff499e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 16:32:33 2015 -0600

    Change reds_get_agent_data_buffer() to take RedsState arg

commit b7b1238631f4250e7028935a6ef4d2895b070404
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:19:52 2015 -0600

    Change reds_on_main_agent_start() to take RedsState arg

commit 52b710db5799f9991270c4439b0b0e9d7ff3452b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:16:09 2015 -0600

    Change reds_fill_channels() to take a RedsState arg

commit c8f63f735729a302eaf35be8af2fbd15ea02a40d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:13:31 2015 -0600

    reds_num_of_clients() -> reds_get_n_clients()
    
    More consistent with glib naming conventions. Also make the function
    static since it's not used outside of this source file.

commit 75bf131d6d85acb370da451eb9286e4c902f4444
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:12:56 2015 -0600

    Change reds_num_of_clients() to take RedsState arg

commit 32a599193f6b517b4f1b1ec9ea81888719e6f74b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:10:06 2015 -0600

    reds_num_of_channels() -> reds_get_n_channels()
    
    More consistent with glib naming conventions.

commit b87d9558b4ae63b3df935842fb26e1f5220c0629
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:07:34 2015 -0600

    Change reds_num_of_channels() to take RedsState arg

commit cfc2c32264e6e7fe8bab9d3066581fd3a5eeb2c1
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 15:04:34 2015 -0600

    Change reds_handle_agent_mouse_event() to take RedsState arg

commit 9b227b01e2b3328d1eca2fd9ffaa2b1753b65690
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:58:55 2015 -0600

    Pass 'reds' as opaque data in vdi port char device
    
    This allows us to access the RedsState variable non-globally without
    changing the signature of the callback functions.

commit 22635e6e4c6feb1f7dc67e9ebdc8cd64d57af3b4
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:44:03 2015 -0600

    Change vdi_port_read_buf_unref() to take RedsState arg

commit 0baf3a1ff88c9455d45699373f2a17e09b0992d9
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:41:27 2015 -0600

    Change vdi_port_read_buf_get() to take RedsState arg

commit ff59408408f14521e35471095460bad19d7cc736
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:40:25 2015 -0600

    Change vdi_port_read_buf_process() to take RedsState arg

commit 86b5bc1fe380e10462588c03be14c4a10fbdb029
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:37:35 2015 -0600

    Change reds_mig_disconnect() to take RedsState arg

commit d82666482a762943590cc4bb92fca6ed14e01783
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:36:46 2015 -0600

    Change reds_disconnect() to take RedsState arg

commit 97176dd30c4d270cac88cee7c20108d43f9349e7
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:35:54 2015 -0600

    Change reds_client_disconnect() to take RedsState arg

commit 5cb0f6f66a1f6f049e1db91ba0000ecc8412ab65
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:33:57 2015 -0600

    Change reds_main_channel_connected() to take RedsState arg

commit 79bf40bc87309fbbffa61a9723d032d369d61a90
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:33:01 2015 -0600

    Change reds_reset_vdp() to take RedsState arg

commit 52db6572823a66b4f1b394c2791fd4b55cddd4cd
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:32:17 2015 -0600

    Change reds_mig_cleanup() to take RedsState arg

commit a740a2efba4dcfaf2a3ad6db08c855b8ae0af73e
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:31:04 2015 -0600

    Change reds_find_channel() to take RedsState arg

commit 5e93e70e26db24d9cd075d38c3d2e5a0abd44036
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:29:11 2015 -0600

    Change reds_agent_remove() to take RedsState arg

commit 63138a8fac76d1960d54f67c8e24e4e96fac6f2d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:27:01 2015 -0600

    Update reds_update_mouse_mode() to take RedsState arg

commit 7da4c46060bc459fd7c2e907524b6ba923317b60
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:25:44 2015 -0600

    Change reds_set_mouse_mode() to take RedsState arg

commit e97f0dc6687e79e5520a7946f5de0dc2cb89a663
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:24:51 2015 -0600

    Change reds_get_mouse_mode() to take RedsState arg

commit 8517e0f2914cfd56e50ddb77292cf27f2eb296e3
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:23:22 2015 -0600

    Change reds_unregister_channel() to take RedsState arg

commit a99afdadc77aa555a8164a9c9fa1436276680233
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:19:33 2015 -0600

    Change reds_register_channel() to take RedsState arg
    
    In preparation for getting rid of the global 'reds' variable, we need to
    pass the RedsState variable to all functions where it is needed. For now
    the callers just pass in the global reds variable.

commit e8dd4e7eb3739e228f0e33db23154b4c06ca0868
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Jan 16 14:18:14 2015 -0600

    Make global 'reds' extern
    
    This allows it to be accessed from other files. This is a temporary step
    toward getting rid of the global-ness of this variable, and it allows us
    to update the function signature bit-by-bit.

commit d9197da40ff557bef3e459b75a4c57f0b17722cb
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:48:24 2015 -0600

    Fix typo in comments

commit 62f31c7dcef805be51bf8d37b74679608be44b0d
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:21:50 2015 -0600

    Rename red_*_qxl.[ch] to red-*-qxl.[ch]

commit 35879b60ac683da24275e576f84ee21d391d7a74
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:12:28 2015 -0600

    Rename reds_stream.[ch] to red-stream.[ch]

commit f14490b0394c4bc6216d64ba721e2c55e9681246
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:10:20 2015 -0600

    Rename red_worker.[ch] to red-worker.[ch]

commit b62d867b381e76f0e5f19fe92e5fcb96ce46d054
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:07:26 2015 -0600

    Rename lz4_encoder.[ch] to lz4-encoder.[ch]

commit aa7a9ab4c2da2f3f4c7ab6fadbbbcbadff2ceea0
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 11:00:05 2015 -0600

    Rename red_dispatcher.[ch] to red-dispatcher.[ch]

commit bee71e60b06533e01d2e6c454ae5e17753eef914
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Wed Jan 14 10:54:59 2015 -0600

    Rename red_channel.[ch] to red-channel.[ch]

commit d45a69b508760edfa855dcde0c8a179aeffcee69
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Jan 13 16:19:19 2015 -0600

    Move RedsMigSpice to main-channel.h
    
    This is the place that needs the complete type definition. If it is
    defined in reds.h, it can create circular references.

commit 29a76c266adf93d92f603294eef1c8b3e39bad65
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Mon Jan 12 15:45:43 2015 -0600

    PALLET -> PALETTE
    
    Use the correct spelling for the enumeration

commit ad79883db8cd5e7b4ad939e94c2193a5167e837f
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Thu Jan 8 16:38:23 2015 -0600

    Don't abort if an item isn't handled.
    
    Use spice_warning() instead of spice_critical() since the latter will
    cause the entire qemu session to abort.
    
        (/usr/bin/qemu-kvm:24458): Spice-Warning **:
        ../../server/dcc-send.c:2442:dcc_send_item: should not be reached
        (/usr/bin/qemu-kvm:24458): Spice-CRITICAL **:
        ../../server/dcc.c:1595:release_item_before_push: invalid item type
        Thread 4 (Thread 0x7fcac941f700 (LWP 24459)):
        #0  0x00007fcae12347f0 in sem_timedwait () at
        ../sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S:101
        #1  0x00007fcae2d0f887 in qemu_sem_timedwait ()
        #2  0x00007fcae2cba7dc in worker_thread ()
        #3  0x00007fcae122d52a in start_thread (arg=0x7fcac941f700) at
        pthread_create.c:310
        #4  0x00007fcad7af577d in clone () at
        ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
        Thread 3 (Thread 0x7fcac8a3c700 (LWP 24460)):
        #0  0x00007fcad7aeb957 in ioctl () at
        ../sysdeps/unix/syscall-template.S:81
        #1  0x00007fcae2a89215 in kvm_vcpu_ioctl ()
        #2  0x00007fcae2a892cc in kvm_cpu_exec ()
        #3  0x00007fcae2a77cb2 in qemu_kvm_cpu_thread_fn ()
        #4  0x00007fcae122d52a in start_thread (arg=0x7fcac8a3c700) at
        pthread_create.c:310
        #5  0x00007fcad7af577d in clone () at
        ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
        Thread 2 (Thread 0x7fcac3bff700 (LWP 24461)):
        #0  0x00007fcae12351cd in read () at
        ../sysdeps/unix/syscall-template.S:81
        #1  0x00007fcae24b20e9 in spice_backtrace_gstack () at
        ../../../spice-common/common/backtrace.c:99
        #2  0x00007fcae24b2209 in spice_backtrace () at
        ../../../spice-common/common/backtrace.c:130
        #3  0x00007fcae24b97e6 in spice_logv (log_domain=0x7fcae252d9fe "Spice",
        log_level=SPICE_LOG_LEVEL_CRITICAL, strloc=0x7fcae253ff9e
        "../../server/dcc.c:1595", function=0x7fcae2540040 <__FUNCTION__.31779>
        "release_item_before_push", format=0x7fcae25384e2 "invalid item type",
        args=args at entry=0x7fcac3bfe648) at
        ../../../spice-common/common/log.c:108
        #4  0x00007fcae24b9918 in spice_log (log_domain=<optimized out>,
        log_level=<optimized out>, strloc=<optimized out>, function=<optimized
        out>, format=<optimized out>) at ../../../spice-common/common/log.c:123
        #5  0x00007fcae24a5835 in dcc_send_item (dcc=<optimized out>,
        pipe_item=<optimized out>) at ../../server/dcc-send.c:2445
        #6  0x00007fcae2466450 in red_channel_client_push (item=<optimized out>,
        rcc=0x7fcaa80458a0) at ../../server/red_channel.c:596
        #7  0x00007fcae2466450 in red_channel_client_push
        (rcc=rcc at entry=0x7fcaa80458a0) at ../../server/red_channel.c:1358
        #8  0x00007fcae2466f2f in red_channel_client_handle_message
        (rcc=0x7fcaa80458a0) at ../../server/red_channel.c:1575
        #9  0x00007fcae2466f2f in red_channel_client_handle_message
        (rcc=0x7fcaa80458a0, size=<optimized out>, type=<optimized out>,
        message=0x7fcaa8737100) at ../../server/red_channel.c:1552
        #10 0x00007fcae24640b5 in red_channel_client_receive
        (handler=0x7fcaa80499b0, stream=0x7fcae39cda60) at
        ../../server/red_channel.c:304
        #11 0x00007fcae24640b5 in red_channel_client_receive
        (rcc=rcc at entry=0x7fcaa80458a0) at ../../server/red_channel.c:326
        #12 0x00007fcae246689c in red_channel_client_event (fd=<optimized out>,
        event=1, data=0x7fcaa80458a0) at ../../server/red_channel.c:1584
        #13 0x00007fcae24774ec in watch_func (source=<optimized out>,
        condition=<optimized out>, data=0x7fcaa8016090) at
        ../../server/red_worker.c:619
        #14 0x00007fcae0b30aeb in g_main_context_dispatch
        (context=0x7fcae3996e60) at gmain.c:3111
        #15 0x00007fcae0b30aeb in g_main_context_dispatch
        (context=context at entry=0x7fcae3996e60) at gmain.c:3710
        #16 0x00007fcae0b30e88 in g_main_context_iterate
        (context=0x7fcae3996e60, block=block at entry=1, dispatch=dispatch at entry=1,
        self=<optimized out>) at gmain.c:3781
        #17 0x00007fcae0b311b2 in g_main_loop_run (loop=0x7fcaa80008c0) at
        gmain.c:3975
        #18 0x00007fcae24773c3 in red_worker_main (arg=<optimized out>) at
        ../../server/red_worker.c:1756
        #19 0x00007fcae122d52a in start_thread (arg=0x7fcac3bff700) at
        pthread_create.c:310
        #20 0x00007fcad7af577d in clone () at
        ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
        Thread 1 (Thread 0x7fcae28f7a80 (LWP 24458)):
        #0  0x00007fcad7aea2a1 in __GI_ppoll (fds=0x7fcae39d10a0, nfds=7,
        timeout=<optimized out>, sigmask=0x0) at
        ../sysdeps/unix/sysv/linux/ppoll.c:56
        #1  0x00007fcae2cc770c in qemu_poll_ns ()
        #2  0x00007fcae2cc6eb4 in main_loop_wait ()
        #3  0x00007fcae2a505dd in main ()
        Aborted (core dumped)

commit 9fc4514187fadbcb7a85edd192f7809d3d7ba865
Author: Alon Levy <alevy at redhat.com>
Date:   Thu Feb 27 15:44:23 2014 +0200

    tests: test_display_base: use a faster wakeup time to easily test multiple client blocking

commit 50ea75aef8dbff5016049062eb400312e58fe09b
Author: Alon Levy <alevy at redhat.com>
Date:   Thu Feb 27 15:43:59 2014 +0200

    server: multiple clients works ok if we limit the pipe to the slowest client

commit 56c9510555473b6125c3248a05cf955f0c64f510
Author: Yonit Halperin <yhalperi at redhat.com>
Date:   Wed Sep 11 13:31:21 2013 -0400

    red_channel: cleanup of red_channel_client blocking methods
    
    (1) receive timeout as a parameter.
    (2) add a return value and pass the handling
        of failures to the calling routine.

commit 92a9e1ea61356b5709bf770117dc19c756536779
Author: Yonit Halperin <yhalperi at redhat.com>
Date:   Wed Sep 11 13:39:35 2013 -0400

    red_worker: cleanup red_clear_surface_drawables_from_pipes
    
    (1) merge 'force' and 'wait_for_outgoing_item' to one parameter.
        'wait_for_outgoing_item' is a derivative of 'force'.
    (2) move the call to red_wait_outgoing_item to red_clear_surface_drawables_from_pipe

commit 77e6125048854f889e033fd038ad827477ea7f34
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 22:05:55 2013 +0200

    worker: make it clear it returns from process when no cmd

commit 285dd85845321728272a4057d6a627810a94dc88
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:52:08 2013 +0200

    worker: rename process_commands process_display

commit e216fd244bb154bf1967f1104e21966d24bbffaa
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:46:53 2013 +0200

    worker: remove useless QXL_CMD_MESSAGE
    
    Unsecure code shouldn't be compiled in even in debug mode.
    Doesn't seem to be used, and probably should be handled at qemu qxl
    driver level instead.

commit e417ad0b63a4b30e242f9a26eee55e81c8edf598
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:35:59 2013 +0200

    worker: merge handle_new_display_channel

commit 01db77c8f8bfc5bfa087d46226cc9f3e45e6fd1f
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:31:20 2013 +0200

    display: add update_compression() method

commit 3bb413e8a50d35bb0f6ec36c19fd5b746802611c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:23:54 2013 +0200

    worker: move red_process_surface

commit 182b4cc7b7eda12c19a1cdb1db8606b31ca8e088
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:18:38 2013 +0200

    worker: move red_record_command

commit a6cd88e8936d59792d6790f0aa9a76644fb2fe72
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:13:31 2013 +0200

    worker: move red_record_event

commit 52ae657875f4273de70b7d64ebc4449931f959cd
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Oct 3 21:01:38 2013 +0200

    misc cleanups

commit 1d32e6bdeb15372485352ef89ec0e4f86bd2e871
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 18:07:09 2013 +0200

    worker: count in drawable_new()

commit 04e8cc6ce1bb1b3a7bdd7460ed650dd6372b6e97
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:22:38 2013 +0200

    worker: remove some unnecessary inline

commit f50d87fa3b7aac7dcdc20dd44f4fedd99490ec0a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:16:06 2013 +0200

    display: remove some public declarations

commit 49ad3515162c4039db7d04d8722e4ce391c6a8d7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:14:44 2013 +0200

    display: rename detach_streams_behind

commit da392e6a8fe5048a97dc8aae80dd5cc148675328
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:12:46 2013 +0200

    display: fix generate_uid name

commit 51f5c8351f29957c57175017843f777ec78ad276
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:11:10 2013 +0200

    worker: move red_pipes_remove_drawable

commit fef82f03097a67e063e628aa260473bcdf644625
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 17:00:13 2013 +0200

    worker: move current_remove*

commit 2e08ccae9fb62043a11be63140ac2e2f1ed4789f
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Oct 1 16:53:31 2013 +0200

    worker: move more stream functions

commit d76b6c71b4a0609b0ddd26052705c530c60fc11a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 15:00:01 2013 +0200

    server: rename files

commit c48d7e0bc0f4321ba792ceeca8cf5184cfc9cbbe
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 14:57:10 2013 +0200

    server: rename _tmpl files

commit e3d8e01d02bf5e6157866da52d454a88512fc9ce
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 14:51:17 2013 +0200

    server: rename red_common->common

commit a0f271b73ca0e93020a7fd735701b64f4b92dd36
Author: Alon Levy <alevy at redhat.com>
Date:   Thu Oct 31 16:21:22 2013 +0200

    Remove use of INLINE
    
    It's #define'd to 'inline', and only used in the GLZ encoder.

commit f8bbfae3f2dbcb516835973a0476a17ffd04818b
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 14:48:08 2013 +0200

    server: remove useless includes

commit f4de513db710f1cd52f82e5a31540268bea8946d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 14:42:58 2013 +0200

    server: move enum and struct away from red_common

commit 7ffa193f4fb2715914cc6c4560acfd6912008133
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 14:33:25 2013 +0200

    server: cleanups

commit 9580e8a3bedf5e3398f6bbf04890c9c7cc85bdb8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 13:55:39 2013 +0200

    worker: move dcc_send & marshallers to dcc_send.c

commit cd3811506d2ff787588b518d2a696a2a52868927
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 30 13:56:24 2013 +0200

    worker: remove unused fill_rects_clip

commit 245f370a6792235b3e1d80a0fec3221b7b8c50b7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sun Sep 29 03:00:48 2013 +0200

    worker: remove redundant check
    
    The check is done in draw()

commit b61992e49dc18f5791d5a387cb99ce3b0a216d51
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sun Sep 29 02:49:04 2013 +0200

    display: move more logic in add_drawable()

commit f3205f5210956a5c3c8c95389ebd1791da6921b7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 19:29:45 2013 +0200

    worker: move display_channel_update

commit 2536cc30d79a921e02a1b7e63a55fbdd8b8436b5
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 19:22:29 2013 +0200

    display: simplify create_canvas_for_surface

commit b59f6c4465325d6e797e9fcdf3f63da2142aa2d4
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 19:10:03 2013 +0200

    worker: move display_channel_create_surface

commit 9aede0d37f5f7f54095a2af8b6324bba2c977058
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 17:54:44 2013 +0200

    worker: move destroy_surface() familly

commit 08e938dfbdf5380dd9f55af0fc1efc6289d0a423
Author: Alon Levy <alevy at redhat.com>
Date:   Thu Oct 31 15:59:52 2013 +0200

    server/inputs_channel: fix test_display_no_ssl segfault on client disconnect when keyboard never initialized

commit 3a2fcb74f7cee23dd5681faa9100415e866ccc21
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 17:23:02 2013 +0200

    worker: move display_channel_new

commit 5b88e6e33b82dccd9e5373040f29b01690c6b339
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 15:44:38 2013 +0200

    display: reuse code in display_channel_draw_until

commit c30b58b47d4ad7740d62a0cab52c2b4f9ecaab47
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 15:32:07 2013 +0200

    display: factor out current_find_intersects_rect

commit 3b7e1db3874326155bd15668e99f9b0f3ba1daac
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 15:14:32 2013 +0200

    display: factor out draw_until

commit d83f9c44a91506de60f3fceac3c502566fe8c5e0
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 15:06:57 2013 +0200

    worker: move display_channel_draw

commit 024cdd3ceca934732e00740a98a5442d8bef0ef9
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 27 15:01:28 2013 +0200

    worker: s/validate_area/surface_update_dest

commit a3f56362aad6f1a4eea29236b69a74d99ad96372
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 23:12:01 2013 +0200

    worker: rename update_area

commit 064e5d110577402acda27518306df1300549544d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 23:05:06 2013 +0200

    display: replace some dubious asserts

commit bb0a1d97959b247c7880af8308b0cb6cf95adcff
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 23:04:01 2013 +0200

    worker: move drawable_draw

commit 65aa7730d90ca77255dd7ec511cfabdeffa90f26
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 22:53:57 2013 +0200

    worker: move display_channel_free_some

commit 92fbfc6e470cf15de626028b1790bd58c2a42916
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 16:21:58 2013 +0200

    worker: move spice_bitmap_get_line

commit 40e90e22adef304080ab7dd8555f50e3298e0b44
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 15:54:40 2013 +0200

    worker: move dcc_release_item

commit 03bd03e62931177b37de13791c7e7314a3d634c1
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 14:22:15 2013 +0200

    worker: move dcc_handle_migrate_data

commit 192fbb3b7567ecbb55cdc1c49b27acb738557b39
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 14:01:41 2013 +0200

    worker: move dcc_handle_message

commit cdef342b1ecd64656396fba3916ecfb9c2ab33c7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 13:24:23 2013 +0200

    worker: replace some precondition checks

commit 89f0f616f949ae33d1c8393742b417d7e7d9a2ce
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 26 13:18:52 2013 +0200

    worker: generalize surface_dirty_region_to_rects

commit 9e5f5bbffae8a12e63e47794afcc5ec38d98407c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 22:21:35 2013 +0200

    server: remove OpenGL
    
    This is really not supported, requires X11, so better to remove it for
    now. Some day it might be revived, using DRM, ..
    
    Note for later, this could be removed too (not used by client):
    - spice-common/common/ogl_ctx

commit 3926f5d87b46288c4e6cac95ac61b9a9580db639
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 22:18:48 2013 +0200

    stream: minor simplification

commit e689bf7a2cb08d117e40c3e0b5d824847dcc0003
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 22:11:21 2013 +0200

    worker: move stream_agent_stop and friends

commit bd5be9644acb1f840c25df52bb81871d65f3d921
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 21:56:51 2013 +0200

    worker: move dcc_add_surface_area_image

commit 35392b04a27ae447ddadc00c9da2ed66e16ff290
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 21:28:45 2013 +0200

    worker: tidy up cursor_connect a bit

commit 34bd1720d0278b6a0c0cf77cdd2b03893c9eb5ad
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 18:31:39 2013 +0200

    worker: move dcc_add_drawable*

commit 52779010a03999603ed6b0c7fc523a4b4e3a29e5
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 16:12:25 2013 +0200

    worker: improve some pre-conditions

commit e3cd55da8f618a2d93ff9a02d59dc2e71747b9ac
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 16:05:30 2013 +0200

    worker: move attach_stream

commit ea25662f2f9e2c440ab21488d36422f0487c78b8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 16:00:51 2013 +0200

    worker: merge red_draw_qxl_drawable in drawable_draw

commit c98724753a28602cd88cdea8533cc961758dc30c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 15:55:42 2013 +0200

    worker: move stream_clip_item_unref()

commit bd09a6d47cde386dbf5c66389a67ff0eb53714f1
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 18:11:32 2013 +0200

    dcc: change some assert

commit 9a59cbd027efbd4755062268941ba16a7d8b137f
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 18:10:31 2013 +0200

    worker: move dcc_pixmap_cache_add

commit b517bc4e86ef6b8e97072dccfa3307dbd8c6351c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 18:03:04 2013 +0200

    worker: move dcc_freeze_glz

commit e7d562755cceab254f18036e37c205f28ae34000
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 17:29:00 2013 +0200

    worker: move more free_glz_drawable

commit c2a9a682ac457216d805c1c0bf19d28742d5f343
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 16:37:15 2013 +0200

    worker: few function renames

commit 20d7d58b4e8d2c5188ff6d5f46e45f3b828a520e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 16:15:09 2013 +0200

    worker: add display_channel_free_glz_drawables_to_free()

commit 95f9078d653c01073365ddeab7d5e83de7604aca
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 15:40:40 2013 +0200

    worker: move dcc_free_glz_drawable_instance

commit 42a5ae15519a179e86315cbaeff5edd94a8fe29c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 15:24:13 2013 +0200

    worker: simplify GlzDrawableInstanceItem fields name

commit d6ae1fa41b038b9fde606807dea54da7d6debdfe
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 24 15:11:21 2013 +0200

    worker: display_channel_flush_all_surfaces

commit 43be21c02b648122419e622de86c11105e822a44
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 17:05:17 2013 +0200

    worker: move compress to dcc_compress_image()

commit faf97e65aae949e96466b9084b20884e86a59f3c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 16:36:29 2013 +0200

    worker: move display_channel_wait_for_migrate_data

commit f07ddc1daa48249a7e405d09a644aa4da9418669
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 16:29:44 2013 +0200

    worker: move dcc_start()

commit b9f38f9596ceb19284c2517f019d7dd3990dd9ce
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 15:53:05 2013 +0200

    worker: start a DisplayChannelClient unit

commit 841cd877ef6158cbe0b615196ab8377c56c55e3a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 14:52:53 2013 +0200

    worker: painfully move display_channel_add_drawable

commit a7fb0c397e8c4d43b18703096a69fb165e1bb88c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 03:39:25 2013 +0200

    worker: move RED_WORKER_STAT, make it compile again

commit 55cb7e43adca73ab3a86ff28ac262fc94883f8ba
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 02:00:24 2013 +0200

    worker: rename a bit current_add functions

commit d1de2980ec48b3fd33c74558a63cad7e82ea5828
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 01:45:01 2013 +0200

    worker: move some tree container functions

commit 8d782c0818a709ef65cfe3bc5f22fa2362cf3246
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 01:25:59 2013 +0200

    worker: rename {put,ref}_red_drawable

commit dd03137e22d3776362f3cda30b50e8234c1c9e04
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 17 01:15:38 2013 +0200

    worker: move encoders to dcc_encoders

commit 152a8008280143f93bf449172e6332581acf79f2
Author: Christophe Fergeau <cfergeau at redhat.com>
Date:   Thu Feb 13 16:56:59 2014 +0100

    worker: simplify RedCompressBuf
    
    Make sure an allocated buffer is correctly referenced by the marshaller,
    and can't be free and reused by mistake. Simplify the code by using
    GSlice

commit 7b6be5f4d8507315f2a37d700fde7060d8b56f13
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 20:36:51 2013 +0200

    worker: don't use weird RedCompressedBuf nbytes shifting

commit e2a6bd012577432e491a18561e427b3552398a49
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 17:20:40 2013 +0200

    worker: move compression parameters to dcc

commit eabd32a0cc89a58a15e36281c016cdb342190af7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 17:01:24 2013 +0200

    worker s/surfaces_dest/surface_deps

commit c7a680bcf7a689241ea6d90346f481ae65479dcc
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 13:25:07 2013 +0200

    worker: remove cursor channel asserts

commit 658a945f50c689e65fdefbad51763a5e77077260
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 00:13:39 2013 +0200

    worker: group add_memslot

commit e241f73e22c32704d61b196d5af3cc55dfa2f378
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 16 00:11:13 2013 +0200

    worker: make more functions static, kill dead function

commit 096bef23616565684f1b9da0ab8482883ad251b9
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 19:56:46 2013 +0200

    worker: move surfaces
    
    Ok. this one was painful.Note that in some cases, DCC_TO_DC should be
    made safer (there used to be a if !dcc guard in some places, although
    that looks wrong anyway)...

commit 99bf848349bd3170c74a73ad0ac280a62a42d07e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 22:32:22 2013 +0200

    worker: remove useless preload_group_id

commit 10128c43aeb91a0de89ed40191ad068c8fe739ea
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 21:58:29 2013 +0200

    worker: remove some useless counters

commit 3b27a50702976bf92ccc0792ddec35a51cc861a7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 21:51:42 2013 +0200

    worker: move drawable to display

commit 289fcee104d93853b2aa69985ca60117e244029a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 21:10:42 2013 +0200

    worker: move current to display

commit 3d8b9de54ae8a121284e1b4d3a4083009a84f609
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 19:31:04 2013 +0200

    worker: fix some fields access

commit d527588013de1d0d82e379bba27571e844fd699d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 19:03:43 2013 +0200

    worker: move image cache to display

commit caf8bee5779b40f4a1d17667b73f48537e80f47f
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 03:21:28 2013 +0200

    worker: move red_destroy_surface_item()

commit 2f02f77695b2626130b357938912a8f00af36d7d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 03:08:19 2013 +0200

    worker: s/destroy_surface/surface_unref

commit 3868c9667beed3c869fbe32094de233013d47bd4
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 02:40:25 2013 +0200

    Remove dead file

commit 724c0a044c4c0e90bcea32000b0bc7514dbcc07e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sat Sep 14 02:38:49 2013 +0200

    worker: move stream to display channel

commit 71dbabcc1410da19f316f785b7de412196302937
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:49:34 2013 +0200

    worker: use more DCC_TO_WORKER

commit 14c3be1173245492ec9b30c3368ea97c312aa3a0
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:44:20 2013 +0200

    worker: use more RED_CHANNEL_CLIENT

commit 947ff2bada3006c39ca6c1e4f166905d988a80f1
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:39:34 2013 +0200

    worker: use RED_CHANNEL_CLIENT for dcc

commit ac1fe10889813b26bf4f146031c441181c8e6a7e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:25:29 2013 +0200

    worker: move some compress stats to display

commit ffc4f83578965a378a1ba6ff7721dac8ca760f0c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:20:08 2013 +0200

    worker: slowly move to display channel

commit 7f136acf150b4846f97e3932d177e746bdfda8b1
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:16:22 2013 +0200

    worker: move MonitorsConfig to display channel

commit c0e14035e619364180a5759888795539ff4b29d6
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:15:55 2013 +0200

    worker: move DisplayChannel struct

commit 4f5dd7db0df80e297c5bac5d6a612bde12217dbe
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:11:37 2013 +0200

    worker: move remove worker from WORKER_FOREACH_DCC_SAFE

commit 9435c70bde1c4f3d2176c9f38af986636f24b635
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 21:01:24 2013 +0200

    worker: some cleanup

commit 928398424f7929d808382144816883c4e24a2bd2
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 20:52:31 2013 +0200

    worker: s/repoll/poll_tries

commit 053b494617d8ed57c794779bde684bcbc9caa85a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 20:43:05 2013 +0200

    Move monitors_config to display

commit 21871501a005bc789c149e3be6ac4a5f6d0aa21c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 20:01:31 2013 +0200

    worker: misc. set set_client_capabilities_pending in ctor
    
    Not really necessary, but probably better than FALSE anyway.

commit f933f8a8a39133ef46cdd8fe6c6f153575ae62a9
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 19:56:26 2013 +0200

    FIXME hardcoded 58?

commit 58703e1407b094436f76e883c8cbca29e0ad64d8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 19:42:55 2013 +0200

    worker: tried to move dpi functions to display channel, fail

commit ca2a818007de658409960c80d81a13af7c73849c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 18:51:26 2013 +0200

    s/display_channel_client_new/dcc_new

commit 74197c305338ee500c4656b425391c2d86d7e6b4
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 18:11:16 2013 +0200

    worker: move shadow_new() and container_new()

commit be7883a9699c653eb4b257d27cac050018ca4cee
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 18:03:08 2013 +0200

    worker: don't pass delta around

commit 6ab67f09dfd7d050bb72e6b550e0e2871cf807b1
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 18:00:44 2013 +0200

    worker: minor simplification

commit 943d7207a2b2bde54f9a470ff661244ef8983e71
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 16:14:10 2013 +0200

    worker: minor simplifcation

commit 60f2d7ddf312d841c2e8ba3febde83a140e214a3
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:50:42 2014 +0200

    server/red_worker: succeed validate_surface if id is max uint32

commit 0a73002a174a60675cfccedd4d7019e4786de73b
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:49:53 2014 +0200

    server/red_worker: add env SPICE_NOWAIT_CLIENTS

commit c48527bfb72c51e8b37c1cc06f42b972b002b9be
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 15:45:48 2013 +0200

    server: move bitmap related to red_bitmap_utils

commit c265e67f9f158f4fa40ef3e08f1a4239b390e83a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Fri Sep 13 14:17:36 2013 +0200

    Move red_bitmap_utils.h->tmpl.c

commit c56e30c0d2e775f3ecfd6a83a759d172b25a6223
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 19:34:15 2013 +0200

    s/process_drawable/process_draw

commit 3d5bdbc914cf19b8846d84b3c96d533b0042d259
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 19:32:07 2013 +0200

    Replace now() with get_mononotonic_time()

commit e4192fbc661c64432da508705b7856222b5c5777
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 19:16:48 2013 +0200

    worker: make sure we dispatch after releasing items

commit 78f8b44b1611ba64a70ce09d58f2c4b9b8b71904
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 19:11:40 2013 +0200

    channel: minor simplification

commit 1c73dc10900cc2e4fd20ee7d7225db42491a294d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 19:10:36 2013 +0200

    worker: don't process drawable if it can't be allocated

commit ba7037803656fa1adc2430c8a96546de8614db30
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 15:56:03 2013 +0200

    utils: add red_get_monotonic_time()

commit 65f94fa04479cf05d5731bb3191b20b43a7ec538
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 12 15:30:58 2013 +0200

    worker: remove assertion on alloc_drawable
    
    There is no guarantee in the code that this can't be hit, so we should
    cope with it (the condition can be reached easily by running the server
    without waiting for blocked clients or pipe size)
    
    The following commit will attempt to address this.

commit 29bde3475090786277fa8a49ae3f1b7b1602830c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 22:59:31 2013 +0200

    tree-item: move that to a seperate unit

commit ba9012665bb5209da1cff6f5ed6c66ff00479c2b
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 21:35:56 2013 +0200

    Remove PIPE_DEBUG

commit f8f3f3de48153ae1a754c258a50da5b46ee105f8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 21:22:42 2013 +0200

    Remove DRAW_ALL

commit a155ea6160e8e702618acc05c63357d472e4099c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 20:21:44 2013 +0200

    Remove useless pack attribute

commit 9feae117b7ef9382ada3da9e3f28b3a804002044
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 19:51:11 2013 +0200

    Remove ACYCLIC_SURFACE_DEBUG

commit fb9881c3b8fcf9d2f6c64b3107c69af38db654ec
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 10 19:50:06 2013 +0200

    Remove unfinished UPDATE_AREA_BY_TREE

commit 70656a94b18facb7442af72a32f1add53f44232e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Sep 5 00:57:48 2013 +0200

    server: remove unused CursorData

commit 84248547ac1b8adf65c748fee1a6e8c611869648
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 02:51:32 2013 +0200

    server: move display_channel_client_new()

commit 5e94ca80c051a9f0e1526a8ff0a9b4164e214f10
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 01:41:32 2013 +0200

    server: move renderer members to DisplayChannel

commit 279ea766bfe20a9de240bbeb0d46e6af10529fe4
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 01:34:17 2013 +0200

    server: remove dispatching creation of worker channels
    
    Also get rid of pretty bad xread/xwrite macros.

commit 4b7b2a66e07e2ecd65cefe6b8beb12d9a715fe8a
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 01:10:08 2013 +0200

    server: remove srand(time(NULL))
    
    This is clearly not a library responsability.

commit e482e7ca4bc4a8c03f1526ec2503b88a65e9df36
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 01:00:19 2013 +0200

    server: group worker channel related stuff

commit 58c4175159b3578ee0d52c6f1842c8f34dce5d19
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 00:43:10 2013 +0200

    server: remove worker->id

commit 1a2cd7f39fd2c1898661eba2ab771a64ab19c9b7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 4 00:41:14 2013 +0200

    server: rename worker->channel

commit d2a205e63944022ffe55c314685f0690d853dae0
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 3 22:24:44 2013 +0200

    server: make more of cursor private

commit 206548c734844e6037132d9fc0af388fb13ae0d2
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 3 19:35:09 2013 +0200

    server: make cursor channel private

commit 6f76adc3368b570c05e3b2a3bd1c43c8dee16291
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:38:58 2014 +0200

    server: move some cursor code to cursor_channel.c
    
    Also fix warning due to unexpected pipe item type
    
    The specific item type that was not being handled was
    PIPE_ITEM_TYPE_INVAL_ONE (#102). This item type is used by the cursor
    channel, but the analogous item for the display channel is
    PIPE_ITEM_TYPE_INVAL_PALLET_CACHE. Use this value instead.
    
    The exact warning follows:
    
        (/usr/bin/qemu-kvm:24458): Spice-Warning **:
        ../../server/dcc-send.c:2442:dcc_send_item: should not be reached
        (/usr/bin/qemu-kvm:24458): Spice-CRITICAL **:
        ../../server/dcc.c:1595:release_item_before_push: invalid item type

commit 091e46b3932f1ce8726fcaefbfe9064829ce2834
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:38:41 2014 +0200

    server: small move to red_channel

commit 4d5c2376847fc2924b7083c44d6e548cae9f3620
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:36:15 2014 +0200

    server: rename red_client_cache.h to cache_item.tmpl.c

commit 6cb72462c783b9b3deb6bdb95f99ac8f276b72b8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 19:34:04 2014 +0200

    server: split cache_item.h

commit 8f3ee74a528f0ad7da816412f839a419fac85558
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 3 00:21:55 2013 +0200

    server: start separate display/cursor channel headers
    
    Just move some declarations around

commit 383cdf96a2f113db9d214d3451dc50587e764eef
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Tue Sep 3 00:01:04 2013 +0200

    server: move some pixmap cache code in own file
    
    Remove that hideous template header that should really be regular code
    since it's specialized and instanciated only for pixmap.

commit 0a32756df903212588b68e83173c228235e5f0d8
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 22:01:26 2013 +0200

    worker: use GOnce to surround some global init in dispatcher

commit b538cb81baafe6c3081aa1e6486d35596e3ae690
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 21:47:35 2013 +0200

    server: move dispatcher GSource handling code

commit 2657dac36ef5966b7858eb38450b434591b2775c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 21:14:46 2013 +0200

    worker: use a single clockid
    
    The stat functions in worker are not generic enough to deserve to be
    "non-worker", so just pass the worker instance.

commit c98369fb7a3d66a6a0d6dc38efd48fa20d743967
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 20:33:38 2013 +0200

    worker: remove need for WorkerInitData
    
    Move code around to declare and place it where it fits better.

commit 9a247dc7ad8a498f0d7a9e11996e6744e5c28a9d
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 19:47:08 2013 +0200

    server: dispatcher_init/dispatcher_new

commit eda5e2f4ca856bb64f96636b18f44176312b9034
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 19:10:57 2013 +0200

    worker: remove useless MESSAGE_READY
    
    Now that worker is created before running, and run() returns success,
    there is no point in using MESSAGE_READY.

commit 35c36fbe2626e46a428b2534b9447a86ac7df82e
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 18:56:41 2013 +0200

    server: remove worker thread creation from dispatcher

commit 743b024ebfac43ea652943645eb104d6b99ea032
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 17:47:23 2013 +0200

    server: remove hardcoded RED_MAX_RENDERERS

commit 1f022edd15e5c4b003f7dcf59bd124188411c0ca
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 17:39:57 2013 +0200

    server/dispatcher: move worker enums to dispatcher header
    
    Group enums with their respective struct location.

commit 3f2be94422ddfa63517cec875fd5dcdc3a0a18a2
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Wed Sep 25 20:00:04 2013 +0200

    channel: do not free rcc->stream in red_channel_client_disconnect
    
    This fixes the following scary racy corruption after glib loop switch:
    
    ==28173==
    ==28173== Debugger has detached.  Valgrind regains control.  We
    continue.
    ==28173== Invalid read of size 8
    ==28173==    at 0x4C7871E: reds_stream_read (reds.c:4521)
    ==28173==    by 0x4C2F9D7: red_peer_receive (red_channel.c:209)
    ==28173==    by 0x4C2FB59: red_peer_handle_incoming (red_channel.c:255)
    ==28173==    by 0x4C2FF36:
    red_channel_client_receive (red_channel.c:329)
    ==28173==    by 0x4C33D6D: red_channel_client_event (red_channel.c:1577)
    ==28173==    by 0x4C65098: watch_func (red_worker.c:10292)
    ==28173==    by 0x504DDAB: g_io_unix_dispatch (giounix.c:167)
    ==28173==    by 0x4FFACB6: g_main_dispatch (gmain.c:3065)
    ==28173==    by 0x4FFBA0D: g_main_context_dispatch (gmain.c:3641)
    ==28173==    by 0x4FFBBFF: g_main_context_iterate (gmain.c:3712)
    ==28173==    by 0x4FFC028: g_main_loop_run (gmain.c:3906)
    ==28173==    by 0x4C6ABF2: red_worker_main (red_worker.c:12180)
    ==28173==  Address 0x7d688e0 is 32 bytes inside a block of size 160
    free'd
    ==28173==    at 0x4A074C4: free (in
    /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==28173==    by 0x4C78A84: reds_stream_free (reds.c:4594)
    ==28173==    by 0x4C34E2E:
    red_channel_client_disconnect (red_channel.c:1865)
    ==28173==    by 0x4C30363:
    red_channel_client_default_peer_on_error (red_channel.c:417)
    ==28173==    by 0x4C3011B: red_peer_handle_outgoing (red_channel.c:372)
    ==28173==    by 0x4C3305F: red_channel_client_send (red_channel.c:1298)
    ==28173==    by 0x4C33FB6:
    red_channel_client_begin_send_message (red_channel.c:1616)
    ==28173==    by 0x4C5F4B4:
    display_begin_send_message (red_worker.c:8360)
    ==28173==    by 0x4C61DE8: display_channel_send_item (red_worker.c:9164)
    ==28173==    by 0x4C30C69:
    red_channel_client_send_item (red_channel.c:599)
    ==28173==    by 0x4C332BB: red_channel_client_push (red_channel.c:1351)
    ==28173==    by 0x4C33C3A:
    red_channel_client_handle_message (red_channel.c:1545)

commit 1815284947c69233a709da669ba0755e6ab00812
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 14:31:34 2013 +0200

    worker: use glib main loop
    
    Clean up, more extensible.
    
    Avoid server hanging when no client are connected.

commit f8e6ba17d01a6fe46d3e4f434974bb91155d0110
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sun Sep 1 20:36:33 2013 +0200

    server: use more const CoreInterface

commit 10285143b15cca5d399945af66eee4cfdb415de7
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sun Sep 1 18:37:04 2013 +0200

    worker: replace init with red_worker_new

commit 94b5c02bc7fa316300f9b3fee965e8342f9ebcdb
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Sun Sep 1 18:32:07 2013 +0200

    worker: move red_init() functions

commit b9ce5acbff3c017fc25919361f3d2441d7f38f56
Author: Alon Levy <alevy at redhat.com>
Date:   Thu Feb 27 12:14:32 2014 +0200

    server/tests/replay: introduce
    
    usage: replay <cmdfile> <port> <client command line>
    
    will run the commands from cmdfile ignoring timestamps, right after a
    connection is established from the client, and will SIGINT the client
    on end of cmdfile, and exit itself after waiting for the client.
    
    spicy-stats from spice-gtk is useful for testing, it prints the summary
    of the traffic on each channel.
    
    You can also run with no client by doing:
    replay <cmdfile>
    
    For example, the 300 MB file (compressed to 4 MB with xz -9) available
    at [1] produces the following output:
    
    spicy-stats total bytes read:
    total bytes read:
    inputs: 214
    display: 1968983
    cursor: 390
    main: 256373
    
    You could run it directly like so:
    curl http://annarchy.freedesktop.org/~alon/win7_boot_shutdown.cmd.xz | xzcat | server/tests/replay - 12345 `which spicy-stats` -h localhost -p 12345
    
    Known Problems:
    * Implementation is wrong. Should do a single device->host conversion
     (i.e. get_virt), and then marshall/demarshall that (i.e. RedDrawable).
    * segfault on file read done resulting in the above spicy-stats not
     being reproducable (well, up to 1% yes).
    
    [1] http://annarchy.freedesktop.org/~alon/win7_boot_shutdown.cmd.xz
    
    Now based on glib including using an asyncqueue for reading the playback
    file, and proper freeing of the allocated commands, with --slow,
    --compression and a progress timer, and doesn't use more then nsurfaces.

commit 6d6b22c5a83441de9c76f911c78845f65bb843ef
Author: Alon Levy <alevy at redhat.com>
Date:   Fri Jul 1 19:49:42 2011 +0300

    server/red_worker: record to SPICE_WORKER_RECORD_FILENAME
    
    if the environment variable in the title is set and can be
    opened for writing a log of all display commands (no cursor
    commands yet) and any QXLWorker calls (particularily primary
    create and destroy) will be logged to that file, and possible
    to replay using the replay utility introduced later.
    
    For an example file (4 MB download, 300 MB after unpack with xz,
    these 300 MB are themselves reduced from 1.2GB using zlib compression
    for any chunk):
    
    (old file without a header)
    http://annarchy.freedesktop.org/~alon/win7_boot_shutdown.cmd.xz

commit cb273bd7542e6e3953a42b958c97b3a766f4a235
Author: Alon Levy <alevy at redhat.com>
Date:   Fri Jul 1 19:49:42 2011 +0300

    server/red_{record, replay}.[ch]: introduce
    
    Currently hand crafted with some sed scripts and alot of vim macros from
    red_parse_qxl after considering the logger in qemu/hw/qxl-logger.c and seeing
    it was incomplete. The only problem with logging from the server and
    not from qemu is that it requires coordinated shutdown to avoid half a message.
    
    Should be automatically generated from a declarative syntax, i.e. qxl.proto.
    
    Note: zlib compression is introduced in a disabled state, see ZLIB
    define
    
    Now with a simple versioned header and generated ids by the server
    instead of based on the recorded file, and doesn't use more then 1024
    surfaces (configurable).

commit 8084fb77caab07b0e831b851b93d62b0b5723a69
Author: Alon Levy <alevy at redhat.com>
Date:   Wed Jun 6 11:52:53 2012 +0300

    server/dispatcher: add extra_dispatcher, hack for red_record

commit ec793ec32efc48ba4634cd0e387c1dae6598cc39
Author: Alon Levy <alevy at redhat.com>
Date:   Wed Jun 6 11:47:25 2012 +0300

    server/dispatcher: pass message_type to callbacks for consistency

commit e31b0d2c827cf1c440d5557b1c1927576d3cb10c
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Thu Feb 27 14:59:18 2014 +0200

    red_worker: replace some abort()

commit 1ef1535ad332dec7b987babb5d0a85a6d362f7e8
Author: Alon Levy <alevy at redhat.com>
Date:   Wed Aug 21 19:00:43 2013 +0300

    server/red_worker: remove redundant spice_warn_if in validate_surface

commit 5eca83bdb9e6352b859e62e4b0f829dae7ca744d
Author: Alon Levy <alevy at redhat.com>
Date:   Wed Aug 21 19:01:14 2013 +0300

    server/red_worker: red_draw_qxl_drawable: protect from NULL dereference in case of buggy driver (or recording)

commit 38ad813d43eb35e599d9a0ee2439395a66b03ad1
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date:   Tue Aug 27 14:06:42 2013 +0200

    tests: use glib main loop

commit f0cc3b6b830fcb8142aec83142cdfc6d9fb7f492
Author: Marc-André Lureau <marcandre.lureau at gmail.com>
Date:   Mon Sep 2 17:37:56 2013 +0200

    server/util: replace receive/send with xread/xwrite
    
    They are just utils functions around read and write, let's not use
    different naming.

commit 3547ffc278732f706e5ca3c025ffd0962ce91917
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Tue Dec 16 14:50:27 2014 -0600

    Cleanup: move static function declarations out of header
    
    It doesn't make much sense to have static function declarations in a
    header, even a private header. So move them down into the source file.



More information about the Spice-commits mailing list