[Spice-devel] [PATCH spice-gtk] spice-channel: setsockopt TCP_NODELAY
Hans de Goede
hdegoede at redhat.com
Thu Dec 22 03:23:38 PST 2011
spicec does this for all channels, and it seems like a good idea to do the
same in spice-gtk.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
gtk/spice-channel.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/gtk/spice-channel.c b/gtk/spice-channel.c
index 84d4dfd..079028a 100644
--- a/gtk/spice-channel.c
+++ b/gtk/spice-channel.c
@@ -33,6 +33,7 @@
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
+#include <netinet/tcp.h> // TCP_NODELAY
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
@@ -1925,6 +1926,7 @@ static void *spice_channel_coroutine(void *data)
SpiceChannel *channel = SPICE_CHANNEL(data);
SpiceChannelPrivate *c = channel->priv;
guint verify;
+ int rc, delay_val = 1;
SPICE_DEBUG("Started background coroutine %p for %s", &c->coroutine, c->name);
@@ -1960,8 +1962,6 @@ reconnect:
c->has_error = FALSE;
if (c->tls) {
- int rc;
-
c->ctx = SSL_CTX_new(TLSv1_method());
if (c->ctx == NULL) {
g_critical("SSL_CTX_new failed");
@@ -2037,6 +2037,13 @@ ssl_reconnect:
}
connected:
+ rc = setsockopt(g_socket_get_fd(c->sock), IPPROTO_TCP, TCP_NODELAY,
+ &delay_val, sizeof(delay_val));
+ if (rc != 0) {
+ g_warning("%s: could not set sockopt TCP_NODELAY: %s", c->name,
+ strerror(errno));
+ }
+
c->state = SPICE_CHANNEL_STATE_LINK_HDR;
spice_channel_send_link(channel);
--
1.7.7.4
More information about the Spice-devel
mailing list