iphlpapi: Check for the right TCP statistics structure name (for DragonFly BSD).

oldstable
André Hentschel 2012-06-03 14:32:20 +02:00 committed by Alexandre Julliard
parent cecf1056bb
commit eaab7a88f4
4 changed files with 51 additions and 1 deletions

28
configure vendored
View File

@ -14086,6 +14086,34 @@ _ACEOF
fi fi
ac_fn_c_check_member "$LINENO" "struct tcpstat" "tcps_connattempt" "ac_cv_member_struct_tcpstat_tcps_connattempt" "#ifdef HAVE_NETINET_TCP_VAR_H
#include <netinet/tcp_var.h>
#endif
"
if test "x$ac_cv_member_struct_tcpstat_tcps_connattempt" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT 1
_ACEOF
fi
ac_fn_c_check_member "$LINENO" "struct tcp_stats" "tcps_connattempt" "ac_cv_member_struct_tcp_stats_tcps_connattempt" "#ifdef HAVE_NETINET_TCP_VAR_H
#include <netinet/tcp_var.h>
#endif
"
if test "x$ac_cv_member_struct_tcp_stats_tcps_connattempt" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_TCP_STATS_TCPS_CONNATTEMPT 1
_ACEOF
fi
ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#ifdef HAVE_SYS_TYPES_H ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif

View File

@ -2324,6 +2324,18 @@ AC_CHECK_MEMBERS([struct ip_stats.ips_total],,,
#include <netinet/ip_var.h> #include <netinet/ip_var.h>
#endif]) #endif])
dnl Check for struct tcpstat
AC_CHECK_MEMBERS([struct tcpstat.tcps_connattempt],,,
[#ifdef HAVE_NETINET_TCP_VAR_H
#include <netinet/tcp_var.h>
#endif])
dnl Check for struct tcp_stats
AC_CHECK_MEMBERS([struct tcp_stats.tcps_connattempt],,,
[#ifdef HAVE_NETINET_TCP_VAR_H
#include <netinet/tcp_var.h>
#endif])
dnl Check for struct ifreq.ifr_hwaddr dnl Check for struct ifreq.ifr_hwaddr
AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr],,, AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr],,,
[#ifdef HAVE_SYS_TYPES_H [#ifdef HAVE_SYS_TYPES_H

View File

@ -812,7 +812,7 @@ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS stats)
} }
if (kc) kstat_close( kc ); if (kc) kstat_close( kc );
} }
#elif defined(HAVE_SYS_SYSCTL_H) && defined(UDPCTL_STATS) #elif defined(HAVE_SYS_SYSCTL_H) && defined(TCPCTL_STATS) && (HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT || HAVE_STRUCT_TCP_STATS_TCPS_CONNATTEMPT)
{ {
#ifndef TCPTV_MIN /* got removed in Mac OS X for some reason */ #ifndef TCPTV_MIN /* got removed in Mac OS X for some reason */
#define TCPTV_MIN 2 #define TCPTV_MIN 2
@ -821,7 +821,11 @@ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS stats)
int mib[] = {CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_STATS}; int mib[] = {CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_STATS};
#define MIB_LEN (sizeof(mib) / sizeof(mib[0])) #define MIB_LEN (sizeof(mib) / sizeof(mib[0]))
#define hz 1000 #define hz 1000
#if HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT
struct tcpstat tcp_stat; struct tcpstat tcp_stat;
#elif HAVE_STRUCT_TCP_STATS_TCPS_CONNATTEMPT
struct tcp_stats tcp_stat;
#endif
size_t needed = sizeof(tcp_stat); size_t needed = sizeof(tcp_stat);
if(sysctl(mib, MIB_LEN, &tcp_stat, &needed, NULL, 0) != -1) if(sysctl(mib, MIB_LEN, &tcp_stat, &needed, NULL, 0) != -1)

View File

@ -857,6 +857,12 @@
/* Define to 1 if `st_mtim' is a member of `struct stat'. */ /* Define to 1 if `st_mtim' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_MTIM #undef HAVE_STRUCT_STAT_ST_MTIM
/* Define to 1 if `tcps_connattempt' is a member of `struct tcpstat'. */
#undef HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT
/* Define to 1 if `tcps_connattempt' is a member of `struct tcp_stats'. */
#undef HAVE_STRUCT_TCP_STATS_TCPS_CONNATTEMPT
/* Define to 1 if the system has the type `struct xinpgen'. */ /* Define to 1 if the system has the type `struct xinpgen'. */
#undef HAVE_STRUCT_XINPGEN #undef HAVE_STRUCT_XINPGEN