X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter%2Fcodec%2FAvp.cpp;h=3a2c9b0732e9cd8335556adc61436d75b430de22;hb=ad7fdc865803176f1dd1696960073f616cfa3fda;hp=97437c1b40ed8fe4a5e2c59470f3f868c53139d0;hpb=e7dbacff41163bf8cefb267daae84d96056ebc86;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); }