1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
10 #include <anna/core/core.hpp>
11 #include <anna/diameter/codec/functions.hpp>
13 //#include <anna/time/functions.hpp>
14 //#include <anna/diameter.comm/Response.hpp>
15 //#include <anna/diameter.comm/ClientSession.hpp>
16 //#include <anna/diameter/helpers/base/functions.hpp>
17 //#include <anna/diameter/helpers/dcca/functions.hpp>
20 #include <MyDiameterEngine.hpp>
23 void MyDiameterEngine::readCEA(anna::DataBlock &cea, const anna::DataBlock & cer) throw() {
25 LOGMETHOD(anna::TraceMethod tm("launcher::MyDiameterEngine", "readCEA", ANNA_FILE_LOCATION));
27 // Default implementation:
28 if (a_ceaPathfile == "")
29 return anna::diameter::comm::Engine::readCEA(cea, cer);
31 // if(codec::functions::getCommandId(cer) != helpers::base::COMMANDID__Capabilities_Exchange_Answer) {
32 //throw anna::RuntimeException("The message provided as 'CEA' is not a Capabilities-Exchange-Answer",
35 anna::diameter::codec::Message diameterCEA(getBaseProtocolCodecEngine());
37 diameterCEA.loadXML(a_ceaPathfile);
38 diameterCEA.setHopByHop(anna::diameter::codec::functions::getHopByHop(cer));
39 diameterCEA.setEndToEnd(anna::diameter::codec::functions::getEndToEnd(cer));
40 cea = diameterCEA.code();
42 } catch(anna::RuntimeException &ex) {
44 LOGWARNING(anna::Logger::warning("CEA file not found or unable to parse. Encoding harcoded default version ...", ANNA_FILE_LOCATION));
45 //return anna::diameter::comm::Engine::readCEA(cea, cer);
46 // will fail with empty cea