Commit Graph

720 Commits

Author SHA1 Message Date
Hans de Goede
6696914bd9 spicec-x11: Work around a bug in xsel
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.
2011-03-23 17:50:05 +01:00
Hans de Goede
69067b14e0 spicec-x11: Don't crash on apps sending bad atoms as TARGETS
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
2011-03-23 17:49:57 +01:00
Hans de Goede
b30f8b877c client: Don't handle hotkeys while sticky alt is active
In some cases rhev-m changes the hotkey for releasing the mouse grab
to ctrl + alt. This makes it impossible to send ctrl + alt + other-key
to the guest, even when using sticky alt.

What happens is:
-press alt until sticky alt activates
-release alt (but recorded state stays pressed due to sticky alt)
-press ctrl
-hotkey code sees ctrl+alt pressed, releases mouse grab
-mouse grab release code does an unpress all -> end of sticky state.

This patch makes it possible to atleast send ctrl + alt + del (or other key)
using sticky alt. Note: even with this patch it is still a bad idea to
use ctrl + alt as hotkey combi.
2011-03-11 15:31:27 +01:00
Alon Levy
5315888a70 server/reds: allow call to reds_agent_remove even if it is gone
The current assert(reds->agent_state.connected) tiggers if when
the agent disconnected there was still data waiting to be sent (for
instance if there is a bug in the client handling clipboard and it
is killed while a large clipboard transfer is in progress). So first
call to reds_agent_remove happens from spice_server_char_device_remove_interface,
and then it is called again (triggering the assert) from free_item_data
from read_from_vdi_port because of the channel destruction.

Other option would be to not call it from one of the paths - but that
is suboptimal:
 * if there is no data in the pipe, the second call never happens.
 * the second call has to be there anyway, because it may fail during
  parsing data from the agent.

