Blame configure.d/config_os_struct_members

Packit fcad23
# -*- autoconf -*-
Packit fcad23
#########################################
Packit fcad23
##
Packit fcad23
# Checks for data structures & members
Packit fcad23
##
Packit fcad23
#########################################
Packit fcad23
Packit fcad23
##
Packit fcad23
#   Simple checks:
Packit fcad23
##
Packit fcad23
Packit fcad23
#       struct arphd
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct arphd.at_next],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_TIME_H
Packit fcad23
#include <sys/time.h>
Packit fcad23
#endif
Packit fcad23
#include <net/if.h>
Packit fcad23
#if HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_IF_ETHER_H
Packit fcad23
#include <netinet/if_ether.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct des_ks_struct
Packit fcad23
#         ('weak_key' indicates older version of OpenSSL)
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
Packit fcad23
    AC_CHECK_MEMBERS([struct des_ks_struct.weak_key],,,[[
Packit fcad23
#ifdef HAVE_OPENSSL_DES_H
Packit fcad23
#include <openssl/des.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
fi
Packit fcad23
Packit fcad23
#       struct dirent
Packit fcad23
#         (see also AC_STRUCT_DIRENT_D_TYPE)
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct dirent.d_type],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_DIRENT_H
Packit fcad23
#include <dirent.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct ethtool_cmd
Packit fcad23
#
Packit fcad23
if test "x$ac_cv_header_linux_ethtool_h" = "xyes" ; then
Packit fcad23
AC_CHECK_MEMBERS([struct ethtool_cmd.speed_hi],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_LINUX_ETHTOOL_H
Packit fcad23
#include <linux/ethtool.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
fi
Packit fcad23
Packit fcad23
#       struct ipstat
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct ipstat.ips_cantfrag,
Packit fcad23
                  struct ipstat.ips_delivered,
Packit fcad23
                  struct ipstat.ips_fragdropped,
Packit fcad23
                  struct ipstat.ips_fragmented,
Packit fcad23
                  struct ipstat.ips_localout,
Packit fcad23
                  struct ipstat.ips_noproto,
Packit fcad23
                  struct ipstat.ips_noroute,
Packit fcad23
                  struct ipstat.ips_odropped,
Packit fcad23
                  struct ipstat.ips_ofragments,
Packit fcad23
                  struct ipstat.ips_reassembled],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_IP_VAR_H
Packit fcad23
#include <netinet/ip_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
#       struct ip6stat
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct ip6stat.ip6s_exthdrtoolong ],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET6_IP6_VAR_H
Packit fcad23
#include <netinet6/ip6_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#
Packit fcad23
#   Not-Used:
Packit fcad23
AC_CHECK_MEMBERS([struct ipstat.ips_cantforward,
Packit fcad23
                  struct ipstat.ips_fragtimeout],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_IP_VAR_H
Packit fcad23
#include <netinet/ip_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct mbstat
Packit fcad23
#   Not-Used:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct mbstat.m_clusters,
Packit fcad23
                  struct mbstat.m_clfree,
Packit fcad23
                  struct mbstat.m_mbufs],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_SYS_MBUF_H
Packit fcad23
#include <sys/mbuf.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#	struct uvmexp
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct uvmexp.pgswapin],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#include <sys/sysctl.h>
Packit fcad23
#include <uvm/uvm_extern.h>
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct nlist
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct nlist.n_value,
Packit fcad23
                  struct nlist64.n_value],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_NLIST_H
Packit fcad23
#include <nlist.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct sigaction
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct sigaction.sa_sigaction],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SIGNAL_H
Packit fcad23
#include <sys/signal.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct sockaddr
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct sockaddr.sa_len,
Packit fcad23
                  struct sockaddr.sa_union.sa_generic.sa_family2,
Packit fcad23
                  struct sockaddr_storage.ss_family,
Packit fcad23
                  struct sockaddr_storage.__ss_family],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#elif defined(HAVE_WINSOCK2_H)
