Add nlohmann/json parser
[anna.git] / source / diameter / codec / Message.cpp
index 0b4d802..31b7d14 100644 (file)
@@ -557,6 +557,8 @@ void Message::setStandardToAnswer(const Message &request, const std::string &ori
   // Session-Id if exists:
   const Avp *reqSessionId = request.getAvp(helpers::base::AVPID__Session_Id, 1, anna::Exception::Mode::Ignore);
 
+  LOGDEBUG(anna::Logger::debug("Check answer message AVPs Session-Id, Origin-Host and Origin-Realm => replace them if missing, with request session-id & node configuration:", ANNA_FILE_LOCATION));
+
   if(reqSessionId)
     if(!getAvp(helpers::base::AVPID__Session_Id, 1, anna::Exception::Mode::Ignore))
       addAvp(helpers::base::AVPID__Session_Id)->getUTF8String()->setValue(reqSessionId->getUTF8String()->getValue());
@@ -759,15 +761,25 @@ const anna::DataBlock & Message::code() throw(anna::RuntimeException) {
 }
 
 //------------------------------------------------------------------------------
-//----------------------------------------------------------- Message::loadXML()
+//------------------------------------------------------- Message::loadXMLFile()
 //------------------------------------------------------------------------------
-void Message::loadXML(const std::string &xmlPathFile) throw(anna::RuntimeException) {
+void Message::loadXMLFile(const std::string &xmlPathFile) throw(anna::RuntimeException) {
 
   anna::xml::DocumentFile xmlDocument;
   anna::diameter::codec::functions::messageXmlDocumentFromXmlFile(xmlDocument, xmlPathFile);
   fromXML(xmlDocument.getRootNode());
 }
 
+//------------------------------------------------------------------------------
+//----------------------------------------------------- Message::loadXMLString()
+//------------------------------------------------------------------------------
+void Message::loadXMLString(const std::string &xmlString) throw(anna::RuntimeException) {
+
+  anna::xml::DocumentMemory xmlDocument;
+  anna::diameter::codec::functions::messageXmlDocumentFromXmlString(xmlDocument, xmlString);
+  fromXML(xmlDocument.getRootNode());
+}
+
 //------------------------------------------------------------------------------
 //----------------------------------------------------------- Message::fromXML()
 //------------------------------------------------------------------------------