X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=dynamic%2Flauncher%2Fgx%2F00001%2FProcedure.cpp;h=20af42c08ba3810e90e4a9021c8c21753e6a975b;hb=2d7dfbcf8e2318f57625d4adab7a3677343b990e;hp=b74f362a7f457ec2c8eda8489a91ad0b53cbbda9;hpb=bdad30af20ea24102db5cf439fd2eb7e2ac9b0c5;p=anna.git diff --git a/dynamic/launcher/gx/00001/Procedure.cpp b/dynamic/launcher/gx/00001/Procedure.cpp index b74f362..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 += "': "; @@ -92,7 +93,8 @@ void Procedure::execute(const std::string &args, std::string &response, anna::di // Load xml messages: 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, *sitype2; + 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 ////////////////////////////////////////////////////////////