[3/3] iphlpapi: Check for the right TCP statistics structure name (for DragonFly BSD)
André Hentschel
nerv at dawncrow.de
Sat Jun 2 12:00:30 CDT 2012
---
configure.ac | 12 ++++++++++++
dlls/iphlpapi/ipstats.c | 7 ++++++-
2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/configure.ac b/configure.ac
index d085459..d1acb72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2324,6 +2324,18 @@ AC_CHECK_MEMBERS([struct ip_stats.ips_total],,,
#include <netinet/ip_var.h>
#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
AC_CHECK_MEMBERS([struct ifreq.ifr_hwaddr],,,
[#ifdef HAVE_SYS_TYPES_H
diff --git a/dlls/iphlpapi/ipstats.c b/dlls/iphlpapi/ipstats.c
index 9b4b76b..3386dba 100644
--- a/dlls/iphlpapi/ipstats.c
+++ b/dlls/iphlpapi/ipstats.c
@@ -812,7 +812,7 @@ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS stats)
}
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 */
#define TCPTV_MIN 2
@@ -821,6 +821,11 @@ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS stats)
int mib[] = {CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_STATS};
#define MIB_LEN (sizeof(mib) / sizeof(mib[0]))
#define hz 1000
+#if HAVE_STRUCT_TCPSTAT_TCPS_CONNATTEMPT
+ struct tcpstat tcp_stat;
+#elif HAVE_STRUCT_TCP_STATS_TCPS_CONNATTEMPT
+ struct tcp_stats tcp_stat;
+#endif
struct tcpstat tcp_stat;
size_t needed = sizeof(tcp_stat);
--
Best Regards, André Hentschel
More information about the wine-patches
mailing list