Alexandre Julliard : iphlpapi: Implemented GetIpStatistics for Solaris.
Alexandre Julliard
julliard at winehq.org
Fri Mar 6 09:49:29 CST 2009
Module: wine
Branch: master
Commit: ac72b866035742e9f04ece2854ab3c7ac0e9a2c7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ac72b866035742e9f04ece2854ab3c7ac0e9a2c7
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Mar 5 19:25:36 2009 +0100
iphlpapi: Implemented GetIpStatistics for Solaris.
---
dlls/iphlpapi/ipstats.c | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/dlls/iphlpapi/ipstats.c b/dlls/iphlpapi/ipstats.c
index 888f95f..e8e8781 100644
--- a/dlls/iphlpapi/ipstats.c
+++ b/dlls/iphlpapi/ipstats.c
@@ -495,6 +495,41 @@ DWORD WINAPI GetIpStatistics(PMIB_IPSTATS stats)
ret = NO_ERROR;
}
}
+#elif defined(HAVE_LIBKSTAT)
+ {
+ static char ip[] = "ip";
+ kstat_ctl_t *kc;
+ kstat_t *ksp;
+
+ if ((kc = kstat_open()) &&
+ (ksp = kstat_lookup( kc, ip, 0, ip )) &&
+ kstat_read( kc, ksp, NULL ) != -1 &&
+ ksp->ks_type == KSTAT_TYPE_NAMED)
+ {
+ stats->dwForwarding = kstat_get_ui32( ksp, "forwarding" );
+ stats->dwDefaultTTL = kstat_get_ui32( ksp, "defaultTTL" );
+ stats->dwInReceives = kstat_get_ui32( ksp, "inReceives" );
+ stats->dwInHdrErrors = kstat_get_ui32( ksp, "inHdrErrors" );
+ stats->dwInAddrErrors = kstat_get_ui32( ksp, "inAddrErrors" );
+ stats->dwForwDatagrams = kstat_get_ui32( ksp, "forwDatagrams" );
+ stats->dwInUnknownProtos = kstat_get_ui32( ksp, "inUnknownProtos" );
+ stats->dwInDiscards = kstat_get_ui32( ksp, "inDiscards" );
+ stats->dwInDelivers = kstat_get_ui32( ksp, "inDelivers" );
+ stats->dwOutRequests = kstat_get_ui32( ksp, "outRequests" );
+ stats->dwRoutingDiscards = kstat_get_ui32( ksp, "routingDiscards" );
+ stats->dwOutDiscards = kstat_get_ui32( ksp, "outDiscards" );
+ stats->dwOutNoRoutes = kstat_get_ui32( ksp, "outNoRoutes" );
+ stats->dwReasmTimeout = kstat_get_ui32( ksp, "reasmTimeout" );
+ stats->dwReasmReqds = kstat_get_ui32( ksp, "reasmReqds" );
+ stats->dwReasmOks = kstat_get_ui32( ksp, "reasmOKs" );
+ stats->dwReasmFails = kstat_get_ui32( ksp, "reasmFails" );
+ stats->dwFragOks = kstat_get_ui32( ksp, "fragOKs" );
+ stats->dwFragFails = kstat_get_ui32( ksp, "fragFails" );
+ stats->dwFragCreates = kstat_get_ui32( ksp, "fragCreates" );
+ ret = NO_ERROR;
+ }
+ if (kc) kstat_close( kc );
+ }
#elif defined(HAVE_SYS_SYSCTL_H) && defined(IPCTL_STATS)
{
int mib[] = {CTL_NET, PF_INET, IPPROTO_IP, IPCTL_STATS};
More information about the wine-cvs
mailing list