}
/////////////////////////////////////////////////////////////////////////////////////////////
- // 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.
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);
/////////////////////////////////////////////////////////////////////////////////////////////
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);
} 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);
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);
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")) {