Improve error traces
[anna.git] / source / diameter / codec / Message.cpp
index 28a1d45..ddf7694 100644 (file)
@@ -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;
   }