Blame m4/sockpfaf.m4

Packit aea12f
# sockpfaf.m4 serial 9
Packit Service 991b93
dnl Copyright (C) 2004, 2006, 2009-2020 Free Software Foundation, Inc.
Packit aea12f
dnl This file is free software; the Free Software Foundation
Packit aea12f
dnl gives unlimited permission to copy and/or distribute it,
Packit aea12f
dnl with or without modifications, as long as this notice is preserved.
Packit aea12f
Packit aea12f
dnl Test for some common socket protocol families (PF_INET, PF_INET6, ...)
Packit aea12f
dnl and some common address families (AF_INET, AF_INET6, ...).
Packit aea12f
dnl This test assumes that a system supports an address family if and only if
Packit aea12f
dnl it supports the corresponding protocol family.
Packit aea12f
Packit aea12f
dnl From Bruno Haible.
Packit aea12f
Packit aea12f
AC_DEFUN([gl_SOCKET_FAMILIES],
Packit aea12f
[
Packit aea12f
  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
Packit aea12f
  AC_CHECK_HEADERS_ONCE([netinet/in.h])
Packit aea12f
Packit aea12f
  AC_CACHE_CHECK([for IPv4 sockets],
Packit aea12f
    [gl_cv_socket_ipv4],
Packit aea12f
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit aea12f
#ifdef HAVE_SYS_SOCKET_H
Packit aea12f
#include <sys/socket.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_NETINET_IN_H
Packit aea12f
#include <netinet/in.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_WINSOCK2_H
Packit aea12f
#include <winsock2.h>
Packit aea12f
#endif]],
Packit aea12f
[[int x = AF_INET; struct in_addr y; struct sockaddr_in z;
Packit aea12f
 if (&x && &y && &z) return 0;]])],
Packit aea12f
       gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)])
Packit aea12f
  if test $gl_cv_socket_ipv4 = yes; then
Packit aea12f
    AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if <sys/socket.h> defines AF_INET.])
Packit aea12f
  fi
Packit aea12f
Packit aea12f
  AC_CACHE_CHECK([for IPv6 sockets],
Packit aea12f
    [gl_cv_socket_ipv6],
Packit aea12f
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit aea12f
#ifdef HAVE_SYS_SOCKET_H
Packit aea12f
#include <sys/socket.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_NETINET_IN_H
Packit aea12f
#include <netinet/in.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_WINSOCK2_H
Packit aea12f
#include <winsock2.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_WS2TCPIP_H
Packit aea12f
#include <ws2tcpip.h>
Packit aea12f
#endif]],
Packit aea12f
[[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
Packit aea12f
 if (&x && &y && &z) return 0;]])],
Packit aea12f
       gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)])
Packit aea12f
  if test $gl_cv_socket_ipv6 = yes; then
Packit aea12f
    AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if <sys/socket.h> defines AF_INET6.])
Packit aea12f
  fi
Packit aea12f
])
Packit aea12f
Packit aea12f
AC_DEFUN([gl_SOCKET_FAMILY_UNIX],
Packit aea12f
[
Packit aea12f
  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
Packit aea12f
  AC_CHECK_HEADERS_ONCE([sys/un.h])
Packit aea12f
Packit aea12f
  AC_CACHE_CHECK([for UNIX domain sockets],
Packit aea12f
    [gl_cv_socket_unix],
Packit aea12f
    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
Packit aea12f
#ifdef HAVE_SYS_SOCKET_H
Packit aea12f
#include <sys/socket.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_SYS_UN_H
Packit aea12f
#include <sys/un.h>
Packit aea12f
#endif
Packit aea12f
#ifdef HAVE_WINSOCK2_H
Packit aea12f
#include <winsock2.h>
Packit aea12f
#endif]],
Packit aea12f
[[int x = AF_UNIX; struct sockaddr_un y;
Packit aea12f
 if (&x && &y) return 0;]])],
Packit aea12f
       gl_cv_socket_unix=yes, gl_cv_socket_unix=no)])
Packit aea12f
  if test $gl_cv_socket_unix = yes; then
Packit aea12f
    AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if <sys/socket.h> defines AF_UNIX.])
Packit aea12f
  fi
Packit aea12f
])