Detect sysctl() symbols in configure

Symbols could be enum values, not necessary macros
This commit is contained in:
Evgeny Grin (Karlson2k)
2023-06-01 11:31:48 +03:00
parent dd4f6ff9ea
commit 97dec411eb
2 changed files with 53 additions and 7 deletions
+43 -3
View File
@@ -2643,10 +2643,48 @@ MHD_CHECK_FUNC([[sysctl]], [[
#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
#endif
#ifdef HAVE_STDDEF_H
#if defined(HAVE_STDDEF_H)
#include <stddef.h>
#elif defined(HAVE_STDLIB_H)
#include <stdlib.h>
#endif
]], [[int mib[2] = {CTL_KERN, KERN_MAXPROC}; i][f (sysctl(mib, 2, NULL, NULL, NULL, 0)) return 1;]]
]], [[
int mib[2] = {0, 0}; /* Avoid any platform-specific values */
i][f (sysctl(mib, 2, NULL, NULL, NULL, 0)) return 1;
]],
[
AC_CHECK_DECLS([CTL_NET,PF_INET,IPPROTO_ICMP,ICMPCTL_ICMPLIM],[],[],
[[
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif /* HAVE_SYS_TYPES_H */
#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
#endif /* HAVE_SYS_SYSCTL_H */
#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
#endif /* HAVE_SYS_SYSCTL_H */
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif /* HAVE_SYS_SOCKET_H */
#ifdef HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif /* HAVE_NETINET_IN_SYSTM_H */
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif /* HAVE_NETINET_IN_H */
#ifdef HAVE_NETINET_IP_H
#include <netinet/ip.h>
#endif /* HAVE_NETINET_IP_H */
#ifdef HAVE_NETINET_IP_ICMP_H
#include <netinet/ip_icmp.h>
#endif /* HAVE_NETINET_IP_ICMP_H */
#ifdef HAVE_NETINET_ICMP_VAR_H
#include <netinet/icmp_var.h>
#endif /* HAVE_NETINET_ICMP_VAR_H */
]]
)
]
)
MHD_CHECK_FUNC([[sysctlbyname]], [[
@@ -2656,8 +2694,10 @@ MHD_CHECK_FUNC([[sysctlbyname]], [[
#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
#endif
#ifdef HAVE_STDDEF_H
#if defined(HAVE_STDDEF_H)
#include <stddef.h>
#elif defined(HAVE_STDLIB_H)
#include <stdlib.h>
#endif
]], [[sysctlbyname("test", NULL, NULL, NULL, 0);]]
)
+10 -4
View File
@@ -305,8 +305,12 @@ test_global_init (void)
}
}
#endif
#if defined(HAVE_SYSCTL) && defined(CTL_NET) && defined(PF_INET) && \
defined(IPPROTO_ICMP) && defined(ICMPCTL_ICMPLIM)
#if defined(HAVE_SYSCTL) && defined(HAVE_DECL_CTL_NET) && \
defined(HAVE_DECL_PF_INET) && defined(HAVE_DECL_IPPROTO_ICMP) && \
defined(HAVE_DECL_ICMPCTL_ICMPLIM)
/* Macros may have zero values */
#if HAVE_DECL_CTL_NET && HAVE_DECL_PF_INET && HAVE_DECL_IPPROTO_ICMP && \
HAVE_DECL_ICMPCTL_ICMPLIM
if (1)
{
int mib[4];
@@ -366,8 +370,10 @@ test_global_init (void)
#endif /* _MHD_HEAVY_TESTS */
}
}
#endif /* HAVE_SYSCTL && CTL_NET && PF_INET &&
IPPROTO_ICMP && ICMPCTL_ICMPLIM */
#endif /* HAVE_DECL_CTL_NET && HAVE_DECL_PF_INET && HAVE_DECL_IPPROTO_ICMP && \
HAVE_DECL_ICMPCTL_ICMPLIM */
#endif /* HAVE_SYSCTL && HAVE_DECL_CTL_NET && HAVE_DECL_PF_INET &&
HAVE_DECL_IPPROTO_ICMP && HAVE_DECL_ICMPCTL_ICMPLIM */
}
if (MHD_YES != MHD_is_feature_supported (MHD_FEATURE_AUTOSUPPRESS_SIGPIPE))
{