- libxcb-1.4-keepalive.patch: setsockopt(SO_KEEPALIVE) for TCP (#476415)

This commit is contained in:
Adam Jackson 2009-12-02 19:53:53 +00:00
parent 06d1e6a5e0
commit 38480268f2
2 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,28 @@
From 1cf2a87def76f4646fe05e282b45605d572f2513 Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Wed, 2 Dec 2009 14:31:56 -0500
Subject: [PATCH] setsockopt(SO_KEEPALIVE) on TCP display connections.
This matches xtrans behaviour in SocketINETConnect, and makes it so apps
don't hang forever if their display dies.
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
src/xcb_util.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/xcb_util.c b/src/xcb_util.c
index 55aadb7..c3cbfa6 100644
--- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -260,6 +260,7 @@ static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
if(fd >= 0) {
int on = 1;
setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on));
+ setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on));
if (connect(fd, addr->ai_addr, addr->ai_addrlen) >= 0)
break;
--
1.6.5.2

View File

@ -7,7 +7,7 @@
Name: libxcb
Version: 1.4
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A C binding to the X11 protocol
Group: System Environment/Libraries
@ -22,6 +22,8 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source1: pthread-stubs.pc.in
Source2: http://xcb.freedesktop.org/dist/xpyb-%{xpyb_version}.tar.bz2
Patch1: libxcb-1.4-keepalive.patch
BuildRequires: autoconf automake libtool pkgconfig
BuildRequires: doxygen
BuildRequires: graphviz
@ -70,6 +72,7 @@ Python bindings for %{name}.
%prep
%setup -q -b2
%patch1 -p1 -b .keepalive
%if !0%{?bootstrap}
pushd ../xpyb-%{xpyb_version}
@ -155,6 +158,9 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Wed Dec 02 2009 Adam Jackson <ajax@redhat.com> 1.4-2
- libxcb-1.4-keepalive.patch: setsockopt(SO_KEEPALIVE) for TCP (#476415)
* Thu Aug 27 2009 Adam Jackson <ajax@redhat.com> 1.4-1
- libxcb 1.4 (#518597)