diff options
author | Hans de Goede <hdegoede@redhat.com> | 2011-12-22 12:13:19 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2011-12-22 12:48:10 +0100 |
commit | 3435df1234a8bd3cca25ffd7e4b48f2142267a1c (patch) | |
tree | d243d5ad196c24ed507332bcdafcb7332a51eab1 | |
parent | fe001ca19df448104b9cd29d19edb7ebd32fe9bf (diff) | |
download | spice-3435df1234a8bd3cca25ffd7e4b48f2142267a1c.tar.gz spice-3435df1234a8bd3cca25ffd7e4b48f2142267a1c.tar.xz spice-3435df1234a8bd3cca25ffd7e4b48f2142267a1c.zip |
spicevmc: Set sockopt nodelay for usbredir channels
We want as little latency as possible with usb channels.
Signed-off-by: Hans de goede <hdegoede@redhat.com>
-rw-r--r-- | server/spicevmc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/server/spicevmc.c b/server/spicevmc.c index b1a7d8dc..bed84887 100644 --- a/server/spicevmc.c +++ b/server/spicevmc.c @@ -23,6 +23,10 @@ #endif #include <assert.h> +#include <errno.h> +#include <string.h> +#include <netinet/in.h> // IPPROTO_TCP +#include <netinet/tcp.h> // TCP_NODELAY #include "server/char_device.h" #include "server/red_channel.h" @@ -82,6 +86,17 @@ static void spicevmc_chardev_wakeup(SpiceCharDeviceInstance *sin) static int spicevmc_red_channel_client_config_socket(RedChannelClient *rcc) { + int delay_val = 1; + RedsStream *stream = red_channel_client_get_stream(rcc); + + if (rcc->channel->type == SPICE_CHANNEL_USBREDIR) { + if (setsockopt(stream->socket, IPPROTO_TCP, TCP_NODELAY, + &delay_val, sizeof(delay_val)) != 0) { + red_printf("setsockopt failed, %s", strerror(errno)); + return FALSE; + } + } + return TRUE; } |