#include <anna/diameter/stack/Engine.hpp>
#include <anna/diameter/codec/Engine.hpp>
#include <anna/core/functions.hpp>
+#include <anna/core/util/RegularExpression.hpp>
#include <anna/core/tracing/Logger.hpp>
#include <anna/core/functions.hpp>
int avpPos = 0;
Avp* avp;
anna::DataBlock db;
-
// Me as parent:
parent_t me = parent;
me.addAvp(a_id);
// 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
}
+//------------------------------------------------------------------------------
+//---------------------------------------------------------------- Avp::decode()
+//------------------------------------------------------------------------------
+void Avp::decode(const anna::DataBlock &db) throw(anna::RuntimeException) {
+ parent_t parent;
+ parent.setMessage(CommandId(0, false), "No-Parent");
+ decode(db, parent, NULL);
+}
+
+
//------------------------------------------------------------------------------
//--------------------------------------------------------------- Avp::fromXML()
//------------------------------------------------------------------------------
return result;
}
+
//------------------------------------------------------------------------------
//----------------------------------------------------------- Avp::asXMLString()
//------------------------------------------------------------------------------
return anna::xml::Compiler().apply(asXML(&root));
}
+
+//------------------------------------------------------------------------------
+//---------------------------------------------------------------- Avp::isLike()
+//------------------------------------------------------------------------------
+bool Avp::isLike(const std::string &pattern) const throw() {
+ anna::RegularExpression re(pattern);
+ return re.isLike(asXMLString());
+}