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;
};
// 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;
}
// 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;
}
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;
};
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;
}
// 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;
}