Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Make sure that the password length is under the maximum lenght. If not
report it as an authentication failure with an adapted message.
|
|
Disable audio if no backend is available and configure is used with
the option '--with-audio=auto'
|
|
Commit 33d4016228798108250b0ef9173f2c4c719a5065 uses
g_output_stream_write_all_async/finish which is on gio 2.44 version.
This breaks the build on older systems even if --disable-webdav is used.
Using #USE_PHODAV to wrap those functions that will not be called
without --enable-webdav.
|
|
Updating the display causes weird behaviors in virt-viewer, like
re-resizing to a previous monitor config when, after changing the
display resolution (through System > PReferences > Displays). the agent
reconnects.
It is not perfect yet, because when the agent reconnects the guest
resizes to the previous config and switch to the proper one, but this
seems more like an agent bug than a spice-gtk one.
|
|
Since spice-gtk requires glib 2.28, we can now fix a small FIXME.
Since G_TYPE_CLASS_GET_PRIVATE is a bit expensive, it's still worth to
cache it in klass->priv. However, there is no good place I can think of
to put this. (channel_class_init() is called only once, and not per
each subclass)
|
|
For historical reasons, the code was placed under gtk/ subdirectory.
If it was always bugging you, bug no more!
|
|
Remove outdated items:
- ChannelBaseAudio?,
- GDI backend wouldn't work well with scaling (moved to fdo bug)
Fix fdo link
|
|
|
|
The struct is g_new0() already.
|
|
Fail early during initialization if the usbclerk service can't be
reached.
This changes the current behaviour that would retry to connect to
usbclerk every time to perform an operation. Now, it will try each time
the UsbDeviceManager is initialized.
|
|
Use regular g_return precondition checks.
|
|
|
|
|
|
Throw an error when initialization failed.
|
|
To be consistent with GLib idioms, the code should use a common prefix for errors.
|
|
The current code unref() the device too early, it must be unref
after it is no longer needed.
|
|
|
|
|
|
|
|
|
|
We want the exported functions to follow the gio async idom. Currently,
both install() and uninstall() are paired with install_finish(). In the
following patch we introduce uninstall_async() uninstall_finish() using
that common internal op_finish() function. Then we correctly pair
associated async/finish() calls.
|
|
|
|
Using g_pollable_input_stream_create_source to generage several dummy
GSources in order to check if giopipe sets all of them to be dispatched.
This test check for zombie GSources during a write_all/read_chunk
operation.
|
|
Concurrent write is not supported and should fail. The GIO error is
G_IO_ERROR_PENDING
|
|
|
|
Both functions are basic the same so let's keep the generic one.
|
|
Client's webdav can request less data (8192) then the amount sent by
guest's webdav. Using g_output_stream_write_all_async in order to avoid
losing data.
|
|
PipeInputStream and PipeOutputStream should not fail when creating
GPollableStream source as this currently does not work with default
write_all and read_all functions;
In order to avoid creating zombie GSource in create_source of both
PipeInputStream and PipeOutputStream, we track all created GSources and
set them to be dispatched when data is available to read/write. It is
worth to mention that concurrent write/read is not possible with current
giopipe and only the last created GSource will read the data as it is
dispatched first.
|
|
Disabling the proxy avoids usage of GProxyResolver to determine
the necessary proxy protocol and to do the proxy negotiation.
|
|
GSocketClient uses the system proxy by default, and it may end up using
the system HTTP proxy with bad results if CONNECT is not
supported. spice-gtk uses it's own SPICE_PROXY instead, and doesn't rely
on GSocketClient default proxy but GProxyAddress instead. Disabling the
default proxy solve a wrong proxy from being used.
It may be worth to revisit this change if GSocketClient can be told to
ignore proxies that are not eligible for Spice connections. (HTTP could
be though, in which case it would be a user configuration issue)
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1040679
|
|
|
|
g_simple_io_stream_new() do not steal references from us, unref the
streams to avoid the leaks.
Leak found by Victor Toso.
==30787== 2,808 (648 direct, 2,160 indirect) bytes in 9 blocks are definitely lost in loss record 479 of 482
==30787== at 0x93AEBFD: g_type_create_instance (gtype.c:1849)
==30787== by 0x939128A: g_object_new_internal (gobject.c:1774)
==30787== by 0x9392AA0: g_object_newv (gobject.c:1921)
==30787== by 0x939338B: g_object_new (gobject.c:1614)
==30787== by 0x403B30: make_gio_pipe (giopipe.c:441)
==30787== by 0x403C8E: spice_make_pipe (giopipe.c:465)
==30787== by 0x4029B5: fixture_set_up (pipe.c:42)
==30787== by 0x9844EC8: test_case_run (gtestutils.c:2123)
==30787== by 0x9844EC8: g_test_run_suite_internal (gtestutils.c:2185)
==30787== by 0x984509A: g_test_run_suite_internal (gtestutils.c:2196)
==30787== by 0x98453FA: g_test_run_suite (gtestutils.c:2249)
==30787== by 0x9845430: g_test_run (gtestutils.c:1553)
==30787== by 0x402012: main (pipe.c:312)
|
|
There is no strong reason to have signal handlers in spicy (a test
tool). Clean quit can be achieved through the File/Quit menu.
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1197175
|
|
Commit No. 63bf00275769928850113b4df205df08d6303b45 changed number of
arguments of function playback_stop(), and didn't change call of this
function on line 628.
This would break building when using --with-audio=gstreamer
|
|
Check g_output_stream_write_all() return value to silence a coverity
CHECKED_RETURN warning
|
|
Client usually connect to channel-new to connect their
handlers, such as open-fd.
The usbmanager channel-new handler will call channel_connect() on usbredir
channels, which may call open-fd.
However, open-fd can be emitted before the client had a chance to
connect their handlers (from the channel-new callback).
Connecting after the default handler solves this case.
Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=748665
|
|
Since channel can become session-less, let's check they still have the
expected session when running the open-host idle.
|
|
Ensure playback is stopped when the channel is destroyed.
|
|
We are going to reuse playback_stop() in following commit.
|
|
If spice_record_send_data() after a reset, last_frame is NULL and memcpy
will crash. Check if the recording was started if last_frame != NULL
instead.
Program received signal SIGSEGV, Segmentation fault.
__memcpy_avx_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S:204
204 vmovdqa %ymm0, (%rdi)
(gdb) bt
#0 __memcpy_avx_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S:204
#1 0x00007ffff44f57b5 in spice_record_send_data (channel=0x1228640, data=0x7fff9ad0f000, bytes=960, time=0) at channel-record.c:349
#2 0x00007ffff45162f0 in stream_read_callback (s=0xad8c00, length=960, data=<optimized out>) at spice-pulse.c:485
#3 0x00007ffff2ea0c76 in pstream_memblock_callback (p=<optimized out>, channel=<optimized out>, offset=0, seek=PA_SEEK_RELATIVE, chunk=0x7fffffffcf70, userdata=0x11e71c0) at pulse/context.c:411
#4 0x00007fffe8da8b4f in do_read (p=p@entry=0x123a050, re=re@entry=0x123a1d0) at pulsecore/pstream.c:906
#5 0x00007fffe8daae87 in do_pstream_read_write (p=0x123a050) at pulsecore/pstream.c:193
#6 0x00007ffff30e1bea in dispatch_func (source=0x1111e50, callback=<optimized out>, userdata=<optimized out>) at pulse/glib-mainloop.c:584
#7 0x00007fffed76b93b in g_main_dispatch (context=0x816ea0) at gmain.c:3122
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1215343
|
|
Channels do not hold a strong reference on the session (because session
can be recycled after disconnect), do not print a warning if the channel
is session-less when updating the delay.
|
|
Ensure a hint is given to the client that the channel is reset.
Unfortunately, since the handle may be asynchronous due to coroutine,
the channel functions should be tolerant to a playback/record calls
functions when the channel is stopped.
|
|
Client usually connect to channel-new to connect their
handlers, such as open-fd.
The audio channel-new handler will call channel_connect() on audio
channels, which may call open-fd.
However, open-fd can be emitted before the client had a chance to
connect their handlers (from the channel-new callback).
Connecting after the default handler solves this case.
Fixes:
https://bugzilla.gnome.org/show_bug.cgi?id=747649
|
|
The commit 37ba949716ebf441110330 breaks compatibility with old versions
of libpulse as the volume and mute data in pa_source_output_info were
available only from version 1.0.0 onwards. Using other API function for
this which does not relay on audio per stream.
|
|
Avoid breaking build with glib older then 2.32 which is when
g_simple_async_result_set_check_cancellable was introduced.
|
|
|
|
A cleaner way to get the lock modifiers, without depend on the
platform/backend used (as X or Wayland), is get them through GdkKeymap
(and its _get{caps,num,scroll}_lock_state() functions).
Unfortunately, get_scroll_lock_state() will only be present for Gtk+
3.18.0 and when it becomes the minimal required version we can easily
drop the old code.
|
|
Functions to sync volume and mute value when necessary. In this patch,
only one sync is allowed after agent connect.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1012868
|
|
Gstaudio rely on sink/src elements to get the volume/mute.
(e.g. pulsesink and pulsesrc, the values are updated by PulseAudio
itself when requested)
|