Age | Commit message (Collapse) | Author | Files | Lines |
|
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"
|
|
|
|
|
|
Commit 85ed268 shouldn't have change spice-common, my bad
|
|
Keep the server property in sync with the session properties
|
|
Add a property to specify if share folder access is read-only.
|
|
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.
|
|
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.
|
|
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.
|
|
Checking if URIs are being parsed and generated correctly.
|
|
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;
|
|
XkbGetKeyboard does not work in XWayland (bfo#89240).
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=89105
|
|
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.
|
|
This virtual method turns out to be unnecessary anymore, and
was never override. channel_reset() is enough.
|
|
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.
|
|
channel_disconnect() virtual method isn't overloaded by any
channel, and can be replaced by the equivalent channel_reset()
when finishing the coroutine.
|
|
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().
|
|
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.
|
|
After coroutine has exited, reset channel state to unconnected,
this allows recycling a channel for reconnection, even in "normal"
disconnect/reconnect cases.
|
|
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.
|
|
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.
|
|
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;
|
|
Silences the runtime warning in virt-viewer and gnome-boxes (bgo#744432):
Gtk-CRITICAL **: gtk_widget_queue_draw_area: assertion 'width >= 0' failed
|
|
Keys should be sent to the guest if the widget has the focus even
when the keyboard grab is released.
|
|
Trivial fix for 6163828e8cb15d539c80cc3f0bfb5008be9b2247:
Channel should be created if the shared-dir property is set.
|
|
libspice-client-glib is useful as a client library on platforms that
don't support GTK.
|
|
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
|
|
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().
|
|
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
|
|
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
|
|
|
|
|
|
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.
|
|
'arive' has a typo, and 'num_drops_on_receive' is clearer.
|
|
spice_session_start_migrating() swaps connection details between 2
SpiceSession instances. Instead of doing it manually, use a macro to do
it for us.
|
|
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
|
|
|
|
|
|
Use & as parameters separators, this is more usual. Remove
trailing one, no further parameters are useful anyway.
|
|
This allows more flexible string building.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
Move to a common place error reporting, after the coroutine exits.
|
|
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
|
|
Make it clear that users of this function must provide additional
sockets for individual channels.
|
|
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()
|
|
|