X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=example%2Fdiameter%2Flauncher%2FLauncher.cpp;h=54fb7505fb3c6dd2a91d1873e5b8388d806af749;hp=d3a937305f661d0e1549dfce2a00b760475c4018;hb=HEAD;hpb=7681cb4079366eb6908dd5d0dc0124c3fcef4b6b diff --git a/example/diameter/launcher/Launcher.cpp b/example/diameter/launcher/Launcher.cpp index d3a9373..54fb750 100644 --- a/example/diameter/launcher/Launcher.cpp +++ b/example/diameter/launcher/Launcher.cpp @@ -362,7 +362,7 @@ void Launcher::servicesFromXML(const anna::xml::Node* servicesNode, bool bindRes } ///////////////////////////////////////////////////////////////////////////////////////////// - // Diameter communication engine: + // Diameter communication engine: ONE ENGINE PER OWN ORIGIN HOST std::string commEngineName = originHost->getValue() + "_DiameterCommEngine"; MyDiameterEngine *commEngine = new MyDiameterEngine(commEngineName.c_str(), bpd); commEngine->setAutoBind(false); // allow to create client-sessions without binding them, in order to set timeouts. @@ -372,7 +372,7 @@ void Launcher::servicesFromXML(const anna::xml::Node* servicesNode, bool bindRes if (originRealm) commEngine->setOriginRealmName(originRealm->getValue()); // Origin host node: - a_workingNode = new anna::diameter::comm::OriginHost((anna::diameter::comm::Engine*)commEngine, applicationId); + a_workingNode = new anna::diameter::comm::OriginHost((anna::diameter::comm::Engine*)commEngine, applicationId /* OriginHost constructor extracts corresponding stack codec engine */); a_workingNode->setRequestRetransmissions(retransmissions); ///////////////////////////////////////////////////////////////////////////////////////////// @@ -386,9 +386,13 @@ void Launcher::servicesFromXML(const anna::xml::Node* servicesNode, bool bindRes commEngine->setNumberOfClientSessionsPerServer(sessions); // Client CER and DWR - std::string cerPathfile = cer ? cer->getValue() : ""; - std::string dwrPathfile = dwr ? dwr->getValue() : ""; - commEngine->setClientCERandDWR(cerPathfile, dwrPathfile); + if (cer) { // pathfile provided + commEngine->setClientCER(cer->getValue()); + } + else { + commEngine->setClientCER(applicationId); // default engine CER + } + commEngine->setClientDWR(dwr ? dwr->getValue() : "" /* default DWR */); // Register one entity for this engine: a_workingNode->createEntity(entity->getValue(), ceaTimeoutMs, answersTimeoutMs); @@ -1236,16 +1240,16 @@ bool Launcher::eventOperation(const std::string &operation, std::string &respons } else if(opType == "answerxml2e") { if(param1 == "") { // programmed answers FIFO's to stdout - response = getOperatedEntity()->getReactingAnswers()->asString("ANSWERS TO ENTITY"); + response = getOperatedHost()->getReactingAnswers()->asString("ANSWERS TO ENTITY"); return true; // OK } else if (param1 == "rotate") { - getOperatedEntity()->getReactingAnswers()->rotate(true); + getOperatedHost()->getReactingAnswers()->rotate(true); } else if (param1 == "exhaust") { - getOperatedEntity()->getReactingAnswers()->rotate(false); + getOperatedHost()->getReactingAnswers()->rotate(false); } else if (param1 == "clear") { - getOperatedEntity()->getReactingAnswers()->clear(); + getOperatedHost()->getReactingAnswers()->clear(); } else if (param1 == "dump") { - getOperatedEntity()->getReactingAnswers()->dump("programmed_answer"); + getOperatedHost()->getReactingAnswers()->dump("programmed_answer"); } else { codecMsg.loadXMLFile(param1); updateOperatedOriginHostWithMessage(codecMsg); @@ -1257,21 +1261,21 @@ bool Launcher::eventOperation(const std::string &operation, std::string &respons int code = message->getId().first; LOGDEBUG(anna::Logger::debug("Adding a new programed 'answer to entity' to the FIFO queue corresponding to its message code ...", ANNA_FILE_LOCATION)); - getOperatedEntity()->getReactingAnswers()->addMessage(code, message); + getOperatedHost()->getReactingAnswers()->addMessage(code, message); } } else if(opType == "answerxml2c") { if(param1 == "") { // programmed answers FIFO's to stdout - response = getOperatedServer()->getReactingAnswers()->asString("ANSWERS TO CLIENT"); + response = getOperatedHost()->getReactingAnswers()->asString("ANSWERS TO CLIENT"); return true; // OK } else if (param1 == "rotate") { - getOperatedServer()->getReactingAnswers()->rotate(true); + getOperatedHost()->getReactingAnswers()->rotate(true); } else if (param1 == "exhaust") { - getOperatedServer()->getReactingAnswers()->rotate(false); + getOperatedHost()->getReactingAnswers()->rotate(false); } else if (param1 == "clear") { - getOperatedServer()->getReactingAnswers()->clear(); + getOperatedHost()->getReactingAnswers()->clear(); } else if (param1 == "dump") { - getOperatedServer()->getReactingAnswers()->dump("programmed_answer"); + getOperatedHost()->getReactingAnswers()->dump("programmed_answer"); } else { codecMsg.loadXMLFile(param1); updateOperatedOriginHostWithMessage(codecMsg); @@ -1283,7 +1287,7 @@ bool Launcher::eventOperation(const std::string &operation, std::string &respons int code = message->getId().first; LOGDEBUG(anna::Logger::debug("Adding a new programed 'answer to client' to the FIFO queue corresponding to its message code ...", ANNA_FILE_LOCATION)); - getOperatedServer()->getReactingAnswers()->addMessage(code, message); + getOperatedHost()->getReactingAnswers()->addMessage(code, message); } } else if((opType == "burst")) {