Blob Blame History Raw
diff -urNp orig/agent/mibgroup/sctp-mib/sctpScalars_linux.c new/agent/mibgroup/sctp-mib/sctpScalars_linux.c
--- orig/agent/mibgroup/sctp-mib/sctpScalars_linux.c	2016-08-25 09:18:55.239801239 +0200
+++ new/agent/mibgroup/sctp-mib/sctpScalars_linux.c	2016-08-25 10:37:02.416999975 +0200
@@ -84,17 +84,17 @@ netsnmp_access_sctp_stats_arch_load(nets
             return -1;
         }
 
-        if (line[6] == 'r')
+        if (line[4] == 'C' && line[8] == 'E')
             sctp_stats->curr_estab = value;
-        else if (line[5] == 'c')
+        else if (line[4] == 'A' && line[10] == 'E')
             sctp_stats->active_estabs = value;
-        else if (line[4] == 'P')
+        else if (line[4] == 'P' && line[11] == 'E')
             sctp_stats->passive_estabs = value;
-        else if (line[5] == 'b')
+        else if (line[4] == 'a' && line[5] == 'b')
             sctp_stats->aborteds = value;
-        else if (line[4] == 'S')
+        else if (line[4] == 'S' && line[5] == 'h')
             sctp_stats->shutdowns = value;
-        else if (line[8] == 'f')
+        else if (line[4] == 'O' && line[9] == 'B')
             sctp_stats->out_of_blues = value;
         else if (line[6] == 'e')
             sctp_stats->checksum_errors = value;
@@ -113,7 +113,7 @@ netsnmp_access_sctp_stats_arch_load(nets
                 sctp_stats->out_sctp_packs.high = value >> 32;
             } else
                 ret = -1;
-        } else {
+        } else if (line[4] == 'I'){
             if (line[6] == 'C') {
                 sctp_stats->in_ctrl_chunks.low = value & 0xffffffff;
                 sctp_stats->in_ctrl_chunks.high = value >> 32;
@@ -123,24 +123,27 @@ netsnmp_access_sctp_stats_arch_load(nets
             } else if (line[6] == 'U') {
                 sctp_stats->in_unorder_chunks.low = value & 0xffffffff;
                 sctp_stats->in_unorder_chunks.high = value >> 32;
-            } else if (line[4] == 'F') {
-                sctp_stats->frag_usr_msgs.low = value & 0xffffffff;
-                sctp_stats->frag_usr_msgs.high = value >> 32;
-            } else if (line[4] == 'R') {
-                sctp_stats->reasm_usr_msgs.low = value & 0xffffffff;
-                sctp_stats->reasm_usr_msgs.high = value >> 32;
             } else if (line[6] == 'S') {
                 sctp_stats->in_sctp_packs.low = value & 0xffffffff;
                 sctp_stats->in_sctp_packs.high = value >> 32;
-            } else
+            } else {
                 ret = -1;
+	    }
+	} else if (line[4] == 'F' && line[8] == 'U') {
+	    sctp_stats->frag_usr_msgs.low = value & 0xffffffff;
+	    sctp_stats->frag_usr_msgs.high = value >> 32;
+	} else if (line[4] == 'R') {
+	    sctp_stats->reasm_usr_msgs.low = value & 0xffffffff;
+	    sctp_stats->reasm_usr_msgs.high = value >> 32;
+	} else if (line[4] == 'T') {
+	} else {
+	    ret = -1;
         }
 
         if (ret < 0) {
             DEBUGMSGTL(("sctp:scalars:stats:arch_load",
-                        "Unknown entry!'\n"));
-            fclose(f);
-            return ret;
+                        "Unknown entry: %s\n", line));
+            ret = 0;
         }
     }