#include <anna/diameter.comm/Server.hpp>
// Process
-#include "MyLocalServer.hpp"
-#include "MyDiameterEngine.hpp"
-#include "MyDiameterEntity.hpp"
-#include "Launcher.hpp"
-#include "RealmNode.hpp"
+#include <MyLocalServer.hpp>
+#include <MyDiameterEngine.hpp>
+#include <MyDiameterEntity.hpp>
+#include <Launcher.hpp>
+#include <RealmNode.hpp>
+#include <TestManager.hpp>
void MyLocalServer::eventRequest(anna::diameter::comm::ServerSession *serverSession, const anna::DataBlock &message)
Launcher& my_app = static_cast <Launcher&>(anna::app::functions::getApp());
RealmNode * my_node = my_app.getRealmNode(getEngine()->getRealm());
+ // Testing:
+ TestManager::instantiate().receiveMessage(message, serverSession);
+
// CommandId:
anna::diameter::CommandId cid = anna::diameter::codec::functions::getCommandId(message);
LOGDEBUG
if(!analysisOK)
a_codecEngine->setValidationMode(anna::diameter::codec::Engine::ValidationMode::Never);
+ anna::diameter::comm::Message *msg;
try {
- anna::diameter::comm::Message *msg = my_node->createCommMessage();
+ msg = my_node->createCommMessage();
msg->setBody(answer_message->code());
/* response = NULL =*/serverSession->send(msg);
- my_node->releaseCommMessage(msg);
if(my_node->logEnabled()) my_node->writeLogFile(*answer_message, "sent2c", serverSession->asString());
} catch(anna::RuntimeException &ex) {
if(my_node->logEnabled()) my_node->writeLogFile(*answer_message, "send2cError", serverSession->asString());
}
+ // release msg
+ my_node->releaseCommMessage(msg);
+
// Restore validation mode
a_codecEngine->setValidationMode(backupVM);
bool contextExpired = (result == anna::diameter::comm::Response::ResultCode::Timeout);
bool isUnavailable = (result == anna::diameter::comm::Response::ResultCode::DiameterUnavailable);
bool isOK = (result == anna::diameter::comm::Response::ResultCode::Success);
+
+ // Testing:
+ TestManager::instantiate().receiveMessage(*message, serverSession);
+
// CommandId:
anna::diameter::CommandId request_cid = request->getCommandId();
LOGDEBUG
std::string detail;
if(my_node->logEnabled()) detail = usedClientSession ? usedClientSession->asString() : "<null client session>"; // this should not happen
+ anna::diameter::comm::Message *msg;
try {
- anna::diameter::comm::Message *msg = my_node->createCommMessage();
+ msg = my_node->createCommMessage();
msg->forwardEndToEnd(); // end-to-end will be kept
msg->setBody(*message);
//msg->setRequestClientSessionKey(request->getRequestClientSessionKey());
//bool success = entity->send(msg);
- my_node->releaseCommMessage(msg);
- my_node->releaseCommMessage(request);
-
if(my_node->logEnabled()) my_node->writeLogFile(*message, "fwd2e", detail); // forwarded
} catch(anna::RuntimeException &ex) {
ex.trace();
if(my_node->logEnabled()) my_node->writeLogFile(*message, "fwd2eError", detail); // forwarded
}
+
+ // release msgs
+ my_node->releaseCommMessage(msg);
+ my_node->releaseCommMessage(request);
}
}
}