summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-212-0/+55
| | | | | | | | | | Using cyrus SASL library (same as gtk-vnc/qemu). https://bugs.freedesktop.org/show_bug.cgi?id=34795 Conflicts: configure.ac
* common: add SpiceBuffer - based on qemu-vnc BufferMarc-André Lureau2011-07-212-0/+70
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=34795
* 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-212-3/+5
| | | | | | | | | | | 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
* client/windows: use SPICE_PROTOCOL_DIR in project include dirsArnon Gilboa2011-07-211-4/+4
| | | | | | | | | instead of ..\..\..\spice-protocol. Relative path to another git tree is a bit ugly, since it requires spice-protocol to be in a specific location. SPICE_PROTOCOL_DIR should also be used in windows qxl and vdagent instead of SPICE_COMMON_DIR, which is an old and confusing name, due to the common directory in spice git repo.
* server/red_channel: fix segfault on red_channel_destroy if peer already removedAlon Levy2011-07-211-1/+1
|
* Fixes compilation error of Spice Client (Linux/X11) with OpenGL enabled ↵Thomas Tyminski2011-07-211-3/+3
| | | | modified: client/x11/red_window.cpp
* build: s/HUGE/INFINITY/Gerd Hoffmann2011-07-211-1/+1
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* build: only check for x11 extensions whenGerd Hoffmann2011-07-211-12/+20
| | | | building for x11 platform.
* build: alsa is needed on linux only.Gerd Hoffmann2011-07-211-3/+6
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* 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
|
* spicec: Make loglevel configurable through the environmentHans de Goede2011-07-201-0/+7
| | | | | | | Having a loglevel variable is much more useful if we can actually change its value without a recompile. Use a SPICEC_LOG_LEVEL environment variable so we can do this from the spice xpi / activex too (by setting the environment variable before starting the browser).
* 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>
* client: fix for redundant shift+f11 RHBZ #674532Yonit Halperin2011-06-143-10/+27
| | | | | | | | | | | After shift+F11, both in Windows 7 and xp clients, WM_KEYUP events were missing for SHIFT and F11. For F11 it was less important since unpress_all was preformed for all keys. However, we perform sync for all the keyboard modifiers and the GetKeyboardState returns "down" for shift. In windows7 client, we sometimes received afterwards a F11 KEYDOWN event repetition, and this caused SHIFT+F11 to be called again. Not performing hiding of the windows while changing client resolutions, solved the problem of missing events, and I don't see any difference in how spice looks while toggling to full screen. Using GetAsyncKeyState, returns "UP" for shift in windows 7, and helps avoid performing shift+f11 again, if there is an F11 repetition before we receive the KEYUP event for shift.
* server/smartcard: fix use after freeAlon Levy2011-05-241-1/+1
|
* client/windows: init PACKAGE_VERSIONArnon Gilboa2011-05-242-3/+5
| | | | | in windows, we set PACKAGE_VERSION to the binary version since we don't have config.h as generated by linux configure
* client: fix flipped video in Linux guest on windows client, RHBZ #667689Yonit Halperin2011-05-191-3/+5
| | | | | | Video streams from Linux guests are oriented top-down, where gdi_canvas_put_image always received display context for down-top oriented bitmap. I fixed create_bitmap to consider the stream orientation.
* client: fix return code when missing hostAlon Levy2011-05-121-0/+1
|
* Release 0.8.10.8.1Hans de Goede2011-04-202-1/+10
|
* client: skip spaces in --host-subjectChristophe Fergeau2011-04-201-1/+8
| | | | | | | | | | | | | | | | | | This fixes fdo bug #32896: "Subject in certificates is stored in following format (values separated by comma and space): grep Subject: server-cert.pem | awk -F": " '{print $2}' O=REDHAT, CN=10.34.58.2 While spicec expects that values in host subject are separated only by comma: spicec --host-subject "O=REDHAT,CN=10.34.58.2" " In this case, ignoring spaces make it much easier to directly copy and paste the subject line from certificates.
* client: add --version cmdline option to spicecChristophe Fergeau2011-04-201-1/+9
| | | | This fixes freedesktop bug #33907
* client: s/AVAILIBLE/AVAILABLE in CmdLineParserChristophe Fergeau2011-04-204-5/+5
| | | | It was mispelt in a CmdLineParser enum.
* 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.
* server: break read_from_vdi_port loop if the guest gets disconnectedHans de Goede2011-04-011-1/+1
| | | | | | | read_from_vdi_port calls dispatch_vdi_port data, which will disconnect the guest agent if it sends invalid data. It would then try to read more data from the disconnected guest agent resulting in a NULL ptr dereference, this patch fixes this.
* server: Don't stop writing agent data to the guest when the client disconnectsHans de Goede2011-04-011-2/+2
| | | | | | | | write_to_vdi_port() was checking for reds->agent_state.connected to determine wether it could write queued data. But agent_state.connected reflects if *both* ends are connected. If the client has disconnected, but the guest agent is still connected and some data is still pending (like a final clipboard release from the client), then this data should be written to the guest agent.
* server: Don't reset agent state when the client disconnectsHans de Goede2011-04-011-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were calling reds_reset_vdp on client disconnect, which is not a good idea. reds_reset_vdp does 3 things: 1) It resets the state related to reading chunks from the spicevmc virtio port. If the client disconnects while the guest agent is in the middle of sending a chunk, this will lead to an inconsistent state, and lots of printing of "dispatch_vdi_port_data: invalid port" messages caused by this inconsistent state sometimes followed by a segfault. This can be triggered by copy and pasting something large (say a screenshot) from the guest to the spice-gtk client, as the spice-gtk client currently has a bug causing it to crash when receiving a multi chunk vdagent messages. Without this patch (and with the spice-gtk bug present) I can consistently reproduce this. 2) It clears any buffered writes from the client to the guest still pending because the virtio port cannot consume data fast enough. Since the agent itself is still running fine, throwing away writes for it because the client has disconnected makes no sense. Esp, since on clean exit the client may very well send a clipboard release message directly before closing the connection, and this may get lost this way. 3) It sets client_agent_started to false, this is the only thing which actually makes sense to do on client disconnect. Note that since we no longer reset the vdp state on client disconnect, we must now reset it on agent disconnect even if we don't have a client. So the reds_reset_vdp call in reds_agent_remove() gets moved to the top, above both the agent_state.connected and reds->peer checks which will both fail in the no client case.
* server: Make copy paste support configurableHans de Goede2011-03-242-3/+14
| | | | | | 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.
* spice-server: Add the ability to filter agent messagesHans de Goede2011-03-244-3/+164
|
* spicec-x11: Work around a bug in xselHans de Goede2011-03-231-1/+3
| | | | | | | | | | | | | | | | | | | | Although ICCCM 2.2. Responsibilities of the Selection Owner: http://tronche.com/gui/x/icccm/sec-2.html#s-2.2 Clearly states (about selection notify events): The owner should set the specified selection, target, time, and property arguments to the values received in the SelectionRequest event. xsel sets the selection notify event target member to the incr atom when it is going to send the clipboard data incremental, rather then setting it to the UTF8_STRING atom (which was the target of the SelectionRequest). Work around this (esp as it is likely other programs may get this wrong too) and accept the incr atom as a valid target in a selection notify event. This fixes Alon's test with running: python -c "print list(range(1000))" | xsel -i -b on the client.
* spicec-x11: Don't crash on apps sending bad atoms as TARGETSHans de Goede2011-03-231-12/+16
| | | | | | | | | Some apps (bad xsel, bad!) send invalid Atoms in their TARGETS property, causing spicec to exit because of an XError. This patch makes spicec survive this scenario. For more info on the xsel bug, see: https://bugzilla.redhat.com/show_bug.cgi?id=690214