summaryrefslogtreecommitdiffstats
path: root/server/spice.h
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.10.1Hans de Goede2012-01-231-1/+1
|
* Allow auth to be skipped when attaching to pre-accepted clientsDaniel P. Berrange2012-01-091-2/+2
| | | | | | | | | | | When an applications passes in a pre-accepted socket for a client, they may well have already performed suitable authentication out of band. They should thus have the option to request that any spice authentication is skipped. * server/reds.c, spice.h: Add flag for skipping auth Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Add APIs for injecting a client connection socketDaniel P. Berrange2012-01-091-0/+3
| | | | | | | | | | | Allow applications to pass a pre-accepted client socket file descriptor in. The new APIs are spice_server_add_ssl_client and spice_server_add_client * server/reds.c: Implement new APIs * server/spice.h: Define new APIs Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* server/spice.h: semi-seamless migration interface, RHBZ #738266Yonit Halperin2011-11-021-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | semi-seamless migration details: migration source side --------------------- (1) spice_server_migrate_connect (*): tell client to link to the target side - send SPICE_MSG_MAIN_MIGRATE_BEGIN. This should be called upon client_migrate_info cmd. client_migrate_info is asynchronous. (2) Complete spice_server_migrate_connect only when the client has been connected to the target - wait for SPICE_MSGC_MAIN_MIGRATE_(CONNECTED|CONNECT_ERROR) or a timeout. (3) spice_server_migrate_end: tell client migration it can switch to the target - send SPICE_MSG_MAIN_MIGRATE_END. (4) client cleans up all data related to the connection to the source and switches to the target. It sends SPICE_MSGC_MAIN_MIGRATE_END. migration target side --------------------- (1) the server identifies itself as a migraiton target since the client is linked with (connection_id != 0) (2) server doesn't start the channels' logic (channel->link) till it receives SPICE_MSGC_MAIN_MIGRATE_END from the client. * After migration starts, the target qemu is blocked and cannot accept new spice client connections. Thus, we trigger the connection to the target upon client_migrate_info command. (cherry picked from commit 6e56bea67c5648b0c81990171d4bc0cf1a402043 branch 0.8) Conflicts: server/spice.h
* server: add public spice_server_get_num_clientsAlon Levy2011-08-231-0/+3
|
* Bump version in server/spice,h to 0.9.1Hans de Goede2011-07-261-1/+1
| | | | | | | | It is a bit early to bump, since a 0.9.1 release is not happening yet, but this allows me to test if the vdagent SpiceCharInterface state callback fixes are present or not in qemu code, and thus disabling the ugly vdagent specific workaround from spice-qemu-char.c when compiling against a new enough spice-server.
* server/spice.h: bump QXL_MINOR because of QXLWorker and QXLInterface changesAlon Levy2011-07-201-1/+1
|
* server: add QXLWorker.flush_surfaces_async for S3/S4 supportAlon Levy2011-07-201-0/+2
| | | | | | | | | | | This does the following, all to remove any referenced memory on the pci bars: flush_all_qxl_commands(worker); flush_all_surfaces(worker); red_wait_outgoing_item((RedChannel *)worker->display_channel); red_wait_outgoing_item((RedChannel *)worker->cursor_channel); The added api is specifically async, i.e. it calls async_complete when done.
* server: add QXLInterface::update_area_complete callbackAlon Levy2011-07-201-0/+3
| | | | | when update_area_async is called update_area_complete will be called with the surfaces dirty rectangle list.
* server: add async io supportAlon Levy2011-07-201-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | The new _ASYNC io's in qxl_dev listed at the end get six new api functions, and an additional callback function "async_complete". When the async version of a specific io is used, completion is notified by calling async_complete, and no READY message is written or expected by the dispatcher. update_area has been changed to push QXLRects to the worker thread, where the conversion to SpiceRect takes place. A cookie has been added to each async call to QXLWorker, and is passed back via async_complete. Added api: QXLWorker: update_area_async add_memslot_async destroy_surfaces_async destroy_primary_surface_async create_primary_surface_async destroy_surface_wait_async QXLInterface: async_complete
* server: api: add spice_qxl_* calls based on QXLWorker contentsAlon Levy2011-07-201-0/+20
| | | | | | | | | For each callback in QXLWorker, for example QXLWorker::update_area, add a direct call named spice_qxl_update_area. This will (a) remove the pointless indirection and (b) make shared library versioning alot easier as we'll get new linker symbols which we can tag with the version they appeared in the shared library.
* sndworker: add AudioVolume/AudioMute messagesMarc-André Lureau2011-06-221-2/+8
| | | | | | | | | | | | | | | | | | | These messages allow the guest to send the audio device volume to the client. It uses an arbitrary scale of 16bits, which works good enough for now. Save VolumeState in {Playback,Record}State, so that we can send the current volume on channel connection. Note about future improvements: - add exact dB support - add client to guest volume change Updated since v2: - bumped record and playback interface minor version to allow conditional compilation Updated since v1: - sync record volume on connection too
* server: bump SPICE_SERVER_VERSION to 0.9.0Marc-André Lureau2011-05-081-1/+1
| | | | SASL functions will be released with 0.9.0
* server: Make copy paste support configurableHans de Goede2011-03-241-1/+2
| | | | | | Also bump SPICE_SERVER_VERSION to 0x000801 as 0.8.1 will be the first version with the new API for this, and we need to be able to detect the presence of this API in qemu.
* server: add SASL supportMarc-André Lureau2011-02-281-0/+2
| | | | | | | | | | | | We introduce 2 public functions to integrate with the library user. spice_server_set_sasl() - turn on SASL spice_server_set_sasl_appname() - specify the name of the app (It is used for where to find the default configuration file) The patch for QEMU is on its way. https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: Update SPICE_SERVER_VERSIONHans de Goede2010-12-171-1/+1
|
* server: Update SPICE_SERVER_VERSIONHans de Goede2010-12-171-1/+1
|
* move chardevs out of experimentalGerd Hoffmann2010-12-161-0/+26
| | | | | | | | While we are at it: There is no reason for chardev support to stay in the experimental area, so move it out. qemu should not need the "spice-experimental.h" file. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* move switch-host migration out of experimentalGerd Hoffmann2010-12-161-0/+7
| | | | | | | seamless stays in the experimental area. comments updates too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* Release 0.6.30.6.3Hans de Goede2010-10-181-1/+1
|
* Bump version to 0.6.20.6.2Hans de Goede2010-10-181-1/+1
|
* server: add channel notifications.Gerd Hoffmann2010-10-121-1/+18
| | | | | | | | | | | | | This patch adds a channel event callback to the spice core interface. This new callback will be called for three events: (1) A new connection has been established. (2) The channel is ready (i.e. authentication is done, link message verification passed all tests, channel is ready to use). (3) Channel was disconnected. Qemu will use this to send notifications to the management app.
* Add API to turn on backwards compatibility modeAlexander Larsson2010-09-021-0/+13
| | | | | | | | | | | | | | | | | | When upgrading a cluster of machines you typically do this by upgrading a set of machines at a time, making the new machines run the new software version, but in a fashion compatible with the old versions (in terms of e.g. migration). Then when all machines are upgrades, any new features in the new version can be enabled. This API allows qemu to limit the set of features that spice uses to those compatible with an older version, in order to do an upgrade like this. Right now it doesn't really do much, since we don't keep compat with 0.4.0 atm (although that may be added later). There is no guarantee that any future version of spice support being compatible with any previous version. However, we will always support compatibility with the previous major version so that clusters can be upgraded step by step.
* Bump versions.Gerd Hoffmann2010-08-301-1/+1
| | | | | | Update #define in server/spice.h in preparation for the 0.6.0 release. We also got some new functions, thus we have to increate the shared lib minor number for spice-server.
* Add config functions.Gerd Hoffmann2010-08-301-0/+11
| | | | | | A bunch of configuration functions where never ported forward from rhel-6 to upstream. Add them so we can add qemu config options for these settings.
* add SPICE_SERVER_VERSIONGerd Hoffmann2010-07-141-0/+2
| | | | Allow to ifdef features which depend on a certain libspice-server release.
* server: enabling/disabling jpeg and zlib-over-glz via spice command line argsYonit Halperin2010-07-141-0/+10
|
* server: Remove unnecessary pci id/rev checksAlexander Larsson2010-07-081-4/+0
| | | | | | There is no need to check the pci ids or revisions. Thats a contract between qemu and the driver, and spice need not care, as long as we get the right data from qemu.
* remove QXLInterface->has_command()Gerd Hoffmann2010-07-081-1/+0
| | | | Not used any more, zap it before rolling up a release tarball.
* qxl abi: parse QXLRect.Gerd Hoffmann2010-06-291-4/+2
|
* add spice-experimental.hGerd Hoffmann2010-05-191-63/+0
| | | | | | | | Supposed to be used for work-in-progress bits, where interfaces are not finalized yet. Moved over vdi port interface, tunnel interface and spice client migration functions.
* zap vd_interface.hGerd Hoffmann2010-05-191-3/+343
| | | | move over content to spice.h
* migration: new apiGerd Hoffmann2010-05-191-0/+12
| | | | Add new API for migration, based on what RHEL-6 has.
* kill spice_server_set_mouse_absoluteGerd Hoffmann2010-05-191-2/+0
| | | | Not needed. Just register/unregister the tablet interface instead.
* QXL: redesign.Gerd Hoffmann2010-05-191-2/+1
|
* KeyboardInterface: redesign.Gerd Hoffmann2010-05-191-1/+1
| | | | | | | | | This is the direction I wanna take with all interfaces: Clearly separate interface (aka version information and function pointers) and state information. SpiceKbdInterface defines the interface, SpiceKbdInstance maintains per-instance state information. Keyboard hasn't much beside a pointer to SpiceKbdInterface, for other interfaces this very likely will be different.
* s/CoreInterface/SpiceCoreInterface/Gerd Hoffmann2010-05-191-4/+1
|
* VDInterface: redesign.Gerd Hoffmann2010-05-191-3/+5
| | | | | | | | | | | | VDInterface has been renamed to SpiceBaseInterface. Dropped base_version element, shlib versioning should be used instead. Dropped id element, it is passed to spice_server_add_interface() instead. Now SpiceBaseInterface has static information only, multiple interface instances can share it. Added SpiceBaseInstance struct for maintaining per-instance state information. Adapted spice_server_{add,remove}_interface() functions to the new world.
* channel security cleanupGerd Hoffmann2010-05-191-15/+1
| | | | | | | | - drop spice_channel_name_t enum, use spice-protocol defines instead. - switch spice_server_set_channel_security() channel parameter from enum to string. - drop spice_server_set_default_channel_security(), use spice_server_set_channel_security with channel == NULL instead.
* zap spice_parse_args + spice_usage_strGerd Hoffmann2010-05-191-3/+0
| | | | First step to throw out the old interface.
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-131-9/+9
|
* new libspice api: spice_server_add_get_{sock, peer}_info()Gerd Hoffmann2010-03-181-0/+4
|
* new libspice api: spice_server_add_renderer()Gerd Hoffmann2010-03-181-0/+2
|
* new libspice api: add spice_server_set_mouse_absolute()Gerd Hoffmann2010-03-091-0/+2
|
* new libspice api: add spice_server_set_channel_security()Gerd Hoffmann2010-03-091-0/+4
|
* new libspice api: make spice_channel_name_t part of the public api.Gerd Hoffmann2010-03-091-0/+15
|
* new libspice api: add spice_server_{get, set}_image_compression()Gerd Hoffmann2010-03-091-0/+4
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* new libspice api: make image_compression_t part of the public api.Gerd Hoffmann2010-03-091-0/+10
|
* new libspice api: configure listen addr, add ipv6 supporGerd Hoffmann2010-03-091-0/+4
|
* new libspice api: configure tlsGerd Hoffmann2010-03-091-0/+4
|