[Spice-devel] [PATCH spice] spicevmc: Set sockopt nodelay for usbredir channels
Yonit Halperin
yhalperi at redhat.com
Thu Dec 22 03:42:49 PST 2011
On 12/22/2011 01:14 PM, Hans de Goede wrote:
> We want as little latency as possible with usb channels.
>
> Signed-off-by: Hans de goede<hdegoede at redhat.com>
> ---
> server/spicevmc.c | 16 ++++++++++++++++
> 1 files changed, 16 insertions(+), 0 deletions(-)
>
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index b1a7d8d..70cfe0e 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,18 @@ 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) {
> + printf("bingo\n");
:)
Otherwise, ACK
> + 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;
> }
>
More information about the Spice-devel
mailing list