This patch fixes a segfault on this assert when a client starts passing
from guest agent to client a large clipboard and dies in the middle. There
is still another assert happening occasionally at marshaller which I don't
have a fix for (but it doesn't seem to be related).
2011-03-08 21:49:21 +02:00
Alon Levy
e1ec222e8b client/smartcard: handle the --smartcard-db option 2011-03-08 21:19:23 +02:00
Hans de Goede
7fd8b7c971 Release 0.8.0 2011-03-01 19:40:36 +02:00
Hans de Goede
1a20edffed x11: Use _exit rather then exit on X errors (rhbz#680763)
This avoids us trying to restore the original resolution when we're fullscreen
and an X error happens. As restoring fullscreen is a bad idea then as this
involves making more X calls, which can get us stuck (in side an XLockDisplay
call for example).
2011-03-01 19:40:36 +02:00
Uri Lublin
eda812f0d7 client: exit nicely for --controller with no SPICE_XPI_SOCKET (rhbz#644292)
When starting spicec with --controller, SPICE_XPI_SOCKET environment
variable must be defined so spicec and the controller can be connected.
2011-03-01 19:40:36 +02:00
Hans de Goede
a0996e0f70 Fix keyb modifiers not syncing from client to client os (rhbz#679467) 2011-03-01 19:40:36 +02:00
Gerd Hoffmann
aa827c5b99 fix spice-server segfault on migration
spice-server tries to use the migration information without checking
whenever this is available in the first place ...

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2011-02-15 11:24:28 +01:00
Hans de Goede
822fea8b32 Release 0.7.3 2011-02-11 15:37:54 +01:00
Hans de Goede
f173a38de7 Drop static_title.bmp from windows/Makefile.am 2011-02-11 15:37:54 +01:00
Alon Levy
09d843ccb6 update required minimal libcacard to 0.1.2 2011-02-10 10:35:04 +02:00
Alon Levy
f94d08cf3f client/smartcard: libcacard dropped ReaderAddResponse
uses VSC_Error with code==VSC_SUCCESS instead. This means that the VSC_Error
message is overloaded. Instead of the other option of adding a message id,
since the connection is TCP so no messages may be dropped or reordered, by
having each message followed by a response there is no ambiguity. Still
this commit adds a queue for messages that we only have one of which outstanding
at a time, i.e. send, wait for response, send the next, etc. This further
simplifies the logic, while not adding much overhead since only when spicec
starts up it has a situation where it needs to send two events (ReaderAdd
and ATR for Card Insert).
2011-02-10 10:34:58 +02:00
Alon Levy
5ed4050992 server/smartcard: don't push our own error on reader add
The device already sends one. There are actually two connections going
on:
 server to client - this is the smartcard channel, it reuses the VSC protocol.
 server to device - this is an internal connection using VSC too.

We generally just passthrough all messages from the client to the device,
and from the device to the client. We only rewrite the reader_id because
the device knows about a single id (it is actually a card id), and we
may manage more then one in the future.

Bottom line is that there was an extra VSC_Error message reaching the client.
2011-02-10 10:34:53 +02:00
Alon Levy
17ba06da2c client/smartcard: ignore VSC_Init 2011-02-10 10:34:47 +02:00
Alon Levy
0d6550ed60 server/smartcard: ignore VSC_Init from client 2011-02-10 10:34:42 +02:00
Alon Levy
21d1ec600b server/smartcard: print instead of assert on bad reader_id in smartcard_char_device_on_message_from_device 2011-02-10 10:34:37 +02:00
Alon Levy
b05c744f4a server/smartcard: libcacard uses network byte order, so we must too 2011-02-10 10:34:32 +02:00
Alon Levy
d7cf75f68c client/smartcard: s/reader_id_t/uint32_t/ (libcacard changed) 2011-02-10 10:34:26 +02:00
Alon Levy
ed5e2fc942 server/smartcard: libcacard removed ReaderAddResponse 2011-02-10 10:34:16 +02:00
Alon Levy
efa3704dbc server/smartcard: s/reader_id_t/uint32_t/ (libcacard changed) 2011-02-10 10:20:49 +02:00
Alon Levy
9de4c94a5d server/red_worker: fix used but uninitialized warning (gcc 4.6.0) 2011-02-07 18:51:50 +02:00
Hans de Goede
504306681c spicec: Remove spice-client watermark (rhbz#662450)
This patch stops us from drawing the spice client watermark at the top of
the virtual machine view. We have had requests through several channels to
remove this as it has little added value, and is seen as annoying by some.
Given that we now also have a bugzilla for this I think it is time we really
remove it.
(cherry picked from commit 392ed65dda)
2011-02-02 10:15:04 +02:00
Uri Lublin
fd4ee559a3 spice-client migration: fix minor for old migration support.
For not too old spice-migration, minor is 1.
For older (ancient) spice-migration, minor is 0.

Affects only VM migration while a spice client is connected.
2011-01-27 18:31:56 +02:00
Alon Levy
7b4e4f278a client/windows: don't allocate console unless required 2011-01-27 17:24:01 +02:00
Alon Levy
fe3b3d3937 client: fix broken vs2008 build 2011-01-27 17:23:56 +02:00
Alon Levy
bfdd2371f8 client: --help should not need platform initialization
separate initialization into before command line parsing and after,
call later only if command line parsing succeeds (in particular, it
"fails" if --help is given).
2011-01-27 17:23:51 +02:00
Alon Levy
3615be639b demarshaller/marshaller fix gcc 4.6.0
python_modules/demarshal.py and marshal.py fixes for gcc 4.6.0
warning about set but unused variables. The fixes disable creating
of variables mem_size when they are not used (demarshall) and
declaring a src variable when the message doesn't use it (marshal).

You need to touch *.proto after applying this (should add a Makefile
dependency).
2011-01-27 12:49:11 +02:00
Alon Levy
f414992e9b codegen: avoid creating out if not used (fix gcc 4.6.0 warning) 2011-01-27 12:49:00 +02:00
Alon Levy
c89c708888 client: gcc 4.6.0: two more unused variable fixes 2011-01-27 12:48:53 +02:00
Alon Levy
fc1b89dd5c client/cegui: cegui 0.6.0 gcc 4.6.0 related fix
cegui doesn't include stddef required for ptrdiff_t type, we
include it for it.
2011-01-27 12:48:49 +02:00
Alon Levy
61c53ef9d8 client/glz_decoder.cpp: gcc 4.6.0 unused fixes 2011-01-27 12:48:44 +02:00
Alon Levy
1bb56f5f46 client/display_channel: gcc 4.6.0 unused fixes 2011-01-27 12:48:40 +02:00
Alon Levy
143452477d common/sw_canvas: remove unused error val
This is the only unused var change I'll want to revisit eventually,
I'm submitting anyway since it doesn't change current behavior. I'm
talking about ignoring the return value from canvas creation. Adding
a print is possible but I didn't test (may be too verbose, also
preferable to be a debug print if so, and we don't have that option
in the code atm - probably an environment variable will do, or adding
some spice_server_set_logging_level api, maybe even
spice_server_set_logging_fd?)
2011-01-27 12:48:35 +02:00
Alon Levy
bd1ae4a6e1 common/canvas_base.c: remove unused variables 2011-01-27 12:48:30 +02:00
Alon Levy
54c91e89fb client/server: warning fixes (gcc 4.6.0)
gcc 4.6.0 added "[-Werror=unused-but-set-variable]", this and the next
few fixes tend to that. Mostly harmless.
2011-01-27 12:48:25 +02:00
Alon Levy
a7b66f77ba client/server: add missing USE_TUNNEL
disable some code that only makes sense when USE_TUNNEL is defined
in client and server channel security level setting.
2011-01-25 17:17:35 +02:00
Alon Levy
079acd9912 client/server: add missing smartchannel channel security handling
The name to channel id mapping for the smartcard channel is missing,
add it in client and server.
2011-01-25 17:17:29 +02:00
Hans de Goede
5c4fb47825 Update license header for server/red_parse_qxl.c
This one mistakenly had a GPL header rather then an LGPL header.
2011-01-21 21:35:23 +01:00
Hans de Goede
7e790a2659 Drop unnecessary X11 and alsa requires from spice-server.pc 2011-01-21 21:34:52 +01:00
Hans de Goede
50a4db1710 Release 0.7.2 2011-01-19 15:04:56 +01:00
Hans de Goede
09a40fabf2 server: remove dep on CEGUI 2011-01-19 15:04:44 +01:00
Alon Levy
fafda4f588 client: CEGUI: search for CEGUI-0.6 to work in F15 (rawhide) 2011-01-19 14:40:03 +01:00
Alon Levy
d51e213eab client: log subject-host mismatch, and raise ssl warnings to errors 2011-01-17 20:29:33 +02:00
Marc-André Lureau
e5bfed8194 client inputs: stop blinking keyboard when out of focus
We could introduce another boolean to prevent changes, or just reuse
_active_modifiers_event = true to prevent further update.

Additionaly this patch restore the keyboard state when focusing out,
which is fine when dealing with full remote desktop, but should be
reconsidered if/when SPICE supports remote windows managed by client
window manager for instance, imho.
2011-01-17 20:29:33 +02:00
Alon Levy
f0e27a2636 common, canvas_get_jpeg_alpha: let top_down be any value
Allow top_down flag to have any value, only ASSERT it is positive
when needs to be positive and zero otherwise. Allows older server
bug of sending 4 instead of 1 in top down flag to not affect newer
clients (previous patch fixes server).
2011-01-17 18:48:50 +02:00
Alon Levy
2a9f35a98f server/red_worker: use 1, not 4 when lz_encoding a top down image 2011-01-17 18:48:50 +02:00
Alon Levy
c002a0784f server: remove dep on libcacard
Only the client needs this, and erronously using SPICE_REQUIRES
results in libcacard dep in spice-server.pc, which is then dragged
into qemu when linking, beeing used instead of the builtin libcacard.
2011-01-17 18:48:50 +02:00
Alon Levy
609105a276 client/cmd_line_parser: fix wrong reporting of bad argument in --bla=val case
We use get_opt_long, which allows non ambiguous abbreviations, but
since we didn't like that we have code that checks for abbreviations and
issues an error. But that code only handled separate argument and key like:
--bla value
and didn't handle them in the same arguemnts, like:
--bla=value
This patch fixes that, and gives a slightly better error report (it still
contains the =value part though)
2011-01-17 18:48:50 +02:00