summaryrefslogtreecommitdiffstats
path: root/server
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.8.20.8.2Alon Levy2011-07-221-1/+1
|
* fix make distcheckChristophe Fergeau2011-07-226-10/+11
|
* server/red_worker: send surface images to client on-demand after S3/4 wakeupYonit Halperin2011-07-211-9/+22
| | | | | | When surfaces are being reloaded to the worker, we will send them to the client only if and when it needs them. (cherry picked from commit 51628f512456cd26c8c6b417be6b34f3889b33d2)
* server/spice.h: bump QXL_MINOR because of QXLWorker and QXLInterface changesAlon Levy2011-07-211-1/+1
| | | | (cherry picked from commit 3be08d68c01618c81e0dff6caab125a53b4c047e)
* server: add QXLWorker.flush_surfaces_async for S3/S4 supportAlon Levy2011-07-215-4/+46
| | | | | | | | | | | | 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. (cherry picked from commit 2a4d97fb780cf3ce2d9060751d0bec2fdc9800a9)
* server: add QXLInterface::update_area_complete callbackAlon Levy2011-07-212-16/+47
| | | | | | when update_area_async is called update_area_complete will be called with the surfaces dirty rectangle list. (cherry picked from commit b26f0532c170068e91e4946592eab2fd9d6cbae5)
* server/red_worker: handle_dev_input: reuse write_ready introduced for asyncAlon Levy2011-07-211-8/+4
| | | | (cherry picked from commit f300de20d9fd7731881ab99c87226fa44a80695b)
* server: add async io supportAlon Levy2011-07-218-91/+360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 (cherry picked from commit 096f49afbf4e83ccee80f58479b3ff05bd355660)
* server: replace redundant code with red_cursor_resetYonit Halperin2011-07-211-47/+24
| | | | | | | In addition (1) make handle_dev_destroy_surfaces call red_release_cursor (2) call red_wait_outgoing_item(cursor_channel) only after adding msgs to pipe [3d3066b175ee2dec8e73c8c56f418a6ae98b1c26 cherry-pick with modifications]
* use foo(void) instead of foo() in prototypesChristophe Fergeau2011-07-217-21/+21
| | | | | | | | In C, the latter isn't a prototype for a function with no arg, but declares a function with an undefined number of args. [picked from master with changes since no main_channel, spice_common, and a bunch of functions aren't there yet]
* server: api: add spice_qxl_* calls based on QXLWorker contentsAlon Levy2011-07-213-31/+226
| | | | | | | | | | | 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. [cherry-picked from master]
* s/__visible__/SPICE_GNUC_VISIBLEChristophe Fergeau2011-07-214-55/+55
| | | | | | | The C specification reserves use of identifiers starting with __ to the compiler so we shouldn't use one such symbol. [cherry-pick from master]
* server: spice-server.syms: move sasl symbols to 0.8.2Alon Levy2011-07-211-0/+6
| | | | [0.8: there are no 0.10.0 symbols]
* Fix spice-server/qemu channel version checksChristophe Fergeau2011-07-211-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When qemu creates a channel, reds.c contains code to check the minor/major channel versions known to QEMU (ie the ones that were current in spice-server when QEMU was compiled) and to compare these versions against the current ones the currently installed spice-server version. According to kraxel [1], the rules for these interface numbers are: "The purpose of the versions is exactly to avoid the need for a new soname. The rules are basically: (1) You add stuff to the interface, strictly append-only to not break binary compatibility. (2) You bump the minor version of the interface. (3) You check the minor version at runtime to figure whenever the added fields contain valid stuff or not. An example is here (core interface, minor goes from 2 to 3, new channel_event callback): http://cgit.freedesktop.org/spice/spice/commit/?id=97f33fa86aa6edd25111b173dc0d9599ac29f879 " The code currently refuses to create a channel if QEMU minor version is less than the current spice-server version. This does not correspond to the intended behaviour, this patch changes to fail is qemu was compiled with a spice-server that is *newer* than the one currently installed. This case is something we cannot support nicely. [1] http://lists.freedesktop.org/archives/spice-devel/2011-July/004440.html
* server: fix access to a released drawable. RHBZ #713474Yonit Halperin2011-07-211-2/+9
| | | | | | | | | red_pipe_add_drawable can lead to removal of drawables from current tree (since it calls red_handle_drawable_surfaces_client_synced), which can also lead to releasing these drawables. Before the fix, red_current_add_equal, called red_pipe_add_drawable, without assuring afterwards that the drawables it refers to are still alive or still in the current tree.
* server: add missing calls to red_handle_drawable_surfaces_client_syncedYonit Halperin2011-07-211-0/+2
| | | | | | red_handle_drawable_surfaces_client_synced was called only from red_pipe_add_drawable, while it should also be called from red_pipe_add_drawable_after. Otherwise, the client might receive a command with a reference to a surface it doesn't hold and crash.
* server: removing local cursor, this solves RHBZ #714801Yonit Halperin2011-07-211-112/+14
| | | | | | | | | | | | | | | When the worker was stoped, the cursor was copied from guest ram to the host ram, and its corresponding qxl command was released. This is unecessary, since the qxl ram still exists (we keep references to the surfaces in the same manner). It also led to BSOD on guest upon migration: the device tracks cursor set commands and it stores a reference to the last one. Then, it replays it to the destination server when migrating to it. However, the command the qxl replayed has already been released from the pci by the original worker, upon STOP. Conflicts: server/red_worker.c
* server/smartcard: register channel only when hardware is availableAlon Levy2011-07-212-6/+9
|
* server/smartcard: handle BaseChannel messagesAlon Levy2011-07-211-0/+5
| | | | | | According to spice.proto the smartcard channel can receive acks and any other message defined in BaseChannel. While the spicec implementation didn't send an ACK spice-gtk does, so handle it.
* server: Unset executable bit of red_tunnel_worker.hZeeshan Ali (Khattak)2011-07-211-0/+0
|
* add missing "LGPLv2.1 or later" header to source filesChristophe Fergeau2011-07-213-0/+51
|
* server/tests remove useless assignmentChristophe Fergeau2011-07-211-1/+0
| | | | This was detected by clang-static-analyzer.
* server: add SASL supportMarc-André Lureau2011-07-213-7/+751
| | | | | | | | | | | | | | | | | 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 Conflicts: server/reds.c server/reds.h
* server: add auth mechanism selectionMarc-André Lureau2011-07-211-4/+64
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: add reds_channel_dispose()Marc-André Lureau2011-07-213-2/+14
| | | | | | | | | | Try to have a common base dispose() method for channels. For now, it just free the caps. Make use of it in snd_worker, and in sync_write() - sync_write() is going to have default caps later on. https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: simplify and constify sync_write()Marc-André Lureau2011-07-211-17/+25
| | | | | | + symplify, improving style of code using it. https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: pull out reds_handle_link(), for future reuseMarc-André Lureau2011-07-211-9/+16
| | | | | | + a couple of indent, style change https://bugs.freedesktop.org/show_bug.cgi?id=34795
* build: add --with-saslMarc-André Lureau2011-07-211-0/+2
| | | | | | | | | | Using cyrus SASL library (same as gtk-vnc/qemu). https://bugs.freedesktop.org/show_bug.cgi?id=34795 Conflicts: configure.ac
* server/reds: make writev fallback more genericMarc-André Lureau2011-07-211-26/+17
| | | | | | We are going to reuse it for SASL/SSF encode write(). https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: rename s/peer/streamMarc-André Lureau2011-07-218-217/+216
| | | | | | | | This is stylish change again. We are talking about a RedStream object, so let's just name the variable "stream" everywhere, to avoid confusion with a non existent RedPeer object. https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server/reds: remove the void* ctx fieldMarc-André Lureau2011-07-212-4/+0
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: use the new reds_stream_{read,write}Marc-André Lureau2011-07-215-61/+53
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: remove cb_free, not needed anymoreMarc-André Lureau2011-07-212-20/+0
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: use reds_{link,stream}_free()Marc-André Lureau2011-07-212-43/+23
| | | | | | Be carefull removing the watch before, like __release_link https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: use reds_stream_remove_watch() helperMarc-André Lureau2011-07-211-8/+4
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: add reds_stream_{read,write,free,remove_watch}()Marc-André Lureau2011-07-215-10/+80
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server: s/RedsStreamContext/RedsStreamMarc-André Lureau2011-07-219-48/+48
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server/reds: remove unused readvMarc-André Lureau2011-07-212-3/+0
| | | | | | Let's not bother with it since nobody uses it, and it's not implemented for SSL anyway https://bugs.freedesktop.org/show_bug.cgi?id=34795
* build: make it silentMarc-André Lureau2011-07-211-3/+3
| | | | | | | | | | | This patch make it easier to spot warnings in compilation. It should work with older versions of automake that don't support silent rules. If you want verbose build, make V=1. Signed-off-by: Uri Lublin <uril@redhat.com> https://bugs.freedesktop.org/show_bug.cgi?id=34795
* server/red_channel: fix segfault on red_channel_destroy if peer already removedAlon Levy2011-07-211-1/+1
|
* server/tests: Makefile.am: use AM_LDFLAGS instead of LDFLAGSAlon Levy2011-07-211-5/+5
|
* server/red_channel: error channel if alloc_msg_buf fails (returns NULL)Alon Levy2011-07-211-0/+5
|
* server: add symbol versioning to the spice server shared library.Gerd Hoffmann2011-07-192-0/+56
| | | | | | | | | | | | This patch adds symbol versions to the spice server library. Each symbol which is exported by libspice-server gets tagged with the (stable) version where it appeared first. This way the linker and rpm are able to figure which version of the spice-server libary is required by a particular qemu binary/package. [ 0.8 branch: drop 0.10 symbols from list ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* server/smartcard: fix use after freeAlon Levy2011-05-241-1/+1
|
* server: make sure we clear vdagent and update mouse mode on agent disconnectHans de Goede2011-04-011-3/+0
| | | | | | | | The check this patch removes causes us to not set vdagent to NULL, nor update the mouse mode when the guest agent disconnects when no client is attached. Which leads to a non working mouse, and on agent reconnect a "spice_server_char_device_add_interface: vdagent already attached" message instead of a successful re-add of the agent interface .
* server: ignore SPICE_MSGC_MAIN_AGENT_START messages when there is no agentHans de Goede2011-04-011-1/+1
| | | | | This can happen for example when a SPICE_MSGC_MAIN_AGENT_START message from the client and the vdagent disconnecting race.
* server: hookup agent-msg-filter discard-all functionalityHans de Goede2011-04-011-33/+23
| | | | | | | This ensures that if the client or agent connects to the client-agent "tunnel" while the other side is halfway through sending a multi part message, the rest of the message gets discarded, and the connecting party starts getting data at the beginning of the next message.
* server: add discard all option to agent message filterHans de Goede2011-04-013-18/+26
|
* server: filter all data from clientHans de Goede2011-04-011-11/+11
| | | | | Filter all data from client, even when there is no agent connected to keep filter state correct.
* server: reset read/write filter on agent/client disconnectHans de Goede2011-04-011-0/+2
| | | | | | The agent message filter keeps track of messages as they are being send reset the relevant filter to its initial state when one of the 2 ends of the agent<->client "tunnel" disconnects.