summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use PRI macros in printf to keep compatibility between 32/64bit system소병철2014-05-152-5/+6
| | | | | | | gcc's some integer type definitions are different between 32/64bit system. This causes platform dependency problem with printf function. However, we can avoid this problem by using PRI macros that supports platform independent printf.
* Fix submodule referenceChristophe Fergeau2014-04-161-0/+0
|
* Add missing buffer (re)allocation to reds_sasl_handle_auth_steplen()Christophe Fergeau2014-04-161-0/+1
| | | | | We need to make sure we have a buffer big enough to accomodate the data sent by the coming SASL step.
* Call correct SASL helper in reds_handle_auth_sasl_stepChristophe Fergeau2014-04-161-1/+1
| | | | sasl_handle_auth_start() was called instead of reds_sasl_handle_auth_step()
* Add G_GNUC_UNUSED annotations to async_read_handler argsChristophe Fergeau2014-04-161-1/+3
| | | | | 2 of the arguments are not used, the G_GNUC_UNUSED annotation will make this explicit.
* Make struct AsyncRead/async_read_handler privateChristophe Fergeau2014-04-162-12/+11
| | | | All users are now contained in reds_stream.c
* Remove RedLinkInfo::async_readChristophe Fergeau2014-04-161-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.
* Call AsyncRead variables 'async' instead of 'obj'Christophe Fergeau2014-04-161-30/+30
| | | | This is a more explicit name.
* Add reds_stream_set_async_error_handler() helperChristophe Fergeau2014-04-162-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.
* Introduce reds_stream_async_read() helperChristophe Fergeau2014-04-162-43/+36
| | | | This will allow to make RedsStream::async_read private
* build-sys: Fix VPATH buildsChristophe Fergeau2014-04-162-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.
* Fix --without-sasl buildChristophe Fergeau2014-04-161-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.
* doc: Generate chunked manualChristophe Fergeau2014-04-162-3/+20
| | | | | This commit makes use of a2x in order to generate a chunked manual in addition to the "all in one page" one.
* manual: improve text about ~/PublicMarc-André Lureau2014-03-251-3/+3
|
* Check RSA_generate_key_ex return valueChristophe Fergeau2014-03-201-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.
* Don't truncate large 'now' values in _spice_timer_setDavid Gibson2014-03-201-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
* Update spice-commonMarc-André Lureau2014-03-191-0/+0
|
* manual: fix xml highlightingMarc-André Lureau2014-03-191-1/+1
|
* manual: add folder sharing sectionMarc-André Lureau2014-03-191-1/+56
|
* Translate docbook -> asciidocMarc-André Lureau2014-03-1914-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
* Associate org.spice-space.webdav.0 port to webdav channelMarc-André Lureau2014-03-192-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
* build-sys: simplify manual html generationMarc-André Lureau2014-03-191-26/+18
|
* SpiceUserManual.xml: small clean-upsMarc-André Lureau2014-03-191-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"> ^
* Fix test_capability() typoChristophe Fergeau2014-03-133-10/+10
| | | | It was spelt 'capabilty'
* Fix typo in log messageChristophe Fergeau2014-03-131-1/+1
|
* mjpeg: Don't warn on unsupported image formatsChristophe Fergeau2014-03-131-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
* Add reference manualChristophe Fergeau2014-01-2012-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
* Make RedsStream::info privateChristophe Fergeau2014-01-202-28/+28
|
* Introduce reds_stream_set_channel()Christophe Fergeau2014-01-203-3/+14
|
* Introduce reds_stream_set_info_flag()Christophe Fergeau2014-01-203-1/+12
|
* Make RedsStream::async_read privateChristophe Fergeau2014-01-202-14/+14
|
* Make RedsStream::sasl privateChristophe Fergeau2014-01-202-71/+71
|
* Make RedsStream read/write functions privateChristophe Fergeau2014-01-202-19/+19
|
* Make RedsStream::ssl privateChristophe Fergeau2014-01-202-18/+18
|
* Introduce reds_stream_is_ssl()Christophe Fergeau2014-01-204-6/+12
|
* Add RedsStream::privChristophe Fergeau2014-01-202-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.
* Move SASL authentication to reds_stream.hChristophe Fergeau2014-01-203-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.
* Move async code to RedsStreamChristophe Fergeau2014-01-203-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.
* Move stream read/write callbacks to reds_stream.cChristophe Fergeau2014-01-202-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.
* Introduce reds_stream_new() helperChristophe Fergeau2014-01-203-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
* reds: Move SSL-related code to RedsStreamChristophe Fergeau2014-01-203-55/+82
| | | | Code to initiate a SSL stream belongs there
* Move sync_write* to reds_stream.hChristophe Fergeau2014-01-203-55/+58
| | | | They are renamed to reds_stream_write*
* Add reds_stream.[ch]Christophe Fergeau2014-01-209-245/+327
| | | | | Gather common RedsStream code there rather than having it in reds.c
* Move SPICE_GNUC_VISIBLE to red_common.hChristophe Fergeau2014-01-202-2/+2
|
* tests: Avoid malloc failuresChristophe Fergeau2014-01-022-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).
* tests: Remove unused variablesChristophe Fergeau2014-01-022-3/+0
| | | | | coverity spotted some variables that were declared but not used in server/tests
* Fix typo; sampel --> sampleJeremy White2014-01-0211-45/+45
| | | | Signed-off-by: Jeremy White <jwhite@codeweavers.com>
* Add support for the Opus codecJeremy White2014-01-0214-87/+188
| | | | Signed-off-by: Jeremy White <jwhite@codeweavers.com>
* Revise the spice client and server to use the new snd_codec functions in ↵Jeremy White2014-01-028-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>
* Use TLS version 1.0 or betterDavid Jaša2013-12-121-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.