X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter.comm%2FEngine.cpp;h=d43da75bb35c37c7b023fafe5efd184acfdebacd;hb=0c533bf948a63d134c8001e16b15194b197cb99a;hp=9bfaf60dc0ffa88e07048d245f7550f048c20805;hpb=2921c651c9945cefec0715167201596aaa079e8d;p=anna.git diff --git a/source/diameter.comm/Engine.cpp b/source/diameter.comm/Engine.cpp index 9bfaf60..d43da75 100644 --- a/source/diameter.comm/Engine.cpp +++ b/source/diameter.comm/Engine.cpp @@ -16,7 +16,6 @@ #include #include #include - #include #include #include @@ -60,14 +59,13 @@ comm::Engine::Engine(const char *className, const stack::Dictionary *baseProtoco a_watchdogPeriod(ClientSession::DefaultWatchdogPeriod), a_maxConnectionDelay(anna::comm::ClientSocket::DefaultMaxConnectionDelay /* 200 ms*/), a_numberOfClientSessionsPerServer(1), - a_baseProtocolCodecEngine((std::string("baseProtocolCodecEngine_for_") + std::string(className)).c_str()) + a_baseProtocolCodecEngine((std::string("baseProtocolCodecEngine_for_") + std::string(className)).c_str(), baseProtocolDictionary) { anna::diameter::sccs::activate(); - a_realm = anna::functions::getDomainname(); - a_host = anna::functions::getHostname(); + a_originRealm = anna::functions::getDomainname(); + a_originHost = anna::functions::getHostname(); // Internal base protocol codec engine: - a_baseProtocolCodecEngine.setDictionary(baseProtocolDictionary); a_baseProtocolCodecEngine.setValidationMode(anna::diameter::codec::Engine::ValidationMode::Always); // default was: after decoding } @@ -117,8 +115,8 @@ void comm::Engine::setClientCERandDWR(const std::string & cer, const std::string // * [Acct-Application-Id] 259 Unsigned32 anna::diameter::codec::Message diameterCER(getBaseProtocolCodecEngine()); int applicationId = 0 /*anna::diameter::helpers::APPID__3GPP_Rx*/; // Unsigned32 - std::string OH = getHost(); - std::string OR = getRealm(); + std::string OH = getOriginHost(); + std::string OR = getOriginRealm(); std::string hostIP = anna::functions::getHostnameIP(); // Address int vendorId = anna::diameter::helpers::VENDORID__tgpp; // Unsigned32 std::string productName = "ANNA Diameter Client"; // UTF8String @@ -275,7 +273,7 @@ throw(anna::RuntimeException) { result->setCategory(category); result->setDescription(description); result->setAllowedInactivityTime(allowedInactivityTime); - result->initializeStatisticConcepts(); + result->initializeStatisticResources(); // Los saco con metodos virtuales readXXX del motor: // if ((a_cea.isEmpty()) || (a_dwa.isEmpty())) // throw anna::RuntimeException("Must define valid CEA and DWA messages by mean setCEAandDWA()", ANNA_FILE_LOCATION); @@ -316,7 +314,7 @@ throw(anna::RuntimeException) { result->a_socket = socket; result->setMaxClientSessions(a_numberOfClientSessionsPerServer /* engine */); result->a_engine = this; - result->initializeStatisticConcepts(); + result->initializeStatisticResources(); for(int k = 0; k < a_numberOfClientSessionsPerServer; k++) result->addClientSession(k); @@ -770,13 +768,13 @@ int comm::Engine::getOTARequestsForLocalServers() const throw() { } -void comm::Engine::setRealm(const std::string & name) throw() { - a_realm = ((name != "") ? name : anna::functions::getDomainname()); +void comm::Engine::setOriginRealm(const std::string & originRealm) throw() { + a_originRealm = ((originRealm != "") ? originRealm : anna::functions::getDomainname()); } -void comm::Engine::setHost(const std::string & name) throw() { - a_host = ((name != "") ? name : anna::functions::getHostname()); +void comm::Engine::setOriginHost(const std::string & originHost) throw() { + a_originHost = ((originHost != "") ? originHost : anna::functions::getHostname()); } @@ -928,8 +926,10 @@ comm::Engine::entity_key comm::Engine::getEntityKey(const socket_v &v) const thr void comm::Engine::availabilityLostForEntities() throw() { a_availableForEntities = false; LOGDEBUG( - std::string msg = "diameter::comm::Engine { Realm: "; - msg += getRealm(); + std::string msg = "diameter::comm::Engine { Origin-Realm: "; + msg += getOriginRealm(); + msg += " | Origin-Host: "; + msg += getOriginHost(); msg += " } has lost its availability for entities"; anna::Logger::debug(msg, ANNA_FILE_LOCATION); ); @@ -945,8 +945,10 @@ void comm::Engine::availabilityLostForEntities() throw() { void comm::Engine::availabilityRecoveredForEntities() throw() { a_availableForEntities = true; LOGDEBUG( - std::string msg = "diameter::comm::Engine { Realm: "; - msg += getRealm(); + std::string msg = "diameter::comm::Engine { Origin-Realm: "; + msg += getOriginRealm(); + msg += " | Origin-Host: "; + msg += getOriginHost(); msg += " } has recovered its availability for entities"; anna::Logger::debug(msg, ANNA_FILE_LOCATION); ); @@ -962,8 +964,10 @@ void comm::Engine::availabilityRecoveredForEntities() throw() { void comm::Engine::availabilityLostForLocalServers() throw() { a_availableForLocalServers = false; LOGDEBUG( - std::string msg = "diameter::comm::Engine { Realm: "; - msg += getRealm(); + std::string msg = "diameter::comm::Engine { Origin-Realm: "; + msg += getOriginRealm(); + msg += " | Origin-Host: "; + msg += getOriginHost(); msg += " } has lost its availability for local servers"; anna::Logger::debug(msg, ANNA_FILE_LOCATION); ); @@ -979,8 +983,10 @@ void comm::Engine::availabilityLostForLocalServers() throw() { void comm::Engine::availabilityRecoveredForLocalServers() throw() { a_availableForLocalServers = true; LOGDEBUG( - std::string msg = "diameter::comm::Engine { Realm: "; - msg += getRealm(); + std::string msg = "diameter::comm::Engine { Origin-Realm: "; + msg += getOriginRealm(); + msg += " | Origin-Host: "; + msg += getOriginHost(); msg += " } has recovered its availability for local servers"; anna::Logger::debug(msg, ANNA_FILE_LOCATION); ); @@ -1077,11 +1083,11 @@ void comm::Engine::readDPA(anna::DataBlock &dpa, const anna::DataBlock & dpr) th // Origin-Host avpOH.setId(anna::diameter::helpers::base::AVPID__Origin_Host); avpOH.setMandatoryBit(); - avpOH.getDiameterIdentity()->fromPrintableString(a_host.c_str()); + avpOH.getDiameterIdentity()->fromPrintableString(a_originHost.c_str()); // Origin-Realm avpOR.setId(anna::diameter::helpers::base::AVPID__Origin_Realm); avpOR.setMandatoryBit(); - avpOR.getDiameterIdentity()->fromPrintableString(a_realm.c_str()); + avpOR.getDiameterIdentity()->fromPrintableString(a_originRealm.c_str()); diameterDPA.addAvp(&avpRC); diameterDPA.addAvp(&avpOH); diameterDPA.addAvp(&avpOR); @@ -1138,11 +1144,11 @@ void comm::Engine::readCEA(anna::DataBlock &cea, const anna::DataBlock & cer) th // Origin-Host avpOH.setId(anna::diameter::helpers::base::AVPID__Origin_Host); avpOH.setMandatoryBit(); - avpOH.getDiameterIdentity()->fromPrintableString(a_host.c_str()); + avpOH.getDiameterIdentity()->fromPrintableString(a_originHost.c_str()); // Origin-Realm avpOR.setId(anna::diameter::helpers::base::AVPID__Origin_Realm); avpOR.setMandatoryBit(); - avpOR.getDiameterIdentity()->fromPrintableString(a_realm.c_str()); + avpOR.getDiameterIdentity()->fromPrintableString(a_originRealm.c_str()); diameterCEA.addAvp(&avpRC); diameterCEA.addAvp(&avpOH); diameterCEA.addAvp(&avpOR); @@ -1153,7 +1159,7 @@ void comm::Engine::readCEA(anna::DataBlock &cea, const anna::DataBlock & cer) th int vendorId = anna::diameter::helpers::VENDORID__tgpp; // Unsigned32 diameterCEA.addAvp(anna::diameter::helpers::base::AVPID__Vendor_Id)->getUnsigned32()->setValue(vendorId); // Product-Name - std::string productName = "OCS Diameter Server"; // UTF8String + std::string productName = "Diameter Server"; // UTF8String diameterCEA.addAvp(anna::diameter::helpers::base::AVPID__Product_Name)->getUTF8String()->setValue(productName); // Encode cea = diameterCEA.code(); @@ -1257,11 +1263,11 @@ void comm::Engine::readDWA(anna::DataBlock &dwa, const anna::DataBlock & dwr) th // Origin-Host avpOH.setId(anna::diameter::helpers::base::AVPID__Origin_Host); avpOH.setMandatoryBit(); - avpOH.getDiameterIdentity()->fromPrintableString(a_host.c_str()); + avpOH.getDiameterIdentity()->fromPrintableString(a_originHost.c_str()); // Origin-Realm avpOR.setId(anna::diameter::helpers::base::AVPID__Origin_Realm); avpOR.setMandatoryBit(); - avpOR.getDiameterIdentity()->fromPrintableString(a_realm.c_str()); + avpOR.getDiameterIdentity()->fromPrintableString(a_originRealm.c_str()); diameterDWA.addAvp(&avpRC); diameterDWA.addAvp(&avpOH); diameterDWA.addAvp(&avpOR);