diff -u libinfinity-0.4.1/debian/control libinfinity-0.4.1/debian/control --- libinfinity-0.4.1/debian/control +++ libinfinity-0.4.1/debian/control @@ -1,6 +1,7 @@ Source: libinfinity Priority: optional -Maintainer: Philipp Kern +Maintainer: Ubuntu MOTU Developers +XSBC-Original-Maintainer: Philipp Kern Build-Depends: debhelper (>= 7.0.50), autotools-dev, hardening-includes, libgnutls-dev, libgsasl7-dev, libxml2-dev, libgtk2.0-dev, libavahi-client-dev, gtk-doc-tools, libdaemon-dev Standards-Version: 3.8.1 Section: libs diff -u libinfinity-0.4.1/debian/changelog libinfinity-0.4.1/debian/changelog --- libinfinity-0.4.1/debian/changelog +++ libinfinity-0.4.1/debian/changelog @@ -1,3 +1,9 @@ +libinfinity (0.4.1-1ubuntu0.1) lucid-proposed; urgency=low + + * Add SO_REUSEADDR for server sockets (LP: #306955). + + -- Kees Cook Mon, 25 Oct 2010 09:34:55 -0700 + libinfinity (0.4.1-1) unstable; urgency=low * New upstream release only in patch2: unchanged: --- libinfinity-0.4.1.orig/libinfinity/server/infd-tcp-server.c +++ libinfinity-0.4.1/libinfinity/server/infd-tcp-server.c @@ -599,6 +599,7 @@ struct sockaddr* addr; socklen_t addrlen; + int optval; g_return_val_if_fail(INFD_IS_TCP_SERVER(server), FALSE); priv = INFD_TCP_SERVER_PRIVATE(server); @@ -661,6 +662,17 @@ return FALSE; } + optval = 1; + if(setsockopt(priv->socket, SOL_SOCKET, SO_REUSEADDR, + &optval, sizeof(optval)) < 0) + { + infd_tcp_server_make_system_error(INFD_TCP_SERVER_LAST_ERROR, error); + + closesocket(priv->socket); + priv->socket = INVALID_SOCKET; + return FALSE; + } + if(bind(priv->socket, addr, addrlen) == -1) { infd_tcp_server_make_system_error(INFD_TCP_SERVER_LAST_ERROR, error);