From: Eduardo Ramos Testillano Date: Fri, 5 Feb 2016 01:14:06 +0000 (+0100) Subject: Improve error traces X-Git-Tag: REFACTORING_TESTING_LIBRARY~40 X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=commitdiff_plain;h=2e74c6e46b97d10eaa7ad547718540436a945ee4 Improve error traces --- diff --git a/source/diameter/codec/Avp.cpp b/source/diameter/codec/Avp.cpp index 89884be..a956aae 100644 --- a/source/diameter/codec/Avp.cpp +++ b/source/diameter/codec/Avp.cpp @@ -428,7 +428,9 @@ bool Avp::flagsOK() const throw() { const stack::Avp *stackAvp = getStackAvp(); if(!stackAvp) { - anna::Logger::error("Impossible to decide if flags are correct because stack avp is not identified. Assume flags ok", ANNA_FILE_LOCATION); + std::string msg = "Impossible to decide if flags are correct because stack avp is not identified. Assume flags ok for Avp "; + msg += anna::diameter::functions::avpIdAsPairString(a_id); + anna::Logger::error(msg, ANNA_FILE_LOCATION); return true; }; @@ -453,7 +455,9 @@ bool Avp::flagsOK() const throw() { // V-bit if((Vnone && Mnone && Pnone && vendorBit()) || (Vmust && !vendorBit()) || (Vmustnot && vendorBit())) { - anna::Logger::error("Vendor Bit (V) incoherence found", ANNA_FILE_LOCATION); + std::string msg = "Vendor Bit (V) incoherence found for Avp "; + msg += stackAvp->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); return false; } @@ -462,19 +466,25 @@ bool Avp::flagsOK() const throw() { // M-bit if((Mmust && !mandatoryBit()) || (Mmustnot && mandatoryBit())) { - anna::Logger::error("Mandatory Bit (M) incoherence found", ANNA_FILE_LOCATION); + std::string msg = "Mandatory Bit (M) incoherence found for Avp "; + msg += stackAvp->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); return false; } // P-bit if((Pmust && !encryptionBit()) || (Pmustnot && encryptionBit())) { - anna::Logger::error("Encryption Bit (P) incoherence found", ANNA_FILE_LOCATION); + std::string msg = "Encryption Bit (P) incoherence found for Avp "; + msg += stackAvp->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); return false; } // Reserved bits if((a_flags & 0x1f) != 0x00) { - anna::Logger::error("Any (or more than one) of the reserved avp flags bit has been activated. Reserved bits must be null", ANNA_FILE_LOCATION); + std::string msg = "Any (or more than one) of the reserved avp flags bit has been activated. Reserved bits must be null. Avp is "; + msg += stackAvp->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); return false; } diff --git a/source/diameter/codec/Message.cpp b/source/diameter/codec/Message.cpp index 28a1d45..ddf7694 100644 --- a/source/diameter/codec/Message.cpp +++ b/source/diameter/codec/Message.cpp @@ -150,7 +150,9 @@ bool Message::flagsOK(int &rc) const throw() { const stack::Command *stackCommand = getStackCommand(); if(!stackCommand) { - anna::Logger::error("Impossible to decide if flags are correct because stack command is not identified. Assume flags ok", ANNA_FILE_LOCATION); + std::string msg = "Impossible to decide if flags are correct because stack command is not identified. Assume flags ok for Message "; + msg += anna::diameter::functions::commandIdAsPairString(a_id); + anna::Logger::error(msg, ANNA_FILE_LOCATION); //rc = helpers::base::AVPVALUES__Result_Code::?????; return true; }; @@ -165,12 +167,16 @@ bool Message::flagsOK(int &rc) const throw() { if(stackCommand->isRequest() != isRequest()) ok = false; // en teoria es imposible salir por aqui: blindado en la dtd if(isRequest() && errorBit()) { - anna::Logger::error("E(rror) bit is not allowed at diameter requests", ANNA_FILE_LOCATION); + std::string msg = "E(rror) bit is not allowed at diameter requests as "; + msg += stackCommand->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); ok = false; } if(isAnswer() && potentiallyReTransmittedMessageBit()) { - anna::Logger::error("T(Potentially re-transmitted message) bit is not allowed at diameter answers", ANNA_FILE_LOCATION); + std::string msg = "T(Potentially re-transmitted message) bit is not allowed at diameter answers as "; + msg += stackCommand->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); ok = false; } @@ -185,7 +191,9 @@ bool Message::flagsOK(int &rc) const throw() { // is set to one (1) or the bits in the Diameter header are set // incorrectly. if((a_flags & 0x0f) != 0x00) { - anna::Logger::error("Any (or more than one) of the reserved message flags bit has been activated. Reserved bits must be null", ANNA_FILE_LOCATION); + std::string msg = "Any (or more than one) of the reserved message flags bit has been activated. Reserved bits must be null. Message is "; + msg += stackCommand->getName(); + anna::Logger::error(msg, ANNA_FILE_LOCATION); rc = helpers::base::AVPVALUES__Result_Code::DIAMETER_INVALID_BIT_IN_HEADER; return false; }