Packit fcad23
#include <winsock2.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_WS2TCPIP_H
Packit fcad23
#include <ws2tcpip.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct sockaddr_in6     (see RFC 2553)
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_WINSOCK2_H
Packit fcad23
#include <winsock2.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_WS2TCPIP_H
Packit fcad23
#include <ws2tcpip.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct sockaddr_un
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_SIZEOF([sockaddr_un.sun_path],,[
Packit fcad23
    AC_INCLUDES_DEFAULT
Packit fcad23
    [
Packit fcad23
#if HAVE_SYS_UN_H
Packit fcad23
#include <sys/un.h>
Packit fcad23
#endif
Packit fcad23
struct sockaddr_un sockaddr_un;
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct statfs
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct statfs.f_favail,
Packit fcad23
                  struct statfs.f_ffree,
Packit fcad23
                  struct statfs.f_files,
Packit fcad23
                  struct statfs.f_flags,
Packit fcad23
                  struct statfs.f_frsize],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_SYS_STATFS_H
Packit fcad23
#include <sys/statfs.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_MOUNT_H
Packit fcad23
#include <sys/mount.h>
Packit fcad23
#endif 
Packit fcad23
#ifdef HAVE_NBUTIL_H
Packit fcad23
#include <nbutil.h>
Packit fcad23
#endif 
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct statvfs
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct statvfs.f_files,
Packit fcad23
                  struct statvfs.f_frsize,
Packit fcad23
                  struct statvfs.mnt_dir],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_SYS_STATFS_H
Packit fcad23
#include <sys/statfs.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_SYS_STATVFS_H
Packit fcad23
#include <sys/statvfs.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct swdevt
Packit fcad23
#   Not-Used:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct swdevt.sw_nblksenabled],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_SYS_CONF_H
Packit fcad23
#include <sys/conf.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct tcpstat
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct tcpstat.tcp_rcvmemdrop],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_TIMEOUT_H
Packit fcad23
#include <sys/timeout.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NETINET_TCP_H
Packit fcad23
#include <netinet/tcp.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NETINET_TCP_TIMER_H
Packit fcad23
#include <netinet/tcp_timer.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NETINET_TCP_VAR_H
Packit fcad23
#include <netinet/tcp_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct tm
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct tm.tm_gmtoff, struct time.tm_isdst],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if TIME_WITH_SYS_TIME
Packit fcad23
# include <sys/time.h>
Packit fcad23
# include <time.h>
Packit fcad23
#else
Packit fcad23
# if HAVE_SYS_TIME_H
Packit fcad23
#  include <sys/time.h>
Packit fcad23
# else
Packit fcad23
#  include <time.h>
Packit fcad23
# endif
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       extern timezone
Packit fcad23
AC_MSG_CHECKING([extern timezone])
Packit fcad23
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
Packit fcad23
#if TIME_WITH_SYS_TIME
Packit fcad23
# include <sys/time.h>
Packit fcad23
# include <time.h>
Packit fcad23
#else
Packit fcad23
# if HAVE_SYS_TIME_H
Packit fcad23
#  include <sys/time.h>
Packit fcad23
# else
Packit fcad23
#  include <time.h>
Packit fcad23
# endif
Packit fcad23
#endif
Packit fcad23
]], [[
Packit fcad23
  return timezone;
Packit fcad23
]])], [
Packit fcad23
AC_MSG_RESULT([yes])
Packit fcad23
AC_DEFINE([HAVE_TIMEZONE_VARIABLE], [1], [Define if a timezone variable is declared in <sys/time.h>])
Packit fcad23
], [
Packit fcad23
AC_MSG_RESULT([no])
Packit fcad23
])
Packit fcad23
Packit fcad23
#       struct timezone
Packit fcad23
#   Library:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct timezone.tz_dsttime],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_TIMEB_H
Packit fcad23
# include <sys/timeb.h>
Packit fcad23
#endif
Packit fcad23
#if TIME_WITH_SYS_TIME
Packit fcad23
# include <sys/time.h>
Packit fcad23
# include <time.h>
Packit fcad23
#else
Packit fcad23
# ifdef HAVE_SYS_TIME_H
Packit fcad23
#  include <sys/time.h>
Packit fcad23
# else
Packit fcad23
#  include <time.h>
Packit fcad23
# endif
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct udpstat
Packit fcad23
#   Agent:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct udpstat.udps_discard,
Packit fcad23
                  struct udpstat.udps_fullsock,
Packit fcad23
                  struct udpstat.udps_noport,
Packit fcad23
                  struct udpstat.udps_noportbcast,
Packit fcad23
                  struct udpstat.udps_ipackets,
