X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter%2Fcodec%2FAvp.cpp;fp=source%2Fdiameter%2Fcodec%2FAvp.cpp;h=3a2c9b0732e9cd8335556adc61436d75b430de22;hb=4456556fc4cd3d24eab8d555acceae339d476c5b;hp=97437c1b40ed8fe4a5e2c59470f3f868c53139d0;hpb=5b5f15c4ceaa303e2f1d577899b3afa5aff86bb8;p=anna.git diff --git a/source/diameter/codec/Avp.cpp b/source/diameter/codec/Avp.cpp index 97437c1..3a2c9b0 100644 --- a/source/diameter/codec/Avp.cpp +++ b/source/diameter/codec/Avp.cpp @@ -687,7 +687,6 @@ void Avp::decodeDataPart(const char * buffer, int size, const parent_t & parent, int avpPos = 0; Avp* avp; anna::DataBlock db; - // Me as parent: parent_t me = parent; me.addAvp(a_id); @@ -786,13 +785,12 @@ void Avp::decode(const anna::DataBlock &db, const parent_t & parent, Message *an // a Diameter client, server, proxy, or translation agent and either the AVP or its value is unrecognized, the message MUST be rejected. // Diameter Relay and redirect agents MUST NOT reject messages with unrecognized AVPs. if(!getStackAvp() && mandatoryBit()) { + if(answer) { + answer->setResultCode(helpers::base::AVPVALUES__Result_Code::DIAMETER_AVP_UNSUPPORTED); + answer->setFailedAvp(parent, a_id); + } - if(answer) { - answer->setResultCode(helpers::base::AVPVALUES__Result_Code::DIAMETER_AVP_UNSUPPORTED); - answer->setFailedAvp(parent, a_id); - } - - unknownAvpWithMandatoryBit(); + unknownAvpWithMandatoryBit(); } // Avp Length @@ -1318,9 +1316,8 @@ std::string Avp::getXMLdata(bool & isHex, const stack::Format *stackFormat) cons //---------------------------------------------------------------- Avp::decode() //------------------------------------------------------------------------------ void Avp::decode(const anna::DataBlock &db) throw(anna::RuntimeException) { - parent_t parent; - parent.setMessage(CommandId(0,false), "No-Parent"); + parent.setMessage(CommandId(0, false), "No-Parent"); decode(db, parent, NULL); }