| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
not connected
"CopyToGuest" and "CopyToGuest" can not work if spice agent is not
connected, e.g. guest does not install or enable spice agent, or spice
server does not create vdagent channel.
In these cases, make those item insensitive.
Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unescaping the whole URI and then parsing it is dangerous as
the unescaping may (for example) add some extra '/' in the URI
which are not part of a path. It's better to do the unescaping later
once the URI has been split in separate components.
This commit unescapes the path, host and query values. Handling escaped
query values is important for usernames/passwords which might contain
chars which are invalid in URIs.
If the host is enclosed in [], it's intentionally not escaped as this
contains an ipv6 URI, and may contain a %zone_id (see RFC4007). This is
consistent with libvirt/libxml2 behaviour, not with what gvfs does.
|
|
|
|
|
|
| |
Otherwise we can be subject to attack via environment variables such
as DBUS_SYSTEM_BUS_ADDRESS.
This addresses CVE-2012-4425 http://seclists.org/oss-sec/2012/q3/470
|
|
|
|
|
|
| |
SpiceCursor::header is only valid when SPICE_CURSOR_FLAGS_NONE is
not set in SpiceCursor::flags, so don't try to log info about
the header before we have tested this flag.
|
|
|
|
|
|
|
| |
It automatically prepends the channel name to the log message
for easier debugging.
Fixes rhbz#822437
|
|
|
|
|
| |
My changes in bug 5bf72a2e had a typo which broke symbol versioning
of libspice-client-gtk.so when -Wl,--version-script is available...
|
|
|
|
|
| |
We need a newer spice-protocol to get the definitions for A8 surfaces.
Without it, compilation is broken.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The 'size' argument to this macro (defined in
spice-protocol/spice/vd_agent.h) is the number of 32 bit elements
available in its first argument. In channel-main.c it's used
most of the time with SpiceMainChannelPrivate::agent_caps which is
an uint32_t[VD_AGENT_CAPS_SIZE]. The 'size' argument to pass to
VD_AGENT_HAS_CAPABILITY is thus the number of elements in this array,
and not sizeof(agent_caps).
Fixes rhbz#837545
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 519f118c7786aa0c16cd2a5f216b52cea4ac42d5.
|
| |
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
| |
|
|
|
|
|
|
|
|
| |
All the real work is done in spice-common, so this is a pretty simple
change.
Conflicts:
spice-common
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
|
|
|
|
|
| |
The X11 backend allocates the "image" with X11 and needs the widget to
be realized before calling spicex_image_create().
https://bugs.freedesktop.org/show_bug.cgi?id=54310
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For some reason the way we remove the "inner" area
when clearing the background doesn't work on one computer.
I don't really know why, but the current approach does seems a
little fragile.
This replaces it with a solid region operation that works on
all my machines.
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
|
|
|
|
|
| |
When this is enabled we never scale displays larger
than their actual size.
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves all the handling of scaling calculations and
positioning of the display inside the widget into one place.
This makes it easier to later change how scaling works.
Also, the new scaling only support aspect-ratio-keeping
scaling.
https://bugs.freedesktop.org/show_bug.cgi?id=54277
|
|
|
|
|
|
| |
The other way round generates warnings:
configure.ac:14: warning: LT_INIT was called before AM_PROG_AR
aclocal.m4:1015: AM_PROG_AR is expanded from...
|
| |
|
| |
|
|
|
|
| |
G_GNUC_DEPRECATED_FOR was introduced in glib 2.26
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Until now, Spice clients only sent separate key events for press and
release. But this may result in unwanted key repetition from guest VM
side. It seems OSes have various implementations. While MS Windows
relies on hardware key repeats (which are several sequential press
events), otoh, X11 uses software key repeat (although not Linux
keyboard/VT by default).
We can't easily disable guest side repeaters, as it may be enforced by
other components (a X11 client can adjust each key individually, or
the desktop settings may change it etc.). Neither can we rely only on
guest software repeater as Windows doesn't seem to have one by
default, so we need to keep sending multiple press events as of today.
It seems a nice way to improve the situation is to send a single
"press&release" key event when the user released the key within a
short delay. If the key is pressed for longer, we keep the existing
behaviour which has been working pretty well so far, sending separate
"press", then repeatedly "press", and an ending "release" event.
v2:
- fix some commit message spelling spotted by Alon & Christophe
- simplify a bit the timer handling code after Hans review
- remove the submodule change (will be updated in earler patch once
pushed upstream)
|
|
|
|
|
|
| |
The delay before the press event is sent to the server if the key is
kept pressed. If the key is released within that time, that delay is
ignored and a single key-press-release event will be sent.
|
|
|
|
|
|
|
| |
- use a more explicit SendKeyType enum
- if the key is a modifier key, we don't want to delay press event
v2: fix compilation (remove down usage)
|
|
|
|
|
|
|
|
|
| |
If the server is capable of SPICE_INPUTS_CAP_SCANCODE, then we send
can send a single message with key press and release, to avoid
unwanted guest side key repeatition due to network jitter.
If the server is not capable, spice-gtk will use some compatibility
mode and send the existing DOWN and UP key events seperately.
|
|
|
|
|
| |
Factor out the keyboard scancode manipulation function, to be reusable
by newer code.
|
| |
|
|
|
|
|
| |
During migration, the smartcard channel that belongs to the temporary
copied session shouldn't be active.
|
|
|
|
|
|
| |
Otherwise, we will not create smartcard/usb channel on the destination
side, and we will create audio channels, no matter if they existed
of didn't exist for the src side.
|
|
|
|
|
|
| |
When swapping the src and dest channels's, we need to keep
the xmit_queue and msg serials. Their state is expected to stay the same
after migration.
|
|
|
|
|
|
|
|
|
| |
sending them to the src before FLUSH_MARK
In order to save migration time, and probably also decrease migration
data size, we push the flush mark to the src server before any other
message. All the other pending msgs will be sent later to the
destination server (see next patch).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Flow:
(1) *src* main channel coroutine (main_handle_migrate_begin_seamless):
handles SPICE_MSG_MAIN_MIGRATE_BEGIN_SEAMLESS; yields to the main loop,
supplying it the destination information needed for connection.
(2) main context (migrate_connect):
Establishes a new session for connecting to the destination.
After all the channels are opened (async), their state, except for
the one of the main channel, is modified to
SPICE_CHANNEL_STATE_MIGRATING (see migrate_channel_event_cb);
no reading is done from the channel during this state.
The dest main channel's state is changed to SPICE_CHANNEL_STATE_MIGRATION_HANDSHAKE
(3) *dest* main channel coroutine: sends to the dest server SPICE_MSGC_MAIN_MIGRATE_DST_DO_SEAMLESS
(see spice_channel_recv_auth)
(4) *dest* main channel coroutine: recevices SPICE_MSG_MAIN_MIGRATE_DST_SEAMLESS_ACK/NACK.
adds main_migrate_handshake_done to the main loop.
(5) main context: when all the dest session channels are connected, and the main channel handshake
is done, we yield to the src main channel coroutine (see
migrate_channel_event_cb and main_migrate_handshake_done)
(6) *src* main channel coroutine: sends to the src server
SPICE_MSGC_MAIN_MIGRATE_(CONNECTED|CONNECTED_SEAMLESS|CONNECT_ERROR)
For more details see spice-protocol. commit
1ad5d259cb4b695ec3106de7ccd082e031e7ae11
|
|
|
|
|
|
| |
Update channel-main as well to support the change made to
SpiceMsgMainMigrationBegin: it now holds all the destination fields
inside SpiceMigrationDstInfo.
|
| |
|
|
|
|
|
| |
SpiceMsgWaitForChannels is not packed. Comparing the original
msg size to SpiceMsgWaitForChannels is wrong.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will fix following error:
$ spicy --spice-debug
......
(spicy:21981): GSpice-DEBUG: spice-session.c:1618 new main channel, switching
(spicy:21981): GSpice-DEBUG: spice-gtk-session.c:811 Changing main channel from (nil) to 0x8534b0
(spicy:21981): GSpice-DEBUG: spicy.c:1587 new channel (#0)
(spicy:21981): GSpice-DEBUG: spicy.c:1590 new main channel
(spicy:21981): GSpice-DEBUG: spice-channel.c:2255 Open coroutine starting 0x8534b0
(spicy:21981): GSpice-DEBUG: spice-channel.c:2098 Started background coroutine 0x853538 for main-1:0
(spicy:21981): GSpice-DEBUG: spice-channel.c:2122 connection failed, trying with TLS port
(spicy:21981): GSpice-DEBUG: spice-channel.c:2126 Connect error
GSpice-Message: main channel: failed to connect
......
When user starts spicy without any command-line arguments, spicy
should not attempt to connected to server automatically because
hostname or port are unknown at the moment.
What this patch changes is to show the dialog window instead of
connecting to server automatically if no hostname or port are found.
Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
|
|
|
|
|
|
|
| |
When --spice-disable-effects is used, error out unless this is
the name of one of the effects we can disable.
Fixes rhbz#818848
|
|
|
|
|
|
|
| |
When --spice-color-depth is used, error out unless the color depth
is 16 or 32.
Fixes rhbz#818847
|
| |
|