diff --git a/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt b/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt index 5cef6fc..c508dde 100644 --- a/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt +++ b/smmapdfw/mib/DE-HOTTIS-SMMAPD-MIB.txt @@ -283,5 +283,72 @@ dhsVReturnedTNOK OBJECT-TYPE ::= { dhsVerifierStat 12 } +DhsCyrusStat ::= + SEQUENCE { + dhsCWorker Counter32, + dhsCIllegalInput Counter32, + dhsCDepotDNSFailure Counter32, + dhsCReturnedOK Counter32, + dhsCReturnedNOK Counter32, + dhsCReturnedTNOK Counter32 + } + +dhsCyrusStat OBJECT-TYPE + SYNTAX DhsCyrusStat + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Statistics of the cyrus checker" + ::= { dhsSmmapdStats 4 } + + +dhsCWorker OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers" + ::= { dhsCyrusStat 1 } + +dhsCIllegalInput OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers with illegal input" + ::= { dhsCyrusStat 2 } + +dhsCDepotDNSFailure OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers with depot DNS failure" + ::= { dhsCyrusStat 3 } + +dhsCReturnedOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers returned OK" + ::= { dhsCyrusStat 4 } + +dhsCReturnedNOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers returned NOK" + ::= { dhsCyrusStat 5 } + +dhsCReturnedTNOK OBJECT-TYPE + SYNTAX Counter32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "cyrus checkers returned TNOK" + ::= { dhsCyrusStat 6 } + END diff --git a/smmapdfw/smmapd/snmp_subagent.c b/smmapdfw/smmapd/snmp_subagent.c index 773823b..0898709 100644 --- a/smmapdfw/smmapd/snmp_subagent.c +++ b/smmapdfw/smmapd/snmp_subagent.c @@ -74,26 +74,24 @@ handle_it(netsnmp_mib_handler *handler, netsnmp_request_info *requests, u_char type) { - int i, cnt, value; + int i, cnt, value, res; for (i=0; ihandlerName, var_cnt_map[i].var)) { cnt = var_cnt_map[i].cnt; break; } - switch(reqinfo->mode) { - case MODE_GET: + if (MODE_GET == reqinfo->mode) { value = getStatCounter(cnt); snmp_set_var_typed_value(requests->requestvb, type, (u_char *) &value, sizeof(value)); - break; - - default: - return SNMP_ERR_GENERR; + res = SNMP_ERR_NOERROR; + } else { + res = SNMP_ERR_GENERR; } - - return SNMP_ERR_NOERROR; + + return res; } int @@ -154,6 +152,14 @@ init_dhsMIBObjects(void) static oid dhsVReturnedNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,11 }; static oid dhsVReturnedTNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,3,12 }; + static oid dhsCWorker_oid[] = { 1,3,6,1,4,1,9676,2,1,4,1 }; + static oid dhsCIllegalInput_oid[] = { 1,3,6,1,4,1,9676,2,1,4,2 }; + static oid dhsCDepotDNSFailure_oid[] = { 1,3,6,1,4,1,9676,2,1,4,3 }; + static oid dhsCReturnedOK_oid[] = { 1,3,6,1,4,1,9676,2,1,4,4 }; + static oid dhsCReturnedNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,4,5 }; + static oid dhsCReturnedTNOK_oid[] = { 1,3,6,1,4,1,9676,2,1,4,6 }; + + DEBUGMSGTL(("dhsMIBObjects", "Initializing\n")); NETSNMP_REGISTER_SCALAR(dhsNumber1, handle_number1, 0); @@ -184,6 +190,12 @@ init_dhsMIBObjects(void) NETSNMP_REGISTER_SCALAR(dhsVReturnedNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_NOK); NETSNMP_REGISTER_SCALAR(dhsVReturnedTNOK, handle_counter32, STAT_CNT_VERIFIER_RETURNED_TNOK); + NETSNMP_REGISTER_SCALAR(dhsCWorker, handle_counter32, STAT_CNT_CYRUS_WORKER); + NETSNMP_REGISTER_SCALAR(dhsCIllegalInput, handle_counter32, STAT_CNT_CYRUS_ILLEGAL_INPUT); + NETSNMP_REGISTER_SCALAR(dhsCDepotDNSFailure, handle_counter32, STAT_CNT_CYRUS_DEPOT_DNS_FAILURE); + NETSNMP_REGISTER_SCALAR(dhsCReturnedOK, handle_counter32, STAT_CNT_CYRUS_RETURNED_OK); + NETSNMP_REGISTER_SCALAR(dhsCReturnedNOK, handle_counter32, STAT_CNT_CYRUS_RETURNED_NOK); + NETSNMP_REGISTER_SCALAR(dhsCReturnedTNOK, handle_counter32, STAT_CNT_CYRUS_RETURNED_TNOK); }