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; } }