[Spice-devel] [spice-server v3 6/6] build-sys: Add configure check for TCP_KEEPIDLE

Frediano Ziglio fziglio at redhat.com
Thu Mar 30 17:39:19 UTC 2017


> 
> This is only available in newer FreeBSD releases (9.1 and later), and
> will cause build errors or older versions
> 
> This fixes https://bugs.freedesktop.org/show_bug.cgi?id=99213
> ---
>  configure.ac       | 5 +++++
>  server/net-utils.c | 2 ++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/configure.ac b/configure.ac
> index f04585f..e5f30a0 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -50,6 +50,11 @@ AC_C_BIGENDIAN
>  PKG_PROG_PKG_CONFIG
>  
>  AC_CHECK_HEADERS([sys/time.h execinfo.h linux/sockios.h])
> +AC_CHECK_DECL([TCP_KEEPIDLE], [have_tcp_keepidle="yes"],,
> +              [#include <netinet/tcp.h>])
> +AS_IF([test "x$have_tcp_keepidle" = "xyes"],
> +      [AC_DEFINE([HAVE_TCP_KEEPIDLE],1,[Define to 1 if <netinet/tcp.h> has a
> TCP_KEEPIDLE definition])],
> +)
>  AC_FUNC_ALLOCA
>  

Why not putting the AC_DEFINE where the have_tcp_keepidle assign is?

>  SPICE_LT_VERSION=m4_format("%d:%d:%d", SPICE_CURRENT, SPICE_REVISION,
>  SPICE_AGE)
> diff --git a/server/net-utils.c b/server/net-utils.c
> index c316945..34feca0 100644
> --- a/server/net-utils.c
> +++ b/server/net-utils.c
> @@ -53,12 +53,14 @@ bool red_socket_set_keepalive(int fd, bool enable, int
> timeout)
>          return true;
>      }
>  
> +#ifdef HAVE_TCP_KEEPIDLE
>      if (setsockopt(fd, SOL_TCP, TCP_KEEPIDLE, &timeout, sizeof(timeout)) ==
>      -1) {
>          if (errno != ENOTSUP) {
>              spice_printerr("setsockopt for keepalive timeout failed, %s",
>              strerror(errno));
>              return false;
>          }
>      }
> +#endif
>  
>      return true;
>  }

Works in both way

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano


More information about the Spice-devel mailing list