X-Git-Url: https://git.stg.codes/ssmd.git/blobdiff_plain/6b235fa5a6fd3b514febe5b1328f97df14fb10bc..82a6c22158618bc1e7738bf08bf1b305179935dc:/src/switch.cpp diff --git a/src/switch.cpp b/src/switch.cpp index db8a1be..f189ba6 100644 --- a/src/switch.cpp +++ b/src/switch.cpp @@ -221,8 +221,10 @@ bool Switch::dropACLsByTable(const CTarget & target, unsigned profileId, const S pdu += vb; } if (int c = _snmp.set(pdu, target) != SNMP_CLASS_SUCCESS) { - logger << "Switch::dropACLsByTable() - failed to invoke Snmp::set for the switch '" << _ip << "'. Error message: '" << Snmp::error_msg(c) << "'" << std::endl; - return false; + if (c != SNMP_ERROR_TOO_BIG) { + logger << "Switch::dropACLsByTable() - failed to invoke Snmp::set for the switch '" << _ip << "'. Error message: '" << Snmp::error_msg(c) << "'" << std::endl; + return false; + } } } return true; @@ -231,14 +233,19 @@ bool Switch::dropACLsByTable(const CTarget & target, unsigned profileId, const S bool Switch::createACLs(const CTarget & target) { std::vector::const_iterator it; + size_t pos = 0; for (it = _acls.begin(); it != _acls.end(); ++it) { Pdu pdu; it->appendPdu(pdu); if (int c = _snmp.set(pdu, target) != SNMP_CLASS_SUCCESS) { - logger << "Switch::createACLs() - failed to invoke Snmp::set for the switch '" << _ip << "'. Error message: '" << Snmp::error_msg(c) << "'" << std::endl; - return false; + if (c != SNMP_ERROR_TOO_BIG) { + logger << "Switch::createACLs() - failed to invoke Snmp::set for the switch '" << _ip << "'. Error message: '" << Snmp::error_msg(c) << "'. Error occured at creation of " << (pos + 1) << " from " << _acls.size() << " ACL's" << std::endl; + logger << "Switch::createACLs() - ACL dump: " << *it << std::endl; + return false; + } } _aclsCreated = true; + ++pos; } return true; }