$OpenBSD: patch-agent_mibgroup_if-mib_data_access_interface_sysctl_c,v 1.2 2010/05/19 15:50:00 sthen Exp $
--- agent/mibgroup/if-mib/data_access/interface_sysctl.c.orig	Sat Mar 13 01:01:16 2010
+++ agent/mibgroup/if-mib/data_access/interface_sysctl.c	Sat Mar 13 01:01:09 2010
@@ -183,6 +183,7 @@ netsnmp_sysctl_ifmedia_to_speed(int media, u_int *spee
 #endif
             }
             break;
+#if defined(IFM_TOKEN)
         case IFM_TOKEN:
             switch (IFM_SUBTYPE(media)) {
                 case IFM_TOK_STP4:
@@ -201,9 +202,10 @@ netsnmp_sysctl_ifmedia_to_speed(int media, u_int *spee
                     *speed = 100000000;
                     *speed_high = 100;
                     break;
-#endif
+#endif /* IFM_TOKEN */
             }
             break;
+#endif
 #ifdef IFM_ATM
         case IFM_ATM:
             switch (IFM_SUBTYPE(media)) {
@@ -451,22 +453,22 @@ netsnmp_arch_interface_container_load(netsnmp_containe
             NETSNMP_INTERFACE_FLAGS_HAS_V6_REASMMAX;
 
         /* get counters */
-        entry->stats.ibytes.low = ifp->ifm_data.ifi_ibytes;
-        entry->stats.ibytes.high = 0;
-        entry->stats.iucast.low = ifp->ifm_data.ifi_ipackets;
-        entry->stats.iucast.high = 0;
-        entry->stats.imcast.low = ifp->ifm_data.ifi_imcasts;
-        entry->stats.imcast.high = 0;
+        entry->stats.ibytes.low = ifp->ifm_data.ifi_ibytes & 0xffffffff;
+        entry->stats.ibytes.high = ifp->ifm_data.ifi_ibytes >> 32;
+        entry->stats.iucast.low = ifp->ifm_data.ifi_ipackets & 0xffffffff;
+        entry->stats.iucast.high = ifp->ifm_data.ifi_ipackets >> 32;
+        entry->stats.imcast.low = ifp->ifm_data.ifi_imcasts & 0xffffffff;
+        entry->stats.imcast.high = ifp->ifm_data.ifi_imcasts >> 32;
         entry->stats.ierrors = ifp->ifm_data.ifi_ierrors;
         entry->stats.idiscards = ifp->ifm_data.ifi_iqdrops;
         entry->stats.iunknown_protos = ifp->ifm_data.ifi_noproto;
 
-        entry->stats.obytes.low = ifp->ifm_data.ifi_obytes;
-        entry->stats.obytes.high = 0;
-        entry->stats.oucast.low = ifp->ifm_data.ifi_opackets;
-        entry->stats.oucast.high = 0;
-        entry->stats.omcast.low = ifp->ifm_data.ifi_omcasts;
-        entry->stats.omcast.high = 0;
+        entry->stats.obytes.low = ifp->ifm_data.ifi_obytes & 0xffffffff;
+        entry->stats.obytes.high = ifp->ifm_data.ifi_obytes >> 32;
+        entry->stats.oucast.low = ifp->ifm_data.ifi_opackets & 0xffffffff;
+        entry->stats.oucast.high = ifp->ifm_data.ifi_opackets >> 32;
+        entry->stats.omcast.low = ifp->ifm_data.ifi_omcasts & 0xffffffff;
+        entry->stats.omcast.high = ifp->ifm_data.ifi_omcasts >> 32;
         entry->stats.oerrors = ifp->ifm_data.ifi_oerrors;
         entry->ns_flags |=  NETSNMP_INTERFACE_FLAGS_HAS_BYTES |
                             NETSNMP_INTERFACE_FLAGS_HAS_DROPS |
