]> git.stg.codes - ssmd.git/blobdiff - src/snmptable.cpp
Removed GTS string.
[ssmd.git] / src / snmptable.cpp
index b0aaba33d0f987aa9165bc33e9e44dac302f753e..d9f8ae6ea682ee78bd19c0e971eefd0337b131a0 100644 (file)
@@ -1,7 +1,7 @@
 #include "snmptable.h"
 #include "logger.h"
 
-using GTS::SNMPTable;
+using SSMD::SNMPTable;
 
 SNMPTable::SNMPTable(Snmp & snmp,
                      const CTarget & target,
@@ -11,8 +11,12 @@ SNMPTable::SNMPTable(Snmp & snmp,
     Vb vb(oid);
     Pdu pdu(&vb, 1);
     while (true) {
-        if (snmp.get_next(pdu, target) != SNMP_CLASS_SUCCESS) {
-            logger << "SNMPTable::SNMPTable() - failed to invoke Snmp::get_next (oid: '" << oid.get_printable() << "')" << std::endl;
+        int c = snmp.get_next(pdu, target);
+        for (size_t i = 0; i < 3 && c != SNMP_CLASS_SUCCESS; ++i) {
+            c = snmp.get_next(pdu, target);
+        }
+        if (c != SNMP_CLASS_SUCCESS) {
+            logger << "SNMPTable::SNMPTable() - failed to invoke Snmp::get_next (oid: '" << oid.get_printable() << "'). Error message: '" << Snmp::error_msg(c) << "'" << std::endl;
             return;
         }
         if (pdu.get_vb(0).get_oid().nCompare(oid.len(), oid) != 0) {