changeset 1645:5c0acafdc2b5

* src/mibgroup/mibII/helpers.c (cyg_snmp_num_interfaces): return correct number of interfaces including the loopback interface. * src/mibgroup/mibII/helpers (cyg_snmp_get_if) increment the interface index properly. * src/mibgroup/mibII/interfaces.c (var_ifTable): Add case for IFT_PPP interface type.
author asl
date Wed, 19 May 2004 13:12:22 +0000
parents 3a6958b01762
children bd46419bc8c4
files packages/net/snmp/agent/current/ChangeLog packages/net/snmp/agent/current/src/mibgroup/mibII/helpers.c packages/net/snmp/agent/current/src/mibgroup/mibII/interfaces.c
diffstat 3 files changed, 19 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/snmp/agent/current/ChangeLog
+++ b/packages/net/snmp/agent/current/ChangeLog
@@ -1,3 +1,12 @@
+2004-05-14	Matt Jerdonek	<maj1224@yahoo.com>
+
+	* src/mibgroup/mibII/helpers.c (cyg_snmp_num_interfaces): return
+	correct number of interfaces including the loopback interface.  
+	* src/mibgroup/mibII/helpers (cyg_snmp_get_if) increment the
+	interface index properly.  
+	* src/mibgroup/mibII/interfaces.c (var_ifTable): Add case 
+	for IFT_PPP interface type.
+
 2003-10-09  Roland Cassebohm  <roland.cassebohm@visionsystems.de>
   
 	* src/mibgroup/mibII/dot3.c: Make sure the agent responses with
--- a/packages/net/snmp/agent/current/src/mibgroup/mibII/helpers.c
+++ b/packages/net/snmp/agent/current/src/mibgroup/mibII/helpers.c
@@ -55,7 +55,7 @@
 #include <sys/socket.h>
 #include <sys/time.h>
 #include <net/if.h>
-#include <net/if.h>
+#include <net/if_types.h>
 
 /* How many interfaces are there? */
 
@@ -64,9 +64,9 @@ extern struct ifaddr **ifnet_addrs;
 
 long cyg_snmp_num_interfaces(void) {
   long long_ret=0;
-  int cnt = if_index;
+  int cnt = if_index - 1;
   
-  while (cnt > 0) {
+  while (cnt >= 0) {
     if (ifnet_addrs[cnt] != 0) {
       long_ret++;
     }
@@ -78,12 +78,15 @@ long cyg_snmp_num_interfaces(void) {
 struct ifnet *cyg_snmp_get_if(int if_num) {
   int index = 0;
   struct ifnet *ifp;
+  
   do {
     while(0 == ifnet_addrs[index])
       index++;
 
     ifp = ifnet_addrs[index]->ifa_ifp;
-    if_num--;
+    
+    if_num--;	    
+    index++;
   } while (if_num);
 
   return ifp;
--- a/packages/net/snmp/agent/current/src/mibgroup/mibII/interfaces.c
+++ b/packages/net/snmp/agent/current/src/mibgroup/mibII/interfaces.c
@@ -371,6 +371,9 @@ var_ifTable(struct variable *vp,
         case IFT_PROPVIRTUAL:
             strcpy( string, "(Proprietary Virtual/Internal)" );
             break;
+        case IFT_PPP:
+        	strcpy( string, "(Point to point interface)" );
+        	break;
         default:
             strcpy( string, "Some shy network adaptor" );
             break;