summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-03-04build-sys: fix out-of-tree build from tarballv0.28Marc-André Lureau1-1/+3
There are generated files in build directory too. Fixes: CC util.o In file included from ../../tests/session.c:3:0: ../../gtk/spice-session.h:24:30: fatal error: spice-glib-enums.h: No such file or directory #include "spice-glib-enums.h"
2015-03-04Prepare v0.28 releaseMarc-André Lureau1-0/+19
2015-03-03build-sys: fix required libsoup version for webdav supportMarc-André Lureau1-1/+1
2015-03-03Revert spice-common changeMarc-André Lureau1-0/+0
Commit 85ed268 shouldn't have change spice-common, my bad
2015-03-03session: bind path and read-only to webdav serverMarc-André Lureau1-2/+11
Keep the server property in sync with the session properties
2015-03-03session: add share-dir-ro propertyMarc-André Lureau1-0/+25
Add a property to specify if share folder access is read-only.
2015-03-03webdav: use a pipe to connect to serverMarc-André Lureau1-21/+62
Instead of listening on TCP sockets, and proxying connections there, make the webdav server accept new connections from stream. The streams are user-space GIOStream pipe, one side is connected to the Spice webdav channel muxer/demuxer, the other side is a SoupSocket client. This makes the server not exposed any local public access, avoid the need for server threads, or proxying the connections through system sockets.
2015-03-03Use libphodav-2 (breaks webdav server temporarily)Marc-André Lureau4-201/+26
This change breaks webdav server, since libphodav-2 no longer set up a TCP service running in a thread. It's up to the client to decide how best to accept and handle new connections. This commits remove all the hacks related to proxying the incoming connections to a TCP socket, and protected with a magic sequence. The following commit will use GIOStream pipes to handle each client connections.
2015-03-03Add GIOStream-based pipeMarc-André Lureau6-1/+834
This code creates a pipe between 2 GIOStream, the input side read from the peer output side, and vice-versa. In the following patches, this will avoid the socket communication to exchange with the embedded webdav server. glib-2.0 >= 2.43.90 because GSimpleIOStream dependency.
2015-02-27tests: add spice-session testVictor Toso2-0/+76
Checking if URIs are being parsed and generated correctly.
2015-02-27session: accept argument in URI without valueVictor Toso1-2/+18
The examples below should be considered valid URIs: e.g: spice://localhost?port=5900&tls-port= e.g: spice://localhost?tls-port=&port=5900 This patch deals with arguments with empty value;
2015-02-23vncdisplaykeymap: Use XkbGetMap and XkbGetNames instead of XkbGetKeyboardPavel Grunt1-4/+5
XkbGetKeyboard does not work in XWayland (bfo#89240). Fixes https://bugs.freedesktop.org/show_bug.cgi?id=89105
2015-02-18session: reset connection_id on switch-hostMarc-André Lureau1-0/+1
The server expects no connection_id during link time, in order to realize a full reconnection. The alternative would be to assume that the destination server has the exact same channels and attempt to recreate and to reconnect them one by one. However, if the destination is slightly different (say, configuration or order of channels differs), this will likely fail. It's best to start with a new session without prior knowledge.
2015-02-18channel: remove unused ChannelClass::channel_disconnect()Marc-André Lureau2-20/+1
This virtual method turns out to be unnecessary anymore, and was never override. channel_reset() is enough.
2015-02-18channel: set c->has_error to finish coroutineMarc-André Lureau1-1/+1
It's unnecessary to call channel_disconnect() to finish the coroutine and disconnect. Use c->has_error instead, like the rest of channel error code.
2015-02-18Call channel_reset() directly when finishing coroutineMarc-André Lureau1-1/+1
channel_disconnect() virtual method isn't overloaded by any channel, and can be replaced by the equivalent channel_reset() when finishing the coroutine.
2015-02-18channel: reset migration state when calling channel_reset()Marc-André Lureau1-5/+4
channel_reset() is called in channel_disconnect(). We can just move that state change in channel_reset() in order to get rid of channel_disconnect().
2015-02-18channel: use exisiting reconnection code when switchingMarc-André Lureau1-2/+2
Switching for migration reason is similar to a reconnection during initial connection. A notable difference is that new code path doesn't schedule a delayed_unref callback. This is fine since the channel is still running and delayed_unref is mainly used for signaling disconnections and none should be emitted when switching.
2015-02-18channel: reset channel state to unconnectedMarc-André Lureau1-1/+2
After coroutine has exited, reset channel state to unconnected, this allows recycling a channel for reconnection, even in "normal" disconnect/reconnect cases.
2015-02-18channel: remove useless preconditionMarc-André Lureau1-1/+0
This precondition isn't useful, since the channel is already dereferenced before, and I've never seen an idle callback not passing the user_data correctly.
2015-02-18channel: emit close event when coroutine has finishedMarc-André Lureau1-3/+4
Move signaling of closed channel after the coroutine has exited in delayed_unref callback, similarly to error events, so it's easier to schedule reconnect since coroutine has terminated.
2015-02-16channel-port: Remove dependency cycleJavier Celaya1-1/+1
channel-port.h includes spice-client.h, that includes channel-webdav.h, that includes channel-port.h again. It's enough if channel-port.h includes spice-channel.h Without this change, if one tries to build a source file which only includes spice-port.h, the build fails with: In file included from /usr/include/spice-client-glib-2.0/spice-client.h:46:0, from /usr/include/spice-client-glib-2.0/channel-port.h:22, from ./port.c:1: /usr/include/spice-client-glib-2.0/channel-webdav.h:44:5: error: unknown type name 'SpicePortChannel' SpicePortChannel parent; ^ /usr/include/spice-client-glib-2.0/channel-webdav.h:58:5: error: unknown type name 'SpicePortChannelClass' SpicePortChannelClass parent_class;
2015-02-16widget: Do not draw cursor if widget is not realizedPavel Grunt1-0/+3
Silences the runtime warning in virt-viewer and gnome-boxes (bgo#744432): Gtk-CRITICAL **: gtk_widget_queue_draw_area: assertion 'width >= 0' failed
2015-02-12widget: Send keys to guest when keyboard grab is releasedPavel Grunt1-3/+0
Keys should be sent to the guest if the widget has the focus even when the keyboard grab is released.
2015-02-06webdav: fix checking for shared directory propertyMarc-André Lureau1-1/+1
Trivial fix for 6163828e8cb15d539c80cc3f0bfb5008be9b2247: Channel should be created if the shared-dir property is set.
2015-02-06Don't build libspice-client-gtk if configured --without-gtkBenjamin Gilbert4-11/+32
libspice-client-glib is useful as a client library on platforms that don't support GTK.
2015-02-06Update git submoduleChristophe Fergeau1-0/+0
This fixes build with mingw as well as lz4 support: 3aad79d LZ4: Do not include arpa/inet.h in Windows builds 9287e53 LZ4: Add support for 24bit pixman surfaces d167e2e LZ4: Fix the row alignment when it is not on a 32bit boundary f76fc28 LZ4: Decode the image format from the stream 83c0d64 LZ4: Adjust reading the top_down flag 6049db4 LZ4: Fix output buffer size ac26fd7 Remove redundant #if defined(SW_CANVAS_CACHE) || defined(SW_CANVAS_IMAGE_CACHE) 062bf67 Remove unused 'invers' arg from canvas_get_* 619b995 common: fix build with mingw 862b9b1 build-sys: Move pixman check to m4 macro 137b1a5 build-sys: Move opengl check to m4 macro f9e0a64 build-sys: Move opus check to m4 macro dd57d05 build-sys: Move celt check to m4 macro fb3fe22 build-sys: Move smartcard check to m4 macro df74a17 build-sys: Move posix checks to a separate m4 macro 2f1ba3b build-sys: Add fallback for AS_VAR_APPEND 2195369 build-sys: Small cleanup of AM_CPPFLAGS ed873a9 build-sys: Remove unused WITH_SMARTCARD conditional 2da14b6 build-sys: Remove unused win32 check 5bfa9ca build-sys: Remove unused X check 268d3e3 Remove unused header file
2015-01-29Don't set SpiceSession::cmain twice during migrationChristophe Fergeau1-2/+1
During migration, migrate_connect() ends with: spice_session_set_main_channel(mig->session, migrate_channel_connect(mig, SPICE_CHANNEL_MAIN, 0)); migrate_channel_connect() calls spice_channel_new() which will create a new SpiceMainChannel instance. spice_channel_constructed() will be called during this instanciation, which will call spice_session_channel_new(), which will set SpiceSession::cmain for SpiceMainChannel instances. When calling spice_session_set_main_channel(), SpiceSession::cmain will thus already be set, which causes a runtime warning as spice_session_set_main_channel() has a precondition checking that SpiceSession::cmain is not set already. This commit removes the call to spice_session_set_main_channel() from migrate_connect() as this call is not doing anything more than the call to migrate_channel_connect().
2015-01-29Remove runtime warning when setting a NULL shared-dirChristophe Fergeau1-1/+0
Now that the webdav channel can cope with a NULL shared dir (by not creating the webdav server), we no longer need to reject NULL shared directories with a warning. This fixes part of https://bugzilla.redhat.com/show_bug.cgi?id=1175721
2015-01-29webdav: Cope with NULL SpiceSession::shared-dirChristophe Fergeau2-2/+11
shared-dir default value is g_get_user_special_dir(G_USER_DIRECTORY_PUBLIC_SHARE) which can be NULL (for example if ~/.config/user-dirs.dirs does not exist). This commit makes sure we don't create a PhodavServer when this occurs
2015-01-29display: Fix 'exisiting' typo in debug logChristophe Fergeau1-1/+1
2015-01-29display: s/dropin/dropping in debug messageChristophe Fergeau1-1/+1
2015-01-29session: Add more debugging logsChristophe Fergeau1-5/+14
Initial SPICE connection can sometimes fail without clear indications where/how it failed. This commit adds more debug logs/more accurate logs in order to help narrow down such issues.
2015-01-29display: Improve DisplayChannel::num_drops_on_arive nameChristophe Fergeau2-6/+6
'arive' has a typo, and 'num_drops_on_receive' is clearer.
2015-01-29Use macro to swap data in spice_session_start_migrating()Christophe Fergeau1-16/+14
spice_session_start_migrating() swaps connection details between 2 SpiceSession instances. Instead of doing it manually, use a macro to do it for us.
2015-01-29desktop-integration: check owner of bus namePavel Grunt1-0/+7
It avoids calling D-Bus methods when the bus name "org.gnome.SessionManager" does not exist. Silences: GSpice-WARNING **: Error calling 'org.gnome.SessionManager.Inhibit': GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
2015-01-27spicy: deal with spice+unix:// URIMarc-André Lureau1-5/+11
2015-01-27session: teach spice_uri_create() about UNIX pathMarc-André Lureau1-1/+3
2015-01-27session: prettify query parametersMarc-André Lureau1-2/+2
Use & as parameters separators, this is more usual. Remove trailing one, no further parameters are useful anyway.
2015-01-27session: return allocated string from spice_uri_create()Marc-André Lureau1-14/+17
This allows more flexible string building.
2015-01-27session: parse spice+unix:// URIMarc-André Lureau1-1/+11
2015-01-27session: connect to UNIX pathMarc-André Lureau1-16/+40
2015-01-27session: add unix-path propertyMarc-André Lureau1-1/+34
2015-01-27channel: reset connection state on errorMarc-André Lureau1-0/+1
Fix regression introduced in 6b475802, to permit reconnection on error, the channel state must be < STATE_CONNECTING. Since the error is reported after coroutine exits and channel is reset, the state can be modified before throwing the error now.
2015-01-27channel: reset tls state when client calls connectMarc-André Lureau1-5/+7
The channel TLS state is kept during disconnection and reset, for automatic reconnection and migrations reasons. However, when spice_channel_connect() is called by client, it should first try non-TLS connection.
2015-01-27channel: delay event report to after coroutine exitMarc-André Lureau2-20/+24
Move to a common place error reporting, after the coroutine exits.
2015-01-23spice-widget: Don't return early from focus_in_event when widget is not realizedPavel Grunt1-4/+3
Otherwise SpiceDisplay might not get the keyboard grab. It also silence GSpice-CRITICAL on focus out event: GSpice-CRITICAL **: spice_gtk_session_request_auto_usbredir: assertion 's->auto_usbredir_reqs > 0' failed
2015-01-16session: Improved docs for spice_session_connect()Zeeshan Ali (Khattak)1-1/+9
Make it clear that users of this function must provide additional sockets for individual channels.
2015-01-08inputs: Correct documentation of scancode argumentsBenjamin Gilbert1-5/+8
AT scancodes" implies AT set 2, but the SPICE protocol expects AT set 1. spice-gtk additionally expects a mangled version of set 1 scancodes, which are then unmangled by spice_make_scancode()
2015-01-06README: update gstreamer infoFabiano Fidêncio1-2/+2