From 62740f72d75801417afc464a36978b7c12a7847b Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 5 Mar 2009 19:27:54 +0100 Subject: [PATCH] iphlpapi: Implemented GetTcpStatistics for Solaris. --- dlls/iphlpapi/ipstats.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/dlls/iphlpapi/ipstats.c b/dlls/iphlpapi/ipstats.c index e8e87819b2d..7db48c6d329 100644 --- a/dlls/iphlpapi/ipstats.c +++ b/dlls/iphlpapi/ipstats.c @@ -649,6 +649,36 @@ DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS stats) ret = NO_ERROR; } } +#elif defined(HAVE_LIBKSTAT) + { + static char tcp[] = "tcp"; + kstat_ctl_t *kc; + kstat_t *ksp; + + if ((kc = kstat_open()) && + (ksp = kstat_lookup( kc, tcp, 0, tcp )) && + kstat_read( kc, ksp, NULL ) != -1 && + ksp->ks_type == KSTAT_TYPE_NAMED) + { + stats->dwRtoAlgorithm = kstat_get_ui32( ksp, "rtoAlgorithm" ); + stats->dwRtoMin = kstat_get_ui32( ksp, "rtoMin" ); + stats->dwRtoMax = kstat_get_ui32( ksp, "rtoMax" ); + stats->dwMaxConn = kstat_get_ui32( ksp, "maxConn" ); + stats->dwActiveOpens = kstat_get_ui32( ksp, "activeOpens" ); + stats->dwPassiveOpens = kstat_get_ui32( ksp, "passiveOpens" ); + stats->dwAttemptFails = kstat_get_ui32( ksp, "attemptFails" ); + stats->dwEstabResets = kstat_get_ui32( ksp, "estabResets" ); + stats->dwCurrEstab = kstat_get_ui32( ksp, "currEstab" ); + stats->dwInSegs = kstat_get_ui32( ksp, "inSegs" ); + stats->dwOutSegs = kstat_get_ui32( ksp, "outSegs" ); + stats->dwRetransSegs = kstat_get_ui32( ksp, "retransSegs" ); + stats->dwInErrs = kstat_get_ui32( ksp, "inErrs" ); + stats->dwOutRsts = kstat_get_ui32( ksp, "outRsts" ); + stats->dwNumConns = kstat_get_ui32( ksp, "connTableSize" ); + ret = NO_ERROR; + } + if (kc) kstat_close( kc ); + } #elif defined(HAVE_SYS_SYSCTL_H) && defined(UDPCTL_STATS) { #ifndef TCPTV_MIN /* got removed in Mac OS X for some reason */ -- 2.11.4.GIT