1# sockaddr.m4 2# Copyright (C) 2003 R�mi Denis-Courmont 3# <rdenis (at) simphalempin (dot) com>. 4# This file (sockaddr.m4) is free software; unlimited permission to 5# copy and/or distribute it , with or without modifications, as long 6# as this notice is preserved. 7 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 10# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 11# PARTICULAR PURPOSE. 12 13AC_DEFUN(RDC_STRUCT_SOCKADDR_LEN, 14[AH_TEMPLATE(HAVE_SA_LEN, [Define to 1 if `struct sockaddr' has a `sa_len' member.]) 15AC_CACHE_CHECK([if struct sockaddr has a sa_len member], 16rdc_cv_struct_sockaddr_len, 17[AC_TRY_COMPILE( 18[#if HAVE_SYS_TYPES_H 19# include <sys/types.h> 20#endif 21#if HAVE_SYS_SOCKET_H 22# include <sys/socket.h> 23#endif], [struct sockaddr addr; addr.sa_len = 0;], 24rdc_cv_struct_sockaddr_len=yes, rdc_cv_struct_sockaddr_len=no)]) 25if test $rdc_cv_struct_sockaddr_len = yes; then 26 AC_DEFINE(HAVE_SA_LEN) 27fi 28]) 29 30AC_DEFUN(RDC_STRUCT_SOCKADDR_STORAGE, 31[AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) 32AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) 33AC_CACHE_CHECK([for struct sockaddr_storage in sys/socket.h], 34rdc_cv_struct_sockaddr_storage, 35[AC_TRY_COMPILE( 36[#include <sys/types.h> 37#if HAVE_SYS_SOCKET_H 38# include <sys/socket.h> 39#endif], [struct sockaddr_storage addr;], rdc_cv_struct_sockaddr_storage=yes, 40rdc_cv_struct_sockaddr_storage=no)]) 41if test $rdc_cv_struct_sockaddr_storage = no; then 42 AC_DEFINE(sockaddr_storage, sockaddr) 43 AC_DEFINE(ss_family, sa_family) 44fi 45]) 46 47AC_DEFUN(RDC_TYPE_SOCKLEN_T, 48[AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.]) 49AC_CACHE_CHECK([for socklen_t in sys/socket.h], 50rdc_cv_type_socklen_t, 51[AC_TRY_COMPILE( 52[#include <sys/types.h> 53#if HAVE_SYS_SOCKET_H 54# include <sys/socket.h> 55#endif], [socklen_t len;], rdc_cv_type_socklen_t=yes, rdc_cv_type_socklen_t=no) 56]) 57if test $rdc_cv_type_socklen_t = no; then 58 AC_DEFINE(socklen_t, int) 59fi 60]) 61 62AC_DEFUN(RDC_FUNC_SOCKET, 63[AC_SEARCH_LIBS(socket, [socket], $1, $2) 64]) 65 66AC_DEFUN(RDC_FUNC_GETADDRINFO, 67[AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror], gai_support=yes, 68gai_support=no) 69AC_LIBSOURCES([getaddrinfo.h, getaddrinfo.c])dnl 70if test $gai_support = no; then 71 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h]) 72 AC_SEARCH_LIBS(gethostbyaddr, [resolv]) 73 AC_LIBOBJ(getaddrinfo) 74fi 75]) 76 77