summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-05-12move glz to spice-commonglzAlon Levy13-2051/+15
2014-04-16Fix submodule referenceChristophe Fergeau1-0/+0
2014-04-16Add missing buffer (re)allocation to reds_sasl_handle_auth_steplen()Christophe Fergeau1-0/+1
We need to make sure we have a buffer big enough to accomodate the data sent by the coming SASL step.
2014-04-16Call correct SASL helper in reds_handle_auth_sasl_stepChristophe Fergeau1-1/+1
sasl_handle_auth_start() was called instead of reds_sasl_handle_auth_step()
2014-04-16Add G_GNUC_UNUSED annotations to async_read_handler argsChristophe Fergeau1-1/+3
2 of the arguments are not used, the G_GNUC_UNUSED annotation will make this explicit.
2014-04-16Make struct AsyncRead/async_read_handler privateChristophe Fergeau2-12/+11
All users are now contained in reds_stream.c
2014-04-16Remove RedLinkInfo::async_readChristophe Fergeau1-25/+19
9feed69 moved the async reader code to RedsStream so that it can be used for the SASL authentication code. In particular, it introduced a RedsStream::async_read member which is used by the SASL authentication code for its async operations. However, what was not done is to remove the now redundant RedLinkInfo::async_read field. This causes failures when using SASL authentication as the async read error callback is getting set on the RedLinkInfo::async_read structure, but then the SASL code is trying to use the RedeStream::async_read structure for its async IOs, which do not have the needed error callback set. This commit makes use of the newly introduced reds_stream_async_read() helper in order to make use of RedsStream::async_read.
2014-04-16Call AsyncRead variables 'async' instead of 'obj'Christophe Fergeau1-30/+30
This is a more explicit name.
2014-04-16Add reds_stream_set_async_error_handler() helperChristophe Fergeau2-7/+5
This replaces async_read_set_error_handler() which was unused. This sets a callback to be called when an async operation fails. We could pass the error_handler to each reds_stream_async_read() call, but as we will be using the same one for all async calls, it's more convenient to set it once and for all. AsyncRead is going to be private to reds_stream.c in one of the next commits, and the error handler will need to be set from reds.c, hence the move to a public RedsStream method.
2014-04-16Introduce reds_stream_async_read() helperChristophe Fergeau2-43/+36
This will allow to make RedsStream::async_read private
2014-04-16build-sys: Fix VPATH buildsChristophe Fergeau2-1/+1
Fixing this is a matter of picking the spice-common fix to generate the (de)marshaller source files in the right place, and to adjust the compiler flags to look for includes in the build directory as well.
2014-04-16Fix --without-sasl buildChristophe Fergeau1-0/+4
There are 2 SASL-related function prototypes which are unused in the --without-sasl case. They cause a warning, and a build failure when using -Werror. Wrapping them in #if HAVE_SASL avoids this issue.
2014-04-16doc: Generate chunked manualChristophe Fergeau2-3/+20
This commit makes use of a2x in order to generate a chunked manual in addition to the "all in one page" one.
2014-03-25manual: improve text about ~/PublicMarc-André Lureau1-3/+3
2014-03-20Check RSA_generate_key_ex return valueChristophe Fergeau1-2/+9
This can fail in fips mode for example. If we ignore the failure, we'll get a crash: #0 0x00007f38d63728a0 in BN_num_bits () from /lib64/libcrypto.so.10 #1 0x00007f38d639661d in RSA_size () from /lib64/libcrypto.so.10 #2 0x00007f38d7991762 in reds_handle_read_link_done () from /lib64/libspice-server.so.1 #3 0x00007f38d7990c06 in spice_server_add_client () from /lib64/libspice-server.so.1 #4 0x00007f38d7990c6a in reds_accept () from /lib64/libspice-server.so.1 #5 0x00007f38dc0d2946 in qemu_iohandler_poll (pollfds=0x7f38dedce200, ret=755449965, ret@entry=1) at iohandler.c:143 #6 0x00007f38dc0d6ea8 in main_loop_wait (nonblocking=<optimized out>) at main-loop.c:465 #7 0x00007f38dbffd7c0 in main_loop () at vl.c:1988 #8 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4357 This commit will cause the client connection to fail but qemu won't segfault.
2014-03-20Don't truncate large 'now' values in _spice_timer_setDavid Gibson1-6/+7
static void _spice_timer_set(SpiceTimer *timer, uint32_t ms, uint32_t now) The _spice_timer_set() function takes a 32-bit integer for the "now" value. The now value passed in however, can exceed 2^32 (it's in ms and derived from CLOCK_MONOTONIC, which will wrap around a 32-bit integer in around 46 days). If the now value passed in exceeds 2^32, this will mean timers are inserted into the active list with expiry values before the current time, they will immediately trigger, and (if they don't make themselves inactive) be reinserted still before the current time. This leads to an infinite loop in spice_timer_queue_cb(). https://bugzilla.redhat.com/show_bug.cgi?id=1072700
2014-03-19Update spice-commonMarc-André Lureau1-0/+0
2014-03-19manual: fix xml highlightingMarc-André Lureau1-1/+1
2014-03-19manual: add folder sharing sectionMarc-André Lureau1-1/+56
2014-03-19Translate docbook -> asciidocMarc-André Lureau14-1525/+1038
It's much much easier to read and edit, and the end results looks better as well, see http://elmarco.fedorapeople.org/manual.html
2014-03-19Associate org.spice-space.webdav.0 port to webdav channelMarc-André Lureau2-1/+6
For example, with qemu, a webdav channel can be created this way: -chardev spiceport,name=org.spice-space.webdav.0,... And redirected to a virtio port: -device virtserialport,...,name=org.spice-space.webdav.0
2014-03-19build-sys: simplify manual html generationMarc-André Lureau1-26/+18
2014-03-19SpiceUserManual.xml: small clean-upsMarc-André Lureau1-13/+11
Remove some non-conventional/non-freesoftware editor-specific lines. Remove trailing whitespaces Get rid of DTD, which is too strict for docbook, see also: http://docbook.org/tdg5/en/html/ch02.html This get rids of the following warning/error: I/O error : Attempt to load network entity http://docbook.org/xml/5.0/dtd/docbook.dtd /home/elmarco/src/spice/spice-master/docs/manual/SpiceUserManual.xml:4: warning: failed to load external entity "http://docbook.org/xml/5.0/dtd/docbook.dtd" "http://docbook.org/xml/5.0/dtd/docbook.dtd"> ^
2014-03-13Fix test_capability() typoChristophe Fergeau3-10/+10
It was spelt 'capabilty'
2014-03-13Fix typo in log messageChristophe Fergeau1-1/+1
2014-03-13mjpeg: Don't warn on unsupported image formatsChristophe Fergeau1-1/+1
When trying to start mjpeg compression mode, mjpeg_encoder_start_frame() tests the image format as its only able to compress 24/32bpp images. On images with lower bit depths, we return MJPEG_ENCODER_FRAME_UNSUPPORTED to indicate this is not a format we can compress. However, this return goes with a spice_warning("unsupported format"). As the rest of the code can cope with this unsupported format by not doing mjpeg compression, it's nicer to downgrade this spice_warning() to spice_debug(). This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1070028
2014-01-20Add reference manualChristophe Fergeau12-1/+1559
This manual documents how to enable/use various SPICE features when creating a VM by running QEMU directly, or when using libvirt, or when using virt-manager. This is based on work by Lubos Kocman
2014-01-20Make RedsStream::info privateChristophe Fergeau2-28/+28
2014-01-20Introduce reds_stream_set_channel()Christophe Fergeau3-3/+14
2014-01-20Introduce reds_stream_set_info_flag()Christophe Fergeau3-1/+12
2014-01-20Make RedsStream::async_read privateChristophe Fergeau2-14/+14
2014-01-20Make RedsStream::sasl privateChristophe Fergeau2-71/+71
2014-01-20Make RedsStream read/write functions privateChristophe Fergeau2-19/+19
2014-01-20Make RedsStream::ssl privateChristophe Fergeau2-18/+18
2014-01-20Introduce reds_stream_is_ssl()Christophe Fergeau4-6/+12
2014-01-20Add RedsStream::privChristophe Fergeau2-1/+9
The private data is allocated at the same time as RedsStream and goes immediatly after the main RedsStream data. This private member will allow to hide internal RedsStream implementation details from the rest of spice-server.
2014-01-20Move SASL authentication to reds_stream.hChristophe Fergeau3-423/+563
SASL authentication mostly use members from RedsStream to do its work, so it makes sense to have its code in reds_stream.c. This should allow to make RedsStream::sasl private in the future.
2014-01-20Move async code to RedsStreamChristophe Fergeau3-60/+82
The AsyncRead structure in reds.h wraps an async read + callback to be done on a stream. Moving it to reds_stream.h is needed in order to move SASL authentication there.
2014-01-20Move stream read/write callbacks to reds_stream.cChristophe Fergeau2-77/+75
Now that stream creation and SSL enabling are done by helpers in reds_stream.c, we can move the initialization of the vfunc read/write pointers there too.
2014-01-20Introduce reds_stream_new() helperChristophe Fergeau3-20/+32
Initializing a new stream means initializing quite a few fields. This commit factors this initialization in a dedicated reds_stream_new helper. This also helps moving more code from reds.c to reds_stream.c
2014-01-20reds: Move SSL-related code to RedsStreamChristophe Fergeau3-55/+82
Code to initiate a SSL stream belongs there
2014-01-20Move sync_write* to reds_stream.hChristophe Fergeau3-55/+58
They are renamed to reds_stream_write*
2014-01-20Add reds_stream.[ch]Christophe Fergeau9-245/+327
Gather common RedsStream code there rather than having it in reds.c
2014-01-20Move SPICE_GNUC_VISIBLE to red_common.hChristophe Fergeau2-2/+2
2014-01-02tests: Avoid malloc failuresChristophe Fergeau2-2/+8
test-display-streaming is calling malloc() without checking its return value. Coverity warns about this. This commit switches to g_malloc() to sidestep this warning (g_malloc() never returns NULL but aborts instead).
2014-01-02tests: Remove unused variablesChristophe Fergeau2-3/+0
coverity spotted some variables that were declared but not used in server/tests
2014-01-02Fix typo; sampel --> sampleJeremy White11-45/+45
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
2014-01-02Add support for the Opus codecJeremy White14-87/+188
Signed-off-by: Jeremy White <jwhite@codeweavers.com>
2014-01-02Revise the spice client and server to use the new snd_codec functions in ↵Jeremy White8-210/+150
spice-common. This makes celt optional, and paves the way to readily add additional codecs. Signed-off-by: Jeremy White <jwhite@codeweavers.com>
2013-12-12Use TLS version 1.0 or betterDavid Jaša1-1/+4
When creating a TLS socket, both spice-server and spice-gtk currently call SSL_CTX_new(TLSv1_method()). The TLSv1_method() function set the protocol version to TLS 1.0 exclusively. The correct way to support multiple protocol versions is to call SSLv23_method() in spite of its scary name. This method will enable all SSL/TLS protocol versions. The protocol suite may be further narrowed down by setting respective SSL_OP_NO_<version_code> options of SSL context. This possibility is used in this patch in order to block use of SSLv3 that is enabled by default in openssl for client sockets as of now but spice has never used it.