configlocal.m4

来自「Ubuntu packages of security software。 相」· M4 代码 · 共 199 行

M4
199
字号
dnl -----------------------------------------------------------------dnl Nbase local macrosdnl $Id: configlocal.m4 1525 2002-09-08 22:56:01Z fyodor $dnl -----------------------------------------------------------------dnldnl check for working getaddrinfo().  This check is from dnl Apache 2.0.40dnldnl Note that if the system doesn't have gai_strerror(), wednl can't use getaddrinfo() because we can't get stringsdnl describing the error codes.dnlAC_DEFUN(APR_CHECK_WORKING_GETADDRINFO,[  AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[  AC_TRY_RUN( [#ifdef HAVE_NETDB_H#include <netdb.h>#endif#ifdef HAVE_STRING_H#include <string.h>#endif#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endifvoid main(void) {    struct addrinfo hints, *ai;    int error;    memset(&hints, 0, sizeof(hints));    hints.ai_family = AF_UNSPEC;    hints.ai_socktype = SOCK_STREAM;    error = getaddrinfo("127.0.0.1", NULL, &hints, &ai);    if (error) {        exit(1);    }    if (ai->ai_addr->sa_family != AF_INET) {        exit(1);    }    exit(0);}],[  ac_cv_working_getaddrinfo="yes"],[  ac_cv_working_getaddrinfo="no"],[  ac_cv_working_getaddrinfo="yes"])])if test "$ac_cv_working_getaddrinfo" = "yes"; then  if test "$ac_cv_func_gai_strerror" != "yes"; then    ac_cv_working_getaddrinfo="no"  else    AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works well enough for APR])  fifi])dnldnl check for working getnameinfo() -- from Apache 2.0.40dnlAC_DEFUN(APR_CHECK_WORKING_GETNAMEINFO,[  AC_CACHE_CHECK(for working getnameinfo, ac_cv_working_getnameinfo,[  AC_TRY_RUN( [#ifdef HAVE_NETDB_H#include <netdb.h>#endif#ifdef HAVE_STRING_H#include <string.h>#endif#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endifvoid main(void) {    struct sockaddr_in sa;    char hbuf[256];    int error;    sa.sin_family = AF_INET;    sa.sin_port = 0;    sa.sin_addr.s_addr = inet_addr("127.0.0.1");#ifdef SIN6_LEN    sa.sin_len = sizeof(sa);#endif    error = getnameinfo((const struct sockaddr *)&sa, sizeof(sa),                        hbuf, 256, NULL, 0,                        NI_NUMERICHOST);    if (error) {        exit(1);    } else {        exit(0);    }}],[  ac_cv_working_getnameinfo="yes"],[  ac_cv_working_getnameinfo="no"],[  ac_cv_working_getnameinfo="yes"])])if test "$ac_cv_working_getnameinfo" = "yes"; then  AC_DEFINE(HAVE_GETNAMEINFO, 1, [Define if getnameinfo exists])fi])AC_DEFUN(APR_CHECK_SOCKADDR_IN6,[AC_CACHE_CHECK(for sockaddr_in6, ac_cv_define_sockaddr_in6,[AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif],[struct sockaddr_in6 sa;],[    ac_cv_define_sockaddr_in6=yes],[    ac_cv_define_sockaddr_in6=no])])if test "$ac_cv_define_sockaddr_in6" = "yes"; then  have_sockaddr_in6=1  AC_DEFINE(HAVE_SOCKADDR_IN6)else  have_sockaddr_in6=0fi])AC_DEFUN(CHECK_AF_INET6_DEFINE,[AC_CACHE_CHECK(for AF_INET6 definition, ac_cv_define_af_inet6,[AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif],[int af = AF_INET6;],[    ac_cv_define_af_inet6=yes],[    ac_cv_define_af_inet6=no])])if test "$ac_cv_define_af_inet6" = "yes"; then  have_af_inet6=1  AC_DEFINE(HAVE_AF_INET6)else  have_af_inet6=0fi])AC_DEFUN(APR_CHECK_SOCKADDR_STORAGE,[AC_CACHE_CHECK(for sockaddr_storage, ac_cv_define_sockaddr_storage,[AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif],[struct sockaddr_storage sa;],[    ac_cv_define_sockaddr_storage=yes],[    ac_cv_define_sockaddr_storage=no])])if test "$ac_cv_define_sockaddr_storage" = "yes"; then  have_sockaddr_storage=1  AC_DEFINE(HAVE_SOCKADDR_STORAGE)else  have_sockaddr_storage=0fi])

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?