X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=dynamic%2Flauncher%2Fgx%2F00001%2FProcedure.cpp;h=20af42c08ba3810e90e4a9021c8c21753e6a975b;hp=086a0741ee176333f4a3a51be1cce3069fcf3d2f;hb=a4a2ff4e20ddc4c6de7f2d3efd3acfb16c0d91c1;hpb=61f81319bb14f08094488e8a2478ff4e0d6d661a diff --git a/dynamic/launcher/gx/00001/Procedure.cpp b/dynamic/launcher/gx/00001/Procedure.cpp index 086a074..20af42c 100644 --- a/dynamic/launcher/gx/00001/Procedure.cpp +++ b/dynamic/launcher/gx/00001/Procedure.cpp @@ -18,6 +18,7 @@ #include #include #include +#include // Local #include "Procedure.hpp" @@ -47,7 +48,7 @@ namespace { } } -void Procedure::execute(const std::string &args, std::string &response, anna::diameter::comm::OriginHost *originHost) throw(anna::RuntimeException) { +void Procedure::execute(const std::string &args, std::string &response) throw(anna::RuntimeException) { response = "Dynamic procedure failed to process '"; response += args; response += "': "; @@ -93,6 +94,7 @@ void Procedure::execute(const std::string &args, std::string &response, anna::di anna::diameter::codec::Message ccri, ccrt; anna::diameter::codec::Avp *ccri_sessionId, *ccrt_sessionId, *ccri_framedIPAddress, *ccrt_framedIPAddress, *ccri_msisdn, *ccri_imsi; anna::diameter::codec::Avp *si1, *si2, *sidata1, *sidata2, *sitype1; + anna::diameter::codec::Avp *ccri_originHost; ///////// CCR-Initial: ccri.loadXML(ccr_i); @@ -100,6 +102,7 @@ void Procedure::execute(const std::string &args, std::string &response, anna::di // Session-Id & Framed-Ip-Address AVPs ccri_sessionId = ccri.getAvp("Session-Id"); ccri_framedIPAddress = ccri.getAvp("Framed-IP-Address"); + ccri_originHost = ccri.getAvp("Origin-Host"); // Subscription-Id AVPs if (ccri.countAvp("Subscription-Id") != 2) { @@ -206,6 +209,12 @@ void Procedure::execute(const std::string &args, std::string &response, anna::di char cad_framed[16]; anna::testing::TestCase *tc; + // Origin host manager: + anna::diameter::comm::OriginHostManager &ohm = anna::diameter::comm::OriginHostManager::instantiate(); + // Assume the oh name from CCR-I (same as CCR-T): + std::string originHostName = ccri_originHost->getDiameterIdentity()->getValue(); + anna::diameter::comm::OriginHost *originHost = ohm.getOriginHost(originHostName); + for (ll_index = 0; ll_index < ll_seq_size; ll_index++) { // Calculate next values ////////////////////////////////////////////////////////////