Packit fcad23
                  struct udpstat.udps_opackets],,,[
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#if HAVE_NETINET_IN_H
Packit fcad23
#include <netinet/in.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_IP_VAR_H
Packit fcad23
#include <netinet/ip_var.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_UDP_H
Packit fcad23
#include <netinet/udp.h>
Packit fcad23
#endif
Packit fcad23
#if HAVE_NETINET_UDP_VAR_H
Packit fcad23
#include <netinet/udp_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
##
Packit fcad23
#   ifnet-related checks:
Packit fcad23
##
Packit fcad23
Packit fcad23
#       Does "struct ifnet" need _KERNEL defined?       (Irix)
Packit fcad23
#
Packit fcad23
AC_CACHE_CHECK([if _KERNEL needs to be defined for if_mtu],
Packit fcad23
        [ac_cv_IFNET_NEEDS_KERNEL],
Packit fcad23
        [ac_cv_IFNET_NEEDS_KERNEL=unknown
Packit fcad23
         AC_COMPILE_IFELSE(
Packit fcad23
             [AC_LANG_PROGRAM([
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
             ], [[struct ifnet test; test.if_mtu = 0;]])],
Packit fcad23
             [ac_cv_IFNET_NEEDS_KERNEL=no])
Packit fcad23
         if test "$ac_cv_IFNET_NEEDS_KERNEL" = unknown ; then
Packit fcad23
         AC_COMPILE_IFELSE(
Packit fcad23
             [AC_LANG_PROGRAM([
Packit fcad23
#define _KERNEL 1
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
             ], [[struct ifnet test; test.if_mtu = 0;]])],
Packit fcad23
             [ac_cv_IFNET_NEEDS_KERNEL=yes])
Packit fcad23
         fi])
Packit fcad23
Packit fcad23
if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
Packit fcad23
    AC_DEFINE(NETSNMP_IFNET_NEEDS_KERNEL, 1,
Packit fcad23
        [ifnet needs to have _KERNEL defined])
Packit fcad23
fi
Packit fcad23
Packit fcad23
#       Does "struct ifnet" need _KERNEL_STRUCTURES defined?       (DragonFly 3)
Packit fcad23
#
Packit fcad23
AC_CACHE_CHECK([if _KERNEL_STRUCTURES needs to be defined for if_mtu],
Packit fcad23
        [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES],
Packit fcad23
        [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=unknown
Packit fcad23
         AC_COMPILE_IFELSE(
Packit fcad23
             [AC_LANG_PROGRAM([
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
             ], [[struct ifnet test; test.if_mtu = 0;]])],
Packit fcad23
             [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=no])
Packit fcad23
         if test "$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = unknown ; then
Packit fcad23
         AC_COMPILE_IFELSE(
Packit fcad23
             [AC_LANG_PROGRAM([
Packit fcad23
#define _KERNEL_STRUCTURES 1
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
             ], [[struct ifnet test; test.if_mtu = 0;]])],
Packit fcad23
             [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=yes])
Packit fcad23
         fi])
Packit fcad23
Packit fcad23
if test "x$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = "xyes"; then
Packit fcad23
    AC_DEFINE(NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES, 1,
Packit fcad23
        [ifnet needs to have _KERNEL_STRUCTURES defined])
Packit fcad23
fi
Packit fcad23
Packit fcad23
Packit fcad23
#       struct ifaddr
Packit fcad23
#   Not-Used:
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct ifaddr.ifa_next],,,[
Packit fcad23
    [
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
Packit fcad23
#define _KERNEL_STRUCTURES 1
Packit fcad23
#endif
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL
Packit fcad23
#define KERNEL
Packit fcad23
#if !defined(__DragonFly__)
Packit fcad23
#define _KERNEL 1
Packit fcad23
#endif
Packit fcad23
#endif
Packit fcad23
    ]
Packit fcad23
    AC_INCLUDES_DEFAULT()
Packit fcad23
    [
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_TIME_H
Packit fcad23
#include <sys/time.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
#       struct ifnet
Packit fcad23
#         (Broken on FreeBSD - #define'd in <net/if.h>)
Packit fcad23
#   Agent:   (?or Not-Used?)
Packit fcad23
#
Packit fcad23
AC_CHECK_MEMBERS([struct ifnet.if_addrlist,
Packit fcad23
                  struct ifnet.if_addrhead.tqh_first,
Packit fcad23
                  struct ifnet.if_baudrate,
Packit fcad23
                  struct ifnet.if_baudrate.ifs_value,
Packit fcad23
                  struct ifnet.if_ibytes,
Packit fcad23
                  struct ifnet.if_imcasts,
Packit fcad23
                  struct ifnet.if_iqdrops,
Packit fcad23
                  struct ifnet.if_lastchange.tv_sec,
Packit fcad23
                  struct ifnet.if_lastchange.tv_nsec,
Packit fcad23
                  struct ifnet.if_mtu,
Packit fcad23
                  struct ifnet.if_noproto,
Packit fcad23
                  struct ifnet.if_obytes,
Packit fcad23
                  struct ifnet.if_omcasts,
Packit fcad23
                  struct ifnet.if_speed,
Packit fcad23
                  struct ifnet.if_type,
Packit fcad23
                  struct ifnet.if_xname],,,[[
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
Packit fcad23
#define _KERNEL_STRUCTURES 1
Packit fcad23
#endif
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL
Packit fcad23
#define KERNEL
Packit fcad23
#if !defined(__DragonFly__)
Packit fcad23
#define _KERNEL 1
Packit fcad23
#endif
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_TYPES_H
Packit fcad23
#include <sys/types.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_SOCKET_H
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_TIME_H
Packit fcad23
#include <sys/time.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_H
Packit fcad23
#include <net/if.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_NET_IF_VAR_H
Packit fcad23
#include <net/if_var.h>
Packit fcad23
#endif
Packit fcad23
#ifdef HAVE_SYS_QUEUE_H
Packit fcad23
#include <sys/queue.h>
Packit fcad23
#endif
Packit fcad23
#ifdef linux
Packit fcad23
struct ifnet {
Packit fcad23
	char	*if_name;		/* name, e.g. "en" or "lo" */
Packit fcad23
	short	if_unit;		/* sub-unit for lower level driver */
Packit fcad23
	short	if_mtu;			/* maximum transmission unit */
Packit fcad23
	short	if_flags;		/* up/down, broadcast, etc. */
Packit fcad23
	int	if_metric;		/* routing metric (external only) */
Packit fcad23
	char    if_hwaddr [6];		/* ethernet address */
Packit fcad23
	int	if_type;		/* interface type: 1=generic,
Packit fcad23
					   28=slip, ether=6, loopback=24 */
Packit fcad23
	int	if_speed;		/* interface speed: in bits/sec */
Packit fcad23
Packit fcad23
	struct sockaddr if_addr;	/* interface's address */
Packit fcad23
	struct sockaddr ifu_broadaddr;	/* broadcast address */
Packit fcad23
	struct sockaddr ia_subnetmask; 	/* interface's mask */
Packit fcad23
Packit fcad23
	struct	ifqueue {
Packit fcad23
		int	ifq_len;
Packit fcad23
		int	ifq_drops;
Packit fcad23
	} if_snd;			/* output queue */
Packit fcad23
	int	if_ibytes;		/* octets received on interface */
Packit fcad23
	int	if_ipackets;		/* packets received on interface */
Packit fcad23
	int	if_ierrors;		/* input errors on interface */
Packit fcad23
        int     if_iqdrops;             /* input queue overruns */
Packit fcad23
	int	if_obytes;		/* octets sent on interface */
Packit fcad23
	int	if_opackets;		/* packets sent on interface */
Packit fcad23
	int	if_oerrors;		/* output errors on interface */
Packit fcad23
	int	if_collisions;		/* collisions on csma interfaces */
Packit fcad23
/* end statistics */
Packit fcad23
	struct	ifnet *if_next;
Packit fcad23
};
Packit fcad23
#endif
Packit fcad23
    ]])
Packit fcad23
Packit fcad23
Packit fcad23
# Check for BSD 4.3 vs 4.4 struct rtentry
Packit fcad23
#
Packit fcad23
AC_CACHE_CHECK([type of rtentry structure],
Packit fcad23
    [ac_cv_RTENTRY_TYPE],
Packit fcad23
    [
Packit fcad23
        # BSD 4.4 compatible structure
Packit fcad23
        #    ('rt_nodes' array)
Packit fcad23
        #
Packit fcad23
        AC_TRY_COMPILE([
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
Packit fcad23
#define _KERNEL_STRUCTURES 1
Packit fcad23
#endif
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL
Packit fcad23
#define KERNEL
Packit fcad23
#if !defined(__DragonFly__)
Packit fcad23
#define _KERNEL 1
Packit fcad23
#endif
Packit fcad23
#endif
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#undef KERNEL
Packit fcad23
#undef _KERNEL
Packit fcad23
#include <net/route.h>
Packit fcad23
        ],[
Packit fcad23
Packit fcad23
#ifndef HAVE_STRUCT_RTENTRY_RT_DST
Packit fcad23
#define rt_dst rt_nodes->rn_key
Packit fcad23
#endif
Packit fcad23
Packit fcad23
  struct rtentry rt; 
Packit fcad23
  rt.rt_nodes[0].rn_flags = 1;
Packit fcad23
  rt.rt_dst;
Packit fcad23
        ], ac_cv_RTENTRY_TYPE="BSD-4.4")
Packit fcad23
Packit fcad23
        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
Packit fcad23
        # BSD 4.3 compatible structure
Packit fcad23
        #    ('rt_hash')
Packit fcad23
        #
Packit fcad23
        AC_TRY_COMPILE([
Packit fcad23
#ifdef HAVE_SYS_PARAM_H
Packit fcad23
#include <sys/param.h>
Packit fcad23
#endif
Packit fcad23
#include <sys/types.h>
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
Packit fcad23
#define _KERNEL_STRUCTURES 1
Packit fcad23
#endif
Packit fcad23
#ifdef NETSNMP_IFNET_NEEDS_KERNEL
Packit fcad23
#define KERNEL
Packit fcad23
#if !defined(__DragonFly__)
Packit fcad23
#define _KERNEL 1
Packit fcad23
#endif
Packit fcad23
#endif
Packit fcad23
#include <sys/socket.h>
Packit fcad23
#undef KERNEL
Packit fcad23
#undef _KERNEL
Packit fcad23
#include <net/route.h>
Packit fcad23
        ],[
Packit fcad23
Packit fcad23
struct rtentry rt; 
Packit fcad23
rt.rt_hash;
Packit fcad23
        ], ac_cv_RTENTRY_TYPE="BSD-4.3")
Packit fcad23
        fi
Packit fcad23
Packit fcad23
        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
Packit fcad23
        # Neither BSD 4.3 nor 4.4 compatible structure
Packit fcad23
        #
Packit fcad23
            ac_cv_RTENTRY_TYPE="unknown"
Packit fcad23
        fi
Packit fcad23
    ])
Packit fcad23
Packit fcad23
if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
Packit fcad23
    AC_DEFINE(RTENTRY_4_4, 1, [Use BSD 4.4 routing table entries?])
Packit fcad23
fi
Packit fcad23
Packit fcad23
#    Check for ortentry                                 (Alpha)
Packit fcad23
#
Packit fcad23
if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
Packit fcad23
    AC_CACHE_CHECK([for struct rtentry],
Packit fcad23
        [ac_cv_struct_rtentry],
Packit fcad23
        [AC_EGREP_CPP(ortentry,
Packit fcad23
            [
Packit fcad23
#define KERNEL
Packit fcad23
#include <net/route.h>
Packit fcad23
            ],
Packit fcad23
            [ac_cv_struct_rtentry=ortentry],
Packit fcad23
            [ac_cv_struct_rtentry=rtentry ])
Packit fcad23
        if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
Packit fcad23
             ac_cv_struct_rtentry="rtentry"
Packit fcad23
        else
Packit fcad23
             ac_cv_struct_rtentry="ortentry"
Packit fcad23
        fi
Packit fcad23
    ])
Packit fcad23
else
Packit fcad23
    RTENTRY_TYPE="rtentry"
Packit fcad23
    ac_cv_struct_rtentry="rtentry"
Packit fcad23
fi
Packit fcad23
Packit fcad23
if test "x$ac_cv_struct_rtentry" = "x"; then
Packit fcad23
    ac_cv_struct_rtentry=rtentry
Packit fcad23
fi
Packit fcad23
AC_DEFINE_UNQUOTED(RTENTRY,struct ${ac_cv_struct_rtentry},
Packit fcad23
        [define rtentry to ortentry on SYSV machines (alphas)])
Packit fcad23
Packit fcad23
#       prioritynames
Packit fcad23
AC_MSG_CHECKING([syslog prioritynames])
Packit fcad23
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
Packit fcad23
#include <stdio.h>
Packit fcad23
#if HAVE_SYSLOG_H
Packit fcad23
#define SYSLOG_NAMES
Packit fcad23
#include <syslog.h>
Packit fcad23
#endif
Packit fcad23
]], [[
Packit fcad23
  char *test = prioritynames[0].c_name;
Packit fcad23
  printf("%s\n", test); /* so it's not unused */
Packit fcad23
]])], [
Packit fcad23
AC_MSG_RESULT([yes])
Packit fcad23
AC_DEFINE([HAVE_PRIORITYNAMES], [1], [Define if prioritynames variable is declared in <syslog.h>])
Packit fcad23
], [
Packit fcad23
AC_MSG_RESULT([no])
Packit fcad23
])