Commit cc71c3c3 authored by Tien Thinh NGUYEN's avatar Tien Thinh NGUYEN

Code cleanup

parent 291b70ac
......@@ -104,18 +104,13 @@ bool mysql_db::close_connection() {
//---------------------------------------------------------------------------------------------
void mysql_db::start_event_connection_handling() {
std::time_t current_time =
std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
Logger::udr_mysql().debug("Start Event Connection Handling (current time %s)",
std::ctime(&current_time));
// get current time
uint64_t ms = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::system_clock::now().time_since_epoch())
.count();
struct itimerspec its;
its.it_value.tv_sec = udr_cfg.mysql.connection_timeout; // seconds
its.it_value.tv_sec = udr_cfg.mysql.connection_timeout; // seconds
its.it_value.tv_nsec = 0; // 100 * 1000 * 1000; //100ms
const uint64_t interval =
its.it_value.tv_sec * 1000 +
......@@ -128,8 +123,10 @@ void mysql_db::start_event_connection_handling() {
//---------------------------------------------------------------------------------------------
void mysql_db::trigger_connection_handling_procedure(uint64_t ms) {
_unused(ms);
// Logger::udr_mysql().debug(
// "Connection Handling procedure (current time %ld (ms))", ms);
std::time_t current_time =
std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
Logger::udr_mysql().debug(
"DB Connection handling, current time: %s", std::ctime(&current_time));
if (mysql_ping(&mysql_connector)) {
Logger::udr_app().warn(
......@@ -151,16 +148,16 @@ bool mysql_db::insert_authentication_subscription(
const std::string& id,
const oai::udr::model::AuthenticationSubscription& auth_subscription,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
nlohmann::json json_tmp = {};
std::string query =
"SELECT * FROM AuthenticationSubscription WHERE ueid='" + id + "'";
Logger::udr_mysql().info("MySQL Query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size()) != 0) {
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size()) != 0) {
Logger::udr_mysql().error(
"Failed when executing mysql_real_query with SQL Query: %s",
query.c_str());
......@@ -169,8 +166,8 @@ bool mysql_db::insert_authentication_subscription(
res = mysql_store_result(&mysql_connector);
if (res == nullptr) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -186,37 +183,37 @@ bool mysql_db::insert_authentication_subscription(
"INSERT INTO AuthenticationSubscription SET ueid='" + id + "'" +
",authenticationMethod='" + auth_subscription.getAuthenticationMethod() +
"'" +
(auth_subscription.encPermanentKeyIsSet()
? ",encPermanentKey='" + auth_subscription.getEncPermanentKey() + "'"
: "") +
(auth_subscription.protectionParameterIdIsSet()
? ",protectionParameterId='" +
auth_subscription.getProtectionParameterId() + "'"
: "") +
(auth_subscription.authenticationManagementFieldIsSet()
? ",authenticationManagementField='" +
auth_subscription.getAuthenticationManagementField() + "'"
: "") +
(auth_subscription.algorithmIdIsSet()
? ",algorithmId='" + auth_subscription.getAlgorithmId() + "'"
: "") +
(auth_subscription.encOpcKeyIsSet()
? ",encOpcKey='" + auth_subscription.getEncOpcKey() + "'"
: "") +
(auth_subscription.encTopcKeyIsSet()
? ",encTopcKey='" + auth_subscription.getEncTopcKey() + "'"
: "") +
(auth_subscription.encPermanentKeyIsSet() ?
",encPermanentKey='" + auth_subscription.getEncPermanentKey() + "'" :
"") +
(auth_subscription.protectionParameterIdIsSet() ?
",protectionParameterId='" +
auth_subscription.getProtectionParameterId() + "'" :
"") +
(auth_subscription.authenticationManagementFieldIsSet() ?
",authenticationManagementField='" +
auth_subscription.getAuthenticationManagementField() + "'" :
"") +
(auth_subscription.algorithmIdIsSet() ?
",algorithmId='" + auth_subscription.getAlgorithmId() + "'" :
"") +
(auth_subscription.encOpcKeyIsSet() ?
",encOpcKey='" + auth_subscription.getEncOpcKey() + "'" :
"") +
(auth_subscription.encTopcKeyIsSet() ?
",encTopcKey='" + auth_subscription.getEncTopcKey() + "'" :
"") +
// (auth_subscription.vectorGenerationInHssIsSet() ?
// ",vectorGenerationInHss='" +
// auth_subscription.isVectorGenerationInHss() + "'" : "") +
(auth_subscription.n5gcAuthMethodIsSet()
? ",n5gcAuthMethod='" + auth_subscription.getN5gcAuthMethod() + "'"
: "") +
(auth_subscription.n5gcAuthMethodIsSet() ?
",n5gcAuthMethod='" + auth_subscription.getN5gcAuthMethod() + "'" :
"") +
// auth_subscription.rgAuthenticationIndIsSet() ? ",rgAuthenticationInd='"
// + auth_subscription.() + "'" : "") +
(auth_subscription.supiIsSet()
? ",supi='" + auth_subscription.getSupi() + "'"
: "");
(auth_subscription.supiIsSet() ?
",supi='" + auth_subscription.getSupi() + "'" :
"");
if (auth_subscription.sequenceNumberIsSet()) {
to_json(json_tmp, auth_subscription.getSequenceNumber());
......@@ -225,17 +222,17 @@ bool mysql_db::insert_authentication_subscription(
Logger::udr_mysql().info("MySQL Query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
to_json(json_data, auth_subscription);
Logger::udr_mysql().debug("AuthenticationSubscription POST: %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"AuthenticationSubscription POST: %s", json_data.dump().c_str());
return true;
}
......@@ -246,10 +243,10 @@ bool mysql_db::delete_authentication_subscription(const std::string& id) {
Logger::udr_mysql().debug("MySQL Query %s: ", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
......@@ -260,21 +257,21 @@ bool mysql_db::delete_authentication_subscription(const std::string& id) {
}
//------------------------------------------------------------------------------
bool mysql_db::query_authentication_subscription(const std::string& id,
nlohmann::json& json_data) {
bool mysql_db::query_authentication_subscription(
const std::string& id, nlohmann::json& json_data) {
Logger::udr_mysql().info("Query Authentication Subscription");
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
nlohmann::json j = {};
AuthenticationSubscription authentication_subscription = {};
const std::string query =
"SELECT * FROM AuthenticationSubscription WHERE ueid='" + id + "'";
Logger::udr_mysql().info("MySQL Query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size()) != 0) {
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size()) != 0) {
Logger::udr_mysql().error(
"Failed when executing mysql_real_query with SQL Query: %s",
query.c_str());
......@@ -284,8 +281,8 @@ bool mysql_db::query_authentication_subscription(const std::string& id,
res = mysql_store_result(&mysql_connector);
if (res == nullptr) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -298,15 +295,16 @@ bool mysql_db::query_authentication_subscription(const std::string& id,
authentication_subscription.setAuthenticationMethod(row[i]);
} else if (!strcmp("encPermanentKey", field->name) && row[i] != nullptr) {
authentication_subscription.setEncPermanentKey(row[i]);
} else if (!strcmp("protectionParameterId", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("protectionParameterId", field->name) && row[i] != nullptr) {
authentication_subscription.setProtectionParameterId(row[i]);
} else if (!strcmp("sequenceNumber", field->name) && row[i] != nullptr) {
SequenceNumber sequencenumber = {};
nlohmann::json::parse(row[i]).get_to(sequencenumber);
authentication_subscription.setSequenceNumber(sequencenumber);
} else if (!strcmp("authenticationManagementField", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("authenticationManagementField", field->name) &&
row[i] != nullptr) {
authentication_subscription.setAuthenticationManagementField(row[i]);
} else if (!strcmp("algorithmId", field->name) && row[i] != nullptr) {
authentication_subscription.setAlgorithmId(row[i]);
......@@ -314,16 +312,16 @@ bool mysql_db::query_authentication_subscription(const std::string& id,
authentication_subscription.setEncOpcKey(row[i]);
} else if (!strcmp("encTopcKey", field->name) && row[i] != nullptr) {
authentication_subscription.setEncTopcKey(row[i]);
} else if (!strcmp("vectorGenerationInHss", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("vectorGenerationInHss", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
authentication_subscription.setVectorGenerationInHss(true);
else
authentication_subscription.setVectorGenerationInHss(false);
} else if (!strcmp("n5gcAuthMethod", field->name) && row[i] != nullptr) {
authentication_subscription.setN5gcAuthMethod(row[i]);
} else if (!strcmp("rgAuthenticationInd", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("rgAuthenticationInd", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
authentication_subscription.setRgAuthenticationInd(true);
else
......@@ -349,14 +347,14 @@ bool mysql_db::update_authentication_subscription(
const std::vector<oai::udr::model::PatchItem>& patchItem,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_ROW row = {};
const std::string select_Authenticationsubscription =
"SELECT * from AuthenticationSubscription WHERE ueid='" + ue_id + "'";
Logger::udr_mysql().info("MySQL Query: %s",
select_Authenticationsubscription.c_str());
Logger::udr_mysql().info(
"MySQL Query: %s", select_Authenticationsubscription.c_str());
std::string query = {};
std::string query = {};
nlohmann::json tmp_j = {};
for (int i = 0; i < patchItem.size(); i++) {
......@@ -369,16 +367,18 @@ bool mysql_db::update_authentication_subscription(
if (mysql_real_query(
&mysql_connector, select_Authenticationsubscription.c_str(),
(unsigned long)select_Authenticationsubscription.size())) {
Logger::udr_mysql().error("mysql_real_query failure!SQL Query: %s",
select_Authenticationsubscription.c_str());
(unsigned long) select_Authenticationsubscription.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure!SQL Query: %s",
select_Authenticationsubscription.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure!SQL Query: %s",
select_Authenticationsubscription.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure!SQL Query: %s",
select_Authenticationsubscription.c_str());
return false;
}
if (mysql_num_rows(res)) {
......@@ -397,10 +397,11 @@ bool mysql_db::update_authentication_subscription(
Logger::udr_mysql().info("MySQL Update Cmd %s", query.c_str());
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size()) != 0) {
Logger::udr_mysql().error("update mysql failure! SQL Cmd: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size()) !=
0) {
Logger::udr_mysql().error(
"update mysql failure! SQL Cmd: %s", query.c_str());
// TODO: Problem details
return false;
}
......@@ -410,19 +411,19 @@ bool mysql_db::update_authentication_subscription(
json_data += tmp_j;
}
Logger::udr_mysql().info("AuthenticationSubscription PATCH: %s",
json_data.dump().c_str());
Logger::udr_mysql().info(
"AuthenticationSubscription PATCH: %s", json_data.dump().c_str());
// code = HTTP_STATUS_CODE_204_NO_CONTENT;
return true;
}
//------------------------------------------------------------------------------
bool mysql_db::query_am_data(const std::string& ue_id,
const std::string& serving_plmn_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
bool mysql_db::query_am_data(
const std::string& ue_id, const std::string& serving_plmn_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
oai::udr::model::AccessAndMobilitySubscriptionData subscription_data = {};
......@@ -435,8 +436,8 @@ bool mysql_db::query_am_data(const std::string& ue_id,
Logger::udr_mysql().debug("SQL Query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error("mysql_real_query failure!");
return false;
}
......@@ -458,18 +459,18 @@ bool mysql_db::query_am_data(const std::string& ue_id,
std::vector<std ::string> gpsis;
nlohmann::json::parse(row[i]).get_to(gpsis);
subscription_data.setGpsis(gpsis);
} else if (!strcmp("internalGroupIds", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("internalGroupIds", field->name) && row[i] != nullptr) {
std::vector<std ::string> internalgroupids;
nlohmann::json::parse(row[i]).get_to(internalgroupids);
subscription_data.setInternalGroupIds(internalgroupids);
} else if (!strcmp("sharedVnGroupDataIds", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("sharedVnGroupDataIds", field->name) && row[i] != nullptr) {
std::map<std ::string, std::string> sharedvngroupdataids;
nlohmann::json::parse(row[i]).get_to(sharedvngroupdataids);
subscription_data.setSharedVnGroupDataIds(sharedvngroupdataids);
} else if (!strcmp("subscribedUeAmbr", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("subscribedUeAmbr", field->name) && row[i] != nullptr) {
AmbrRm subscribedueambr;
nlohmann::json::parse(row[i]).get_to(subscribedueambr);
subscription_data.setSubscribedUeAmbr(subscribedueambr);
......@@ -477,23 +478,25 @@ bool mysql_db::query_am_data(const std::string& ue_id,
Nssai nssai = {};
nlohmann::json::parse(row[i]).get_to(nssai);
subscription_data.setNssai(nssai);
} else if (!strcmp("ratRestrictions", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("ratRestrictions", field->name) && row[i] != nullptr) {
std ::vector<RatType> ratrestrictions;
nlohmann::json::parse(row[i]).get_to(ratrestrictions);
subscription_data.setRatRestrictions(ratrestrictions);
} else if (!strcmp("forbiddenAreas", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("forbiddenAreas", field->name) && row[i] != nullptr) {
std ::vector<Area> forbiddenareas;
nlohmann::json::parse(row[i]).get_to(forbiddenareas);
subscription_data.setForbiddenAreas(forbiddenareas);
} else if (!strcmp("serviceAreaRestriction", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("serviceAreaRestriction", field->name) &&
row[i] != nullptr) {
ServiceAreaRestriction servicearearestriction;
nlohmann::json::parse(row[i]).get_to(servicearearestriction);
subscription_data.setServiceAreaRestriction(servicearearestriction);
} else if (!strcmp("coreNetworkTypeRestrictions", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("coreNetworkTypeRestrictions", field->name) &&
row[i] != nullptr) {
std ::vector<CoreNetworkType> corenetworktyperestrictions;
nlohmann::json::parse(row[i]).get_to(corenetworktyperestrictions);
subscription_data.setCoreNetworkTypeRestrictions(
......@@ -524,20 +527,21 @@ bool mysql_db::query_am_data(const std::string& ue_id,
SorInfo sorinfo;
nlohmann::json::parse(row[i]).get_to(sorinfo);
subscription_data.setSorInfo(sorinfo);
} else if (!strcmp("sorInfoExpectInd", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("sorInfoExpectInd", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
subscription_data.setSorInfoExpectInd(true);
else
subscription_data.setSorInfoExpectInd(false);
} else if (!strcmp("sorafRetrieval", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("sorafRetrieval", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
subscription_data.setSorafRetrieval(true);
else
subscription_data.setSorafRetrieval(false);
} else if (!strcmp("sorUpdateIndicatorList", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("sorUpdateIndicatorList", field->name) &&
row[i] != nullptr) {
std ::vector<SorUpdateIndicator> sorupdateindicatorlist;
nlohmann::json::parse(row[i]).get_to(sorupdateindicatorlist);
subscription_data.setSorUpdateIndicatorList(sorupdateindicatorlist);
......@@ -550,27 +554,27 @@ bool mysql_db::query_am_data(const std::string& ue_id,
subscription_data.setMicoAllowed(true);
else
subscription_data.setMicoAllowed(false);
} else if (!strcmp("sharedAmDataIds", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("sharedAmDataIds", field->name) && row[i] != nullptr) {
std ::vector<std ::string> sharedamdataids;
nlohmann::json::parse(row[i]).get_to(sharedamdataids);
subscription_data.setSharedAmDataIds(sharedamdataids);
} else if (!strcmp("odbPacketServices", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("odbPacketServices", field->name) && row[i] != nullptr) {
OdbPacketServices odbpacketservices;
nlohmann::json::parse(row[i]).get_to(odbpacketservices);
subscription_data.setOdbPacketServices(odbpacketservices);
} else if (!strcmp("serviceGapTime", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("serviceGapTime", field->name) && row[i] != nullptr) {
int32_t a = std::stoi(row[i]);
subscription_data.setServiceGapTime(a);
} else if (!strcmp("mdtUserConsent", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("mdtUserConsent", field->name) && row[i] != nullptr) {
MdtUserConsent mdtuserconsent;
nlohmann::json::parse(row[i]).get_to(mdtuserconsent);
subscription_data.setMdtUserConsent(mdtuserconsent);
} else if (!strcmp("mdtConfiguration", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("mdtConfiguration", field->name) && row[i] != nullptr) {
MdtConfiguration mdtconfiguration;
nlohmann::json::parse(row[i]).get_to(mdtconfiguration);
subscription_data.setMdtConfiguration(mdtconfiguration);
......@@ -586,69 +590,76 @@ bool mysql_db::query_am_data(const std::string& ue_id,
subscription_data.setStnSr(row[i]);
} else if (!strcmp("cMsisdn", field->name) && row[i] != nullptr) {
subscription_data.setCMsisdn(row[i]);
} else if (!strcmp("nbIoTUePriority", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("nbIoTUePriority", field->name) && row[i] != nullptr) {
int32_t a = std::stoi(row[i]);
subscription_data.setNbIoTUePriority(a);
} else if (!strcmp("nssaiInclusionAllowed", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("nssaiInclusionAllowed", field->name) &&
row[i] != nullptr) {
if (strcmp(row[i], "0"))
subscription_data.setNssaiInclusionAllowed(true);
else
subscription_data.setNssaiInclusionAllowed(false);
} else if (!strcmp("rgWirelineCharacteristics", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("rgWirelineCharacteristics", field->name) &&
row[i] != nullptr) {
subscription_data.setRgWirelineCharacteristics(row[i]);
} else if (!strcmp("ecRestrictionDataWb", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("ecRestrictionDataWb", field->name) && row[i] != nullptr) {
EcRestrictionDataWb ecrestrictiondatawb;
nlohmann::json::parse(row[i]).get_to(ecrestrictiondatawb);
subscription_data.setEcRestrictionDataWb(ecrestrictiondatawb);
} else if (!strcmp("ecRestrictionDataNb", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("ecRestrictionDataNb", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
subscription_data.setEcRestrictionDataNb(true);
else
subscription_data.setEcRestrictionDataNb(false);
} else if (!strcmp("expectedUeBehaviourList", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("expectedUeBehaviourList", field->name) &&
row[i] != nullptr) {
ExpectedUeBehaviourData expecteduebehaviourlist;
nlohmann::json::parse(row[i]).get_to(expecteduebehaviourlist);
subscription_data.setExpectedUeBehaviourList(expecteduebehaviourlist);
} else if (!strcmp("primaryRatRestrictions", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("primaryRatRestrictions", field->name) &&
row[i] != nullptr) {
std ::vector<RatType> primaryratrestrictions;
nlohmann::json::parse(row[i]).get_to(primaryratrestrictions);
subscription_data.setPrimaryRatRestrictions(primaryratrestrictions);
} else if (!strcmp("secondaryRatRestrictions", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("secondaryRatRestrictions", field->name) &&
row[i] != nullptr) {
std ::vector<RatType> secondaryratrestrictions;
nlohmann::json::parse(row[i]).get_to(secondaryratrestrictions);
subscription_data.setSecondaryRatRestrictions(
secondaryratrestrictions);
} else if (!strcmp("edrxParametersList", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("edrxParametersList", field->name) && row[i] != nullptr) {
std ::vector<EdrxParameters> edrxparameterslist;
nlohmann::json::parse(row[i]).get_to(edrxparameterslist);
subscription_data.setEdrxParametersList(edrxparameterslist);
} else if (!strcmp("ptwParametersList", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("ptwParametersList", field->name) && row[i] != nullptr) {
std ::vector<PtwParameters> ptwparameterslist;
nlohmann::json::parse(row[i]).get_to(ptwparameterslist);
subscription_data.setPtwParametersList(ptwparameterslist);
} else if (!strcmp("iabOperationAllowed", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("iabOperationAllowed", field->name) && row[i] != nullptr) {
if (strcmp(row[i], "0"))
subscription_data.setIabOperationAllowed(true);
else
subscription_data.setIabOperationAllowed(false);
} else if (!strcmp("wirelineForbiddenAreas", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("wirelineForbiddenAreas", field->name) &&
row[i] != nullptr) {
std ::vector<WirelineArea> wirelineforbiddenareas;
nlohmann::json::parse(row[i]).get_to(wirelineforbiddenareas);
subscription_data.setWirelineForbiddenAreas(wirelineforbiddenareas);
} else if (!strcmp("wirelineServiceAreaRestriction", field->name) &&
row[i] != nullptr) {
} else if (
!strcmp("wirelineServiceAreaRestriction", field->name) &&
row[i] != nullptr) {
WirelineServiceAreaRestriction wirelineservicearearestriction;
nlohmann::json::parse(row[i]).get_to(wirelineservicearearestriction);
subscription_data.setWirelineServiceAreaRestriction(
......@@ -680,8 +691,8 @@ bool mysql_db::create_amf_context_3gpp(
const std::string& ue_id,
Amf3GppAccessRegistration& amf3GppAccessRegistration) {
nlohmann::json json_data = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
const std::string select_AMF3GPPAccessRegistration =
"SELECT * FROM Amf3GppAccessRegistration WHERE ueid='" + ue_id + "'";
......@@ -691,16 +702,18 @@ bool mysql_db::create_amf_context_3gpp(
if (mysql_real_query(
&mysql_connector, select_AMF3GPPAccessRegistration.c_str(),
(unsigned long)select_AMF3GPPAccessRegistration.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
select_AMF3GPPAccessRegistration.c_str());
(unsigned long) select_AMF3GPPAccessRegistration.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s",
select_AMF3GPPAccessRegistration.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
select_AMF3GPPAccessRegistration.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s",
select_AMF3GPPAccessRegistration.c_str());
return false;
}
......@@ -708,56 +721,56 @@ bool mysql_db::create_amf_context_3gpp(
query =
"UPDATE Amf3GppAccessRegistration SET amfInstanceId='" +
amf3GppAccessRegistration.getAmfInstanceId() + "'" +
(amf3GppAccessRegistration.supportedFeaturesIsSet()
? ",supportedFeatures='" +
amf3GppAccessRegistration.getSupportedFeatures() + "'"
: "") +
(amf3GppAccessRegistration.purgeFlagIsSet()
? (amf3GppAccessRegistration.isPurgeFlag() ? ",purgeFlag=1"
: ",purgeFlag=0")
: "") +
(amf3GppAccessRegistration.peiIsSet()
? ",pei='" + amf3GppAccessRegistration.getPei() + "'"
: "") +
(amf3GppAccessRegistration.supportedFeaturesIsSet() ?
",supportedFeatures='" +
amf3GppAccessRegistration.getSupportedFeatures() + "'" :
"") +
(amf3GppAccessRegistration.purgeFlagIsSet() ?
(amf3GppAccessRegistration.isPurgeFlag() ? ",purgeFlag=1" :
",purgeFlag=0") :
"") +
(amf3GppAccessRegistration.peiIsSet() ?
",pei='" + amf3GppAccessRegistration.getPei() + "'" :
"") +
",deregCallbackUri='" +
amf3GppAccessRegistration.getDeregCallbackUri() + "'" +
(amf3GppAccessRegistration.pcscfRestorationCallbackUriIsSet()
? ",pcscfRestorationCallbackUri='" +
amf3GppAccessRegistration.getPcscfRestorationCallbackUri() +
"'"
: "") +
(amf3GppAccessRegistration.initialRegistrationIndIsSet()
? (amf3GppAccessRegistration.isInitialRegistrationInd()
? ",initialRegistrationInd=1"
: ",initialRegistrationInd=0")
: "") +
(amf3GppAccessRegistration.drFlagIsSet()
? (amf3GppAccessRegistration.isDrFlag() ? ",drFlag=1"
: ",drFlag=0")
: "") +
(amf3GppAccessRegistration.urrpIndicatorIsSet()
? (amf3GppAccessRegistration.isUrrpIndicator()
? ",urrpIndicator=1"
: ",urrpIndicator=0")
: "") +
(amf3GppAccessRegistration.amfEeSubscriptionIdIsSet()
? ",amfEeSubscriptionId='" +
amf3GppAccessRegistration.getAmfEeSubscriptionId() + "'"
: "") +
(amf3GppAccessRegistration.ueSrvccCapabilityIsSet()
? (amf3GppAccessRegistration.isUeSrvccCapability()
? ",ueSrvccCapability=1"
: ",ueSrvccCapability=0")
: "") +
(amf3GppAccessRegistration.registrationTimeIsSet()
? ",registrationTime='" +
amf3GppAccessRegistration.getRegistrationTime() + "'"
: "") +
(amf3GppAccessRegistration.noEeSubscriptionIndIsSet()
? (amf3GppAccessRegistration.isNoEeSubscriptionInd()
? ",noEeSubscriptionInd=1"
: ",noEeSubscriptionInd=0")
: "");
(amf3GppAccessRegistration.pcscfRestorationCallbackUriIsSet() ?
",pcscfRestorationCallbackUri='" +
amf3GppAccessRegistration.getPcscfRestorationCallbackUri() +
"'" :
"") +
(amf3GppAccessRegistration.initialRegistrationIndIsSet() ?
(amf3GppAccessRegistration.isInitialRegistrationInd() ?
",initialRegistrationInd=1" :
",initialRegistrationInd=0") :
"") +
(amf3GppAccessRegistration.drFlagIsSet() ?
(amf3GppAccessRegistration.isDrFlag() ? ",drFlag=1" :
",drFlag=0") :
"") +
(amf3GppAccessRegistration.urrpIndicatorIsSet() ?
(amf3GppAccessRegistration.isUrrpIndicator() ?
",urrpIndicator=1" :
",urrpIndicator=0") :
"") +
(amf3GppAccessRegistration.amfEeSubscriptionIdIsSet() ?
",amfEeSubscriptionId='" +
amf3GppAccessRegistration.getAmfEeSubscriptionId() + "'" :
"") +
(amf3GppAccessRegistration.ueSrvccCapabilityIsSet() ?
(amf3GppAccessRegistration.isUeSrvccCapability() ?
",ueSrvccCapability=1" :
",ueSrvccCapability=0") :
"") +
(amf3GppAccessRegistration.registrationTimeIsSet() ?
",registrationTime='" +
amf3GppAccessRegistration.getRegistrationTime() + "'" :
"") +
(amf3GppAccessRegistration.noEeSubscriptionIndIsSet() ?
(amf3GppAccessRegistration.isNoEeSubscriptionInd() ?
",noEeSubscriptionInd=1" :
",noEeSubscriptionInd=0") :
"");
if (amf3GppAccessRegistration.imsVoPsIsSet()) {
to_json(j, amf3GppAccessRegistration.getImsVoPs());
......@@ -805,56 +818,56 @@ bool mysql_db::create_amf_context_3gpp(
"INSERT INTO Amf3GppAccessRegistration SET ueid='" + ue_id + "'" +
",amfInstanceId='" + amf3GppAccessRegistration.getAmfInstanceId() +
"'" +
(amf3GppAccessRegistration.supportedFeaturesIsSet()
? ",supportedFeatures='" +
amf3GppAccessRegistration.getSupportedFeatures() + "'"
: "") +
(amf3GppAccessRegistration.purgeFlagIsSet()
? (amf3GppAccessRegistration.isPurgeFlag() ? ",purgeFlag=1"
: ",purgeFlag=0")
: "") +
(amf3GppAccessRegistration.peiIsSet()
? ",pei='" + amf3GppAccessRegistration.getPei() + "'"
: "") +
(amf3GppAccessRegistration.supportedFeaturesIsSet() ?
",supportedFeatures='" +
amf3GppAccessRegistration.getSupportedFeatures() + "'" :
"") +
(amf3GppAccessRegistration.purgeFlagIsSet() ?
(amf3GppAccessRegistration.isPurgeFlag() ? ",purgeFlag=1" :
",purgeFlag=0") :
"") +
(amf3GppAccessRegistration.peiIsSet() ?
",pei='" + amf3GppAccessRegistration.getPei() + "'" :
"") +
",deregCallbackUri='" +
amf3GppAccessRegistration.getDeregCallbackUri() + "'" +
(amf3GppAccessRegistration.pcscfRestorationCallbackUriIsSet()
? ",pcscfRestorationCallbackUri='" +
amf3GppAccessRegistration.getPcscfRestorationCallbackUri() +
"'"
: "") +
(amf3GppAccessRegistration.initialRegistrationIndIsSet()
? (amf3GppAccessRegistration.isInitialRegistrationInd()
? ",initialRegistrationInd=1"
: ",initialRegistrationInd=0")
: "") +
(amf3GppAccessRegistration.drFlagIsSet()
? (amf3GppAccessRegistration.isDrFlag() ? ",drFlag=1"
: ",drFlag=0")
: "") +
(amf3GppAccessRegistration.urrpIndicatorIsSet()
? (amf3GppAccessRegistration.isUrrpIndicator()
? ",urrpIndicator=1"
: ",urrpIndicator=0")
: "") +
(amf3GppAccessRegistration.amfEeSubscriptionIdIsSet()
? ",amfEeSubscriptionId='" +
amf3GppAccessRegistration.getAmfEeSubscriptionId() + "'"
: "") +
(amf3GppAccessRegistration.ueSrvccCapabilityIsSet()
? (amf3GppAccessRegistration.isUeSrvccCapability()
? ",ueSrvccCapability=1"
: ",ueSrvccCapability=0")
: "") +
(amf3GppAccessRegistration.registrationTimeIsSet()
? ",registrationTime='" +
amf3GppAccessRegistration.getRegistrationTime() + "'"
: "") +
(amf3GppAccessRegistration.noEeSubscriptionIndIsSet()
? (amf3GppAccessRegistration.isNoEeSubscriptionInd()
? ",noEeSubscriptionInd=1"
: ",noEeSubscriptionInd=0")
: "");
(amf3GppAccessRegistration.pcscfRestorationCallbackUriIsSet() ?
",pcscfRestorationCallbackUri='" +
amf3GppAccessRegistration.getPcscfRestorationCallbackUri() +
"'" :
"") +
(amf3GppAccessRegistration.initialRegistrationIndIsSet() ?
(amf3GppAccessRegistration.isInitialRegistrationInd() ?
",initialRegistrationInd=1" :
",initialRegistrationInd=0") :
"") +
(amf3GppAccessRegistration.drFlagIsSet() ?
(amf3GppAccessRegistration.isDrFlag() ? ",drFlag=1" :
",drFlag=0") :
"") +
(amf3GppAccessRegistration.urrpIndicatorIsSet() ?
(amf3GppAccessRegistration.isUrrpIndicator() ?
",urrpIndicator=1" :
",urrpIndicator=0") :
"") +
(amf3GppAccessRegistration.amfEeSubscriptionIdIsSet() ?
",amfEeSubscriptionId='" +
amf3GppAccessRegistration.getAmfEeSubscriptionId() + "'" :
"") +
(amf3GppAccessRegistration.ueSrvccCapabilityIsSet() ?
(amf3GppAccessRegistration.isUeSrvccCapability() ?
",ueSrvccCapability=1" :
",ueSrvccCapability=0") :
"") +
(amf3GppAccessRegistration.registrationTimeIsSet() ?
",registrationTime='" +
amf3GppAccessRegistration.getRegistrationTime() + "'" :
"") +
(amf3GppAccessRegistration.noEeSubscriptionIndIsSet() ?
(amf3GppAccessRegistration.isNoEeSubscriptionInd() ?
",noEeSubscriptionInd=1" :
",noEeSubscriptionInd=0") :
"");
if (amf3GppAccessRegistration.imsVoPsIsSet()) {
to_json(j, amf3GppAccessRegistration.getImsVoPs());
......@@ -899,42 +912,42 @@ bool mysql_db::create_amf_context_3gpp(
}
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
to_json(json_data, amf3GppAccessRegistration);
Logger::udr_mysql().debug("Amf3GppAccessRegistration PUT: %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"Amf3GppAccessRegistration PUT: %s", json_data.dump().c_str());
return true;
}
//------------------------------------------------------------------------------
bool mysql_db::query_amf_context_3gpp(const std::string& ue_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
bool mysql_db::query_amf_context_3gpp(
const std::string& ue_id, nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
Amf3GppAccessRegistration amf3gppaccessregistration = {};
const std::string query =
"SELECT * FROM Amf3GppAccessRegistration WHERE ueid='" + ue_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
......@@ -959,22 +972,23 @@ bool mysql_db::query_amf_context_3gpp(const std::string& ue_id,
amf3gppaccessregistration.setImsVoPs(imsvops);
} else if (!strcmp("deregCallbackUri", field->name)) {
amf3gppaccessregistration.setDeregCallbackUri(row[i]);
} else if (!strcmp("amfServiceNameDereg", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("amfServiceNameDereg", field->name) && row[i] != NULL) {
ServiceName amfservicenamedereg;
nlohmann::json::parse(row[i]).get_to(amfservicenamedereg);
amf3gppaccessregistration.setAmfServiceNameDereg(amfservicenamedereg);
} else if (!strcmp("pcscfRestorationCallbackUri", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("pcscfRestorationCallbackUri", field->name) &&
row[i] != NULL) {
amf3gppaccessregistration.setPcscfRestorationCallbackUri(row[i]);
} else if (!strcmp("amfServiceNamePcscfRest", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("amfServiceNamePcscfRest", field->name) && row[i] != NULL) {
ServiceName amfservicenamepcscfrest;
nlohmann::json::parse(row[i]).get_to(amfservicenamepcscfrest);
amf3gppaccessregistration.setAmfServiceNamePcscfRest(
amfservicenamepcscfrest);
} else if (!strcmp("initialRegistrationInd", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("initialRegistrationInd", field->name) && row[i] != NULL) {
if (strcmp(row[i], "0"))
amf3gppaccessregistration.setInitialRegistrationInd(true);
else
......@@ -1001,11 +1015,11 @@ bool mysql_db::query_amf_context_3gpp(const std::string& ue_id,
amf3gppaccessregistration.setUrrpIndicator(true);
else
amf3gppaccessregistration.setUrrpIndicator(false);
} else if (!strcmp("amfEeSubscriptionId", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("amfEeSubscriptionId", field->name) && row[i] != NULL) {
amf3gppaccessregistration.setAmfEeSubscriptionId(row[i]);
} else if (!strcmp("epsInterworkingInfo", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("epsInterworkingInfo", field->name) && row[i] != NULL) {
EpsInterworkingInfo epsinterworkinginfo;
nlohmann::json::parse(row[i]).get_to(epsinterworkinginfo);
amf3gppaccessregistration.setEpsInterworkingInfo(epsinterworkinginfo);
......@@ -1024,8 +1038,8 @@ bool mysql_db::query_amf_context_3gpp(const std::string& ue_id,
ContextInfo contextinfo;
nlohmann::json::parse(row[i]).get_to(contextinfo);
amf3gppaccessregistration.setContextInfo(contextinfo);
} else if (!strcmp("noEeSubscriptionInd", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("noEeSubscriptionInd", field->name) && row[i] != NULL) {
if (strcmp(row[i], "0"))
amf3gppaccessregistration.setNoEeSubscriptionInd(true);
else
......@@ -1034,8 +1048,8 @@ bool mysql_db::query_amf_context_3gpp(const std::string& ue_id,
}
to_json(json_data, amf3gppaccessregistration);
Logger::udr_mysql().debug("Amf3GppAccessRegistration GET %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"Amf3GppAccessRegistration GET %s", json_data.dump().c_str());
} else {
Logger::udr_mysql().error(
"Amf3GppAccessRegistration no data! SQL Query %s", query.c_str());
......@@ -1050,26 +1064,29 @@ bool mysql_db::mysql_db::insert_authentication_status(
const std::string& ue_id, const oai::udr::model::AuthEvent& authEvent,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_ROW row = {};
const std::string select_AuthenticationStatus =
"SELECT * FROM AuthenticationStatus WHERE ueid='" + ue_id + "'";
std::string query = {};
Logger::udr_mysql().info("MySQL query: %s",
select_AuthenticationStatus.c_str());
Logger::udr_mysql().info(
"MySQL query: %s", select_AuthenticationStatus.c_str());
if (mysql_real_query(&mysql_connector, select_AuthenticationStatus.c_str(),
(unsigned long)select_AuthenticationStatus.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
select_AuthenticationStatus.c_str());
if (mysql_real_query(
&mysql_connector, select_AuthenticationStatus.c_str(),
(unsigned long) select_AuthenticationStatus.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s",
select_AuthenticationStatus.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query %s",
select_AuthenticationStatus.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query %s",
select_AuthenticationStatus.c_str());
return false;
}
......@@ -1080,10 +1097,10 @@ bool mysql_db::mysql_db::insert_authentication_status(
authEvent.getTimeStamp() + "'" + ",authType='" +
authEvent.getAuthType() + "'" + ",servingNetworkName='" +
authEvent.getServingNetworkName() + "'" +
(authEvent.authRemovalIndIsSet()
? (authEvent.isAuthRemovalInd() ? ",authRemovalInd=1"
: ",authRemovalInd=0")
: "");
(authEvent.authRemovalIndIsSet() ?
(authEvent.isAuthRemovalInd() ? ",authRemovalInd=1" :
",authRemovalInd=0") :
"");
// to_json(j,authEvent.getAuthType());
// query += ",authType='"+j.dump()+"'";
query += " WHERE ueid='" + ue_id + "'";
......@@ -1094,10 +1111,10 @@ bool mysql_db::mysql_db::insert_authentication_status(
authEvent.getTimeStamp() + "'" + ",authType='" +
authEvent.getAuthType() + "'" + ",servingNetworkName='" +
authEvent.getServingNetworkName() + "'" +
(authEvent.authRemovalIndIsSet()
? (authEvent.isAuthRemovalInd() ? ",authRemovalInd=1"
: ",authRemovalInd=0")
: "");
(authEvent.authRemovalIndIsSet() ?
(authEvent.isAuthRemovalInd() ? ",authRemovalInd=1" :
",authRemovalInd=0") :
"");
// to_json(j,authEvent.getAuthType());
// query += ",authType='"+j.dump()+"'";
}
......@@ -1105,10 +1122,10 @@ bool mysql_db::mysql_db::insert_authentication_status(
Logger::udr_mysql().info("MySQL query: %s", query.c_str());
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql create failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql create failure! SQL Query %s", query.c_str());
return false;
}
......@@ -1124,10 +1141,10 @@ bool mysql_db::mysql_db::delete_authentication_status(
const std::string query =
"DELETE FROM AuthenticationStatus WHERE ueid='" + ue_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
......@@ -1138,18 +1155,18 @@ bool mysql_db::mysql_db::delete_authentication_status(
//------------------------------------------------------------------------------
bool mysql_db::mysql_db::query_authentication_status(
const std::string& ue_id, nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
AuthEvent authenticationstatus = {};
const std::string query =
"SELECT * FROM AuthenticationStatus WHERE ueid='" + ue_id + "'";
Logger::udr_mysql().info("MySQL query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
......@@ -1186,11 +1203,11 @@ bool mysql_db::mysql_db::query_authentication_status(
}
to_json(json_data, authenticationstatus);
Logger::udr_mysql().info("AuthenticationStatus GET: %s",
json_data.dump().c_str());
Logger::udr_mysql().info(
"AuthenticationStatus GET: %s", json_data.dump().c_str());
} else {
Logger::udr_mysql().error("AuthenticationStatus no data! SQL Query %s",
query.c_str());
Logger::udr_mysql().error(
"AuthenticationStatus no data! SQL Query %s", query.c_str());
}
mysql_free_result(res);
......@@ -1198,27 +1215,27 @@ bool mysql_db::mysql_db::query_authentication_status(
}
//------------------------------------------------------------------------------
bool mysql_db::mysql_db::query_sdm_subscription(const std::string& ue_id,
const std::string& subs_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
bool mysql_db::mysql_db::query_sdm_subscription(
const std::string& ue_id, const std::string& subs_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
oai::udr::model::SdmSubscription SdmSubscriptions = {};
const std::string query = "SELECT * FROM SdmSubscriptions WHERE ueid='" +
ue_id + "' AND subsId=" + subs_id;
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1227,8 +1244,8 @@ bool mysql_db::mysql_db::query_sdm_subscription(const std::string& ue_id,
for (int i = 0; field = mysql_fetch_field(res); i++) {
if (!strcmp("nfInstanceId", field->name)) {
SdmSubscriptions.setNfInstanceId(row[i]);
} else if (!strcmp("implicitUnsubscribe", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("implicitUnsubscribe", field->name) && row[i] != NULL) {
if (strcmp(row[i], "0"))
SdmSubscriptions.setImplicitUnsubscribe(true);
else
......@@ -1275,11 +1292,11 @@ bool mysql_db::mysql_db::query_sdm_subscription(const std::string& ue_id,
}
}
to_json(json_data, SdmSubscriptions);
Logger::udr_mysql().debug("SdmSubscription GET: %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"SdmSubscription GET: %s", json_data.dump().c_str());
} else {
Logger::udr_mysql().error("SdmSubscription no data! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"SdmSubscription no data! SQL Query: %s", query.c_str());
}
mysql_free_result(res);
......@@ -1287,10 +1304,10 @@ bool mysql_db::mysql_db::query_sdm_subscription(const std::string& ue_id,
}
//------------------------------------------------------------------------------
bool mysql_db::mysql_db::delete_sdm_subscription(const std::string& ue_id,
const std::string& subs_id) {
MYSQL_RES* res = nullptr;
nlohmann::json j = {};
bool mysql_db::mysql_db::delete_sdm_subscription(
const std::string& ue_id, const std::string& subs_id) {
MYSQL_RES* res = nullptr;
nlohmann::json j = {};
oai::udr::model::ProblemDetails problemdetails = {};
const std::string select_query =
......@@ -1300,12 +1317,13 @@ bool mysql_db::mysql_db::delete_sdm_subscription(const std::string& ue_id,
const std::string query = "DELETE FROM SdmSubscriptions WHERE ueid='" +
ue_id + "' AND subsId=" + subs_id;
if (mysql_real_query(&mysql_connector, select_query.c_str(),
(unsigned long)select_query.size())) {
if (mysql_real_query(
&mysql_connector, select_query.c_str(),
(unsigned long) select_query.size())) {
problemdetails.setCause("USER_NOT_FOUND");
to_json(j, problemdetails);
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1313,8 +1331,8 @@ bool mysql_db::mysql_db::delete_sdm_subscription(const std::string& ue_id,
if (res == NULL) {
problemdetails.setCause("USER_NOT_FOUND");
to_json(j, problemdetails);
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1325,12 +1343,12 @@ bool mysql_db::mysql_db::delete_sdm_subscription(const std::string& ue_id,
}
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
problemdetails.setCause("USER_NOT_FOUND");
to_json(j, problemdetails);
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1343,26 +1361,27 @@ bool mysql_db::update_sdm_subscription(
oai::udr::model::SdmSubscription& sdmSubscription,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_ROW row = {};
const std::string select_query =
"SELECT * FROM SdmSubscriptions WHERE ueid='" + ue_id +
"' AND subsId=" + subs_id;
std::string query = {};
nlohmann::json j = {};
std::string query = {};
nlohmann::json j = {};
ProblemDetails problemdetails = {};
if (mysql_real_query(&mysql_connector, select_query.c_str(),
(unsigned long)select_query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, select_query.c_str(),
(unsigned long) select_query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure!SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure!SQL Query: %s", query.c_str());
return false;
}
......@@ -1373,28 +1392,29 @@ bool mysql_db::update_sdm_subscription(
query =
"UPDATE SdmSubscriptions SET nfInstanceId='" +
sdmSubscription.getNfInstanceId() + "'" +
(sdmSubscription.implicitUnsubscribeIsSet()
? (sdmSubscription.isImplicitUnsubscribe()
? ",implicitUnsubscribe=1"
: ",implicitUnsubscribe=0")
: "") +
(sdmSubscription.expiresIsSet()
? ",expires='" + sdmSubscription.getExpires() + "'"
: "") +
(sdmSubscription.implicitUnsubscribeIsSet() ?
(sdmSubscription.isImplicitUnsubscribe() ?
",implicitUnsubscribe=1" :
",implicitUnsubscribe=0") :
"") +
(sdmSubscription.expiresIsSet() ?
",expires='" + sdmSubscription.getExpires() + "'" :
"") +
",callbackReference='" + sdmSubscription.getCallbackReference() + "'" +
(sdmSubscription.dnnIsSet() ? ",dnn='" + sdmSubscription.getDnn() + "'"
: "") +
(sdmSubscription.subscriptionIdIsSet()
? ",subscriptionId='" + sdmSubscription.getSubscriptionId() + "'"
: "") +
(sdmSubscription.immediateReportIsSet()
? (sdmSubscription.isImmediateReport() ? ",immediateReport=1"
: ",immediateReport=0")
: "") +
(sdmSubscription.supportedFeaturesIsSet()
? ",supportedFeatures='" + sdmSubscription.getSupportedFeatures() +
"'"
: "");
(sdmSubscription.dnnIsSet() ?
",dnn='" + sdmSubscription.getDnn() + "'" :
"") +
(sdmSubscription.subscriptionIdIsSet() ?
",subscriptionId='" + sdmSubscription.getSubscriptionId() + "'" :
"") +
(sdmSubscription.immediateReportIsSet() ?
(sdmSubscription.isImmediateReport() ? ",immediateReport=1" :
",immediateReport=0") :
"") +
(sdmSubscription.supportedFeaturesIsSet() ?
",supportedFeatures='" + sdmSubscription.getSupportedFeatures() +
"'" :
"");
if (sdmSubscription.amfServiceNameIsSet()) {
to_json(j, sdmSubscription.getAmfServiceName());
......@@ -1428,10 +1448,10 @@ bool mysql_db::update_sdm_subscription(
}
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1446,25 +1466,25 @@ bool mysql_db::update_sdm_subscription(
bool mysql_db::create_sdm_subscriptions(
const std::string& ue_id, oai::udr::model::SdmSubscription& sdmSubscription,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
nlohmann::json j = {};
int32_t subs_id = 0;
int32_t count = 0;
int32_t subs_id = 0;
int32_t count = 0;
std::string query =
"SELECT subsId FROM SdmSubscriptions WHERE ueid='" + ue_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query %s", query.c_str());
return false;
}
......@@ -1480,28 +1500,28 @@ bool mysql_db::create_sdm_subscriptions(
query =
"INSERT INTO SdmSubscriptions SET ueid='" + ue_id + "'" +
",nfInstanceId='" + sdmSubscription.getNfInstanceId() + "'" +
(sdmSubscription.implicitUnsubscribeIsSet()
? (sdmSubscription.isImplicitUnsubscribe()
? ",implicitUnsubscribe=1"
: ",implicitUnsubscribe=0")
: "") +
(sdmSubscription.expiresIsSet()
? ",expires='" + sdmSubscription.getExpires() + "'"
: "") +
(sdmSubscription.implicitUnsubscribeIsSet() ?
(sdmSubscription.isImplicitUnsubscribe() ?
",implicitUnsubscribe=1" :
",implicitUnsubscribe=0") :
"") +
(sdmSubscription.expiresIsSet() ?
",expires='" + sdmSubscription.getExpires() + "'" :
"") +
",callbackReference='" + sdmSubscription.getCallbackReference() + "'" +
(sdmSubscription.dnnIsSet() ? ",dnn='" + sdmSubscription.getDnn() + "'"
: "") +
(sdmSubscription.subscriptionIdIsSet()
? ",subscriptionId='" + sdmSubscription.getSubscriptionId() + "'"
: "") +
(sdmSubscription.immediateReportIsSet()
? (sdmSubscription.isImmediateReport() ? ",immediateReport=1"
: ",immediateReport=0")
: "") +
(sdmSubscription.supportedFeaturesIsSet()
? ",supportedFeatures='" + sdmSubscription.getSupportedFeatures() +
"'"
: "");
(sdmSubscription.dnnIsSet() ? ",dnn='" + sdmSubscription.getDnn() + "'" :
"") +
(sdmSubscription.subscriptionIdIsSet() ?
",subscriptionId='" + sdmSubscription.getSubscriptionId() + "'" :
"") +
(sdmSubscription.immediateReportIsSet() ?
(sdmSubscription.isImmediateReport() ? ",immediateReport=1" :
",immediateReport=0") :
"") +
(sdmSubscription.supportedFeaturesIsSet() ?
",supportedFeatures='" + sdmSubscription.getSupportedFeatures() +
"'" :
"");
if (sdmSubscription.amfServiceNameIsSet()) {
to_json(j, sdmSubscription.getAmfServiceName());
......@@ -1532,45 +1552,45 @@ bool mysql_db::create_sdm_subscriptions(
query += ",subsId=" + std::to_string(subs_id);
}
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query %s", query.c_str());
return false;
}
to_json(j, sdmSubscription);
json_data = j;
Logger::udr_mysql().debug("SdmSubscriptions POST: %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"SdmSubscriptions POST: %s", json_data.dump().c_str());
return true;
}
//------------------------------------------------------------------------------
bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
bool mysql_db::query_sdm_subscriptions(
const std::string& ue_id, nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
std::vector<std::string> fields;
nlohmann::json j = {};
nlohmann::json j = {};
nlohmann::json tmp = {};
const std::string query =
"SELECT * FROM SdmSubscriptions WHERE ueid='" + ue_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1587,8 +1607,8 @@ bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
for (int i = 0; i < fields.size(); i++) {
if (!strcmp("nfInstanceId", fields[i].c_str())) {
sdmsubscriptions.setNfInstanceId(row[i]);
} else if (!strcmp("implicitUnsubscribe", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("implicitUnsubscribe", fields[i].c_str()) && row[i] != NULL) {
if (strcmp(row[i], "0"))
sdmsubscriptions.setImplicitUnsubscribe(true);
else
......@@ -1597,8 +1617,8 @@ bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
sdmsubscriptions.setExpires(row[i]);
} else if (!strcmp("callbackReference", fields[i].c_str())) {
sdmsubscriptions.setCallbackReference(row[i]);
} else if (!strcmp("amfServiceName", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("amfServiceName", fields[i].c_str()) && row[i] != NULL) {
ServiceName amfservicename;
nlohmann::json::parse(row[i]).get_to(amfservicename);
sdmsubscriptions.setAmfServiceName(amfservicename);
......@@ -1612,15 +1632,15 @@ bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
sdmsubscriptions.setSingleNssai(singlenssai);
} else if (!strcmp("dnn", fields[i].c_str()) && row[i] != NULL) {
sdmsubscriptions.setDnn(row[i]);
} else if (!strcmp("subscriptionId", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("subscriptionId", fields[i].c_str()) && row[i] != NULL) {
sdmsubscriptions.setSubscriptionId(row[i]);
} else if (!strcmp("plmnId", fields[i].c_str()) && row[i] != NULL) {
PlmnId plmnid;
nlohmann::json::parse(row[i]).get_to(plmnid);
sdmsubscriptions.setPlmnId(plmnid);
} else if (!strcmp("immediateReport", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("immediateReport", fields[i].c_str()) && row[i] != NULL) {
if (strcmp(row[i], "0"))
sdmsubscriptions.setImmediateReport(true);
else
......@@ -1629,8 +1649,8 @@ bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
SubscriptionDataSets report;
nlohmann::json::parse(row[i]).get_to(report);
sdmsubscriptions.setReport(report);
} else if (!strcmp("supportedFeatures", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("supportedFeatures", fields[i].c_str()) && row[i] != NULL) {
sdmsubscriptions.setSupportedFeatures(row[i]);
} else if (!strcmp("contextInfo", fields[i].c_str()) && row[i] != NULL) {
ContextInfo contextinfo;
......@@ -1645,21 +1665,20 @@ bool mysql_db::query_sdm_subscriptions(const std::string& ue_id,
mysql_free_result(res);
json_data = j;
Logger::udr_mysql().debug("SdmSubscriptions GET: %s",
json_data.dump().c_str());
Logger::udr_mysql().debug(
"SdmSubscriptions GET: %s", json_data.dump().c_str());
return true;
}
//------------------------------------------------------------------------------
bool mysql_db::query_sm_data(const std::string& ue_id,
const std::string& serving_plmn_id,
nlohmann::json& json_data,
const oai::udr::model::Snssai& snssai,
const std::string dnn) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
bool mysql_db::query_sm_data(
const std::string& ue_id, const std::string& serving_plmn_id,
nlohmann::json& json_data, const oai::udr::model::Snssai& snssai,
const std::string dnn) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
SessionManagementSubscriptionData sessionmanagementsubscriptiondata = {};
std::string query =
"SELECT * FROM SessionManagementSubscriptionData WHERE ueid='" + ue_id +
......@@ -1678,17 +1697,17 @@ bool mysql_db::query_sm_data(const std::string& ue_id,
query += option_str;
Logger::udr_mysql().debug("MySQL query: %s", query.c_str());
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure, SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure, SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure, SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure, SQL Query: %s", query.c_str());
return false;
}
......@@ -1709,21 +1728,21 @@ bool mysql_db::query_sm_data(const std::string& ue_id,
for (auto d : dnnconfigurations) {
nlohmann::json temp = {};
to_json(temp, d.second);
Logger::udr_mysql().debug("DNN configurations: %s",
temp.dump().c_str());
Logger::udr_mysql().debug(
"DNN configurations: %s", temp.dump().c_str());
}
} else if (!strcmp("internalGroupIds", field->name) && row[i] != NULL) {
std ::vector<std ::string> internalgroupIds;
nlohmann::json::parse(row[i]).get_to(internalgroupIds);
sessionmanagementsubscriptiondata.setInternalGroupIds(internalgroupIds);
} else if (!strcmp("sharedVnGroupDataIds", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("sharedVnGroupDataIds", field->name) && row[i] != NULL) {
std ::map<std ::string, std ::string> sharedvngroupdataids;
nlohmann::json::parse(row[i]).get_to(sharedvngroupdataids);
sessionmanagementsubscriptiondata.setSharedVnGroupDataIds(
sharedvngroupdataids);
} else if (!strcmp("sharedDnnConfigurationsId", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("sharedDnnConfigurationsId", field->name) && row[i] != NULL) {
sessionmanagementsubscriptiondata.setSharedDnnConfigurationsId(row[i]);
} else if (!strcmp("odbPacketServices", field->name) && row[i] != NULL) {
OdbPacketServices odbpacketservices;
......@@ -1736,21 +1755,22 @@ bool mysql_db::query_sm_data(const std::string& ue_id,
sessionmanagementsubscriptiondata.setTraceData(tracedata);
} else if (!strcmp("sharedTraceDataId", field->name) && row[i] != NULL) {
sessionmanagementsubscriptiondata.setSharedTraceDataId(row[i]);
} else if (!strcmp("expectedUeBehavioursList", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("expectedUeBehavioursList", field->name) && row[i] != NULL) {
std ::map<std ::string, ExpectedUeBehaviourData>
expecteduebehaviourslist;
nlohmann::json::parse(row[i]).get_to(expecteduebehaviourslist);
sessionmanagementsubscriptiondata.setExpectedUeBehavioursList(
expecteduebehaviourslist);
} else if (!strcmp("suggestedPacketNumDlList", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("suggestedPacketNumDlList", field->name) && row[i] != NULL) {
std ::map<std ::string, SuggestedPacketNumDl> suggestedpacketnumdllist;
nlohmann::json::parse(row[i]).get_to(suggestedpacketnumdllist);
sessionmanagementsubscriptiondata.setSuggestedPacketNumDlList(
suggestedpacketnumdllist);
} else if (!strcmp("3gppChargingCharacteristics", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("3gppChargingCharacteristics", field->name) &&
row[i] != NULL) {
sessionmanagementsubscriptiondata.setR3gppChargingCharacteristics(
row[i]);
}
......@@ -1758,8 +1778,8 @@ bool mysql_db::query_sm_data(const std::string& ue_id,
to_json(j, sessionmanagementsubscriptiondata);
json_data = j;
Logger::udr_mysql().debug("SessionManagementSubscriptionData: %s",
j.dump().c_str());
Logger::udr_mysql().debug(
"SessionManagementSubscriptionData: %s", j.dump().c_str());
} else {
Logger::udr_mysql().error(
"SessionManagementSubscriptionData no data found, SQL query: %s",
......@@ -1775,26 +1795,29 @@ bool mysql_db::insert_smf_context_non_3gpp(
const std::string& ue_id, const int32_t& pdu_session_id,
const oai::udr::model::SmfRegistration& smfRegistration,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
std::string query = {};
nlohmann::json j = {};
nlohmann::json j = {};
const std::string select_SmfRegistration =
"SELECT * FROM SmfRegistrations WHERE ueid='" + ue_id +
"' AND subpduSessionId=" + std::to_string(pdu_session_id);
if (mysql_real_query(&mysql_connector, select_SmfRegistration.c_str(),
(unsigned long)select_SmfRegistration.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
select_SmfRegistration.c_str());
if (mysql_real_query(
&mysql_connector, select_SmfRegistration.c_str(),
(unsigned long) select_SmfRegistration.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s",
select_SmfRegistration.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure! SQL Query: %s",
select_SmfRegistration.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure! SQL Query: %s",
select_SmfRegistration.c_str());
return false;
}
......@@ -1803,37 +1826,38 @@ bool mysql_db::insert_smf_context_non_3gpp(
"UPDATE SmfRegistrations SET smfInstanceId='" +
smfRegistration.getSmfInstanceId() + "'" +
",pduSessionId=" + std::to_string(smfRegistration.getPduSessionId()) +
(smfRegistration.smfSetIdIsSet()
? ",smfSetId='" + smfRegistration.getSmfSetId() + "'"
: "") +
(smfRegistration.supportedFeaturesIsSet()
? ",supportedFeatures='" + smfRegistration.getSupportedFeatures() +
"'"
: "") +
(smfRegistration.dnnIsSet() ? ",dnn='" + smfRegistration.getDnn() + "'"
: "") +
(smfRegistration.emergencyServicesIsSet()
? (smfRegistration.isEmergencyServices() ? ",emergencyServices=1"
: ",emergencyServices=0")
: "") +
(smfRegistration.pcscfRestorationCallbackUriIsSet()
? ",pcscfRestorationCallbackUri='" +
smfRegistration.getPcscfRestorationCallbackUri() + "'"
: "") +
(smfRegistration.pgwFqdnIsSet()
? ",pgwFqdn='" + smfRegistration.getPgwFqdn() + "'"
: "") +
(smfRegistration.epdgIndIsSet()
? (smfRegistration.isEpdgInd() ? ",epdgInd=1" : ",epdgInd=0")
: "") +
(smfRegistration.deregCallbackUriIsSet()
? ",deregCallbackUri='" + smfRegistration.getDeregCallbackUri() +
"'"
: "") +
(smfRegistration.registrationTimeIsSet()
? ",registrationTime='" + smfRegistration.getRegistrationTime() +
"'"
: "");
(smfRegistration.smfSetIdIsSet() ?
",smfSetId='" + smfRegistration.getSmfSetId() + "'" :
"") +
(smfRegistration.supportedFeaturesIsSet() ?
",supportedFeatures='" + smfRegistration.getSupportedFeatures() +
"'" :
"") +
(smfRegistration.dnnIsSet() ?
",dnn='" + smfRegistration.getDnn() + "'" :
"") +
(smfRegistration.emergencyServicesIsSet() ?
(smfRegistration.isEmergencyServices() ? ",emergencyServices=1" :
",emergencyServices=0") :
"") +
(smfRegistration.pcscfRestorationCallbackUriIsSet() ?
",pcscfRestorationCallbackUri='" +
smfRegistration.getPcscfRestorationCallbackUri() + "'" :
"") +
(smfRegistration.pgwFqdnIsSet() ?
",pgwFqdn='" + smfRegistration.getPgwFqdn() + "'" :
"") +
(smfRegistration.epdgIndIsSet() ?
(smfRegistration.isEpdgInd() ? ",epdgInd=1" : ",epdgInd=0") :
"") +
(smfRegistration.deregCallbackUriIsSet() ?
",deregCallbackUri='" + smfRegistration.getDeregCallbackUri() +
"'" :
"") +
(smfRegistration.registrationTimeIsSet() ?
",registrationTime='" + smfRegistration.getRegistrationTime() +
"'" :
"");
if (smfRegistration.registrationReasonIsSet()) {
to_json(j, smfRegistration.getRegistrationReason());
......@@ -1856,37 +1880,38 @@ bool mysql_db::insert_smf_context_non_3gpp(
",subpduSessionId=" + std::to_string(pdu_session_id) +
",pduSessionId=" + std::to_string(smfRegistration.getPduSessionId()) +
",smfInstanceId='" + smfRegistration.getSmfInstanceId() + "'" +
(smfRegistration.smfSetIdIsSet()
? ",smfSetId='" + smfRegistration.getSmfSetId() + "'"
: "") +
(smfRegistration.supportedFeaturesIsSet()
? ",supportedFeatures='" + smfRegistration.getSupportedFeatures() +
"'"
: "") +
(smfRegistration.dnnIsSet() ? ",dnn='" + smfRegistration.getDnn() + "'"
: "") +
(smfRegistration.emergencyServicesIsSet()
? (smfRegistration.isEmergencyServices() ? ",emergencyServices=1"
: ",emergencyServices=0")
: "") +
(smfRegistration.pcscfRestorationCallbackUriIsSet()
? ",pcscfRestorationCallbackUri='" +
smfRegistration.getPcscfRestorationCallbackUri() + "'"
: "") +
(smfRegistration.pgwFqdnIsSet()
? ",pgwFqdn='" + smfRegistration.getPgwFqdn() + "'"
: "") +
(smfRegistration.epdgIndIsSet()
? (smfRegistration.isEpdgInd() ? ",epdgInd=1" : ",epdgInd=0")
: "") +
(smfRegistration.deregCallbackUriIsSet()
? ",deregCallbackUri='" + smfRegistration.getDeregCallbackUri() +
"'"
: "") +
(smfRegistration.registrationTimeIsSet()
? ",registrationTime='" + smfRegistration.getRegistrationTime() +
"'"
: "");
(smfRegistration.smfSetIdIsSet() ?
",smfSetId='" + smfRegistration.getSmfSetId() + "'" :
"") +
(smfRegistration.supportedFeaturesIsSet() ?
",supportedFeatures='" + smfRegistration.getSupportedFeatures() +
"'" :
"") +
(smfRegistration.dnnIsSet() ?
",dnn='" + smfRegistration.getDnn() + "'" :
"") +
(smfRegistration.emergencyServicesIsSet() ?
(smfRegistration.isEmergencyServices() ? ",emergencyServices=1" :
",emergencyServices=0") :
"") +
(smfRegistration.pcscfRestorationCallbackUriIsSet() ?
",pcscfRestorationCallbackUri='" +
smfRegistration.getPcscfRestorationCallbackUri() + "'" :
"") +
(smfRegistration.pgwFqdnIsSet() ?
",pgwFqdn='" + smfRegistration.getPgwFqdn() + "'" :
"") +
(smfRegistration.epdgIndIsSet() ?
(smfRegistration.isEpdgInd() ? ",epdgInd=1" : ",epdgInd=0") :
"") +
(smfRegistration.deregCallbackUriIsSet() ?
",deregCallbackUri='" + smfRegistration.getDeregCallbackUri() +
"'" :
"") +
(smfRegistration.registrationTimeIsSet() ?
",registrationTime='" + smfRegistration.getRegistrationTime() +
"'" :
"");
if (smfRegistration.registrationReasonIsSet()) {
to_json(j, smfRegistration.getRegistrationReason());
......@@ -1904,10 +1929,10 @@ bool mysql_db::insert_smf_context_non_3gpp(
}
mysql_free_result(res);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1919,16 +1944,16 @@ bool mysql_db::insert_smf_context_non_3gpp(
}
//------------------------------------------------------------------------------
bool mysql_db::delete_smf_context(const std::string& ue_id,
const int32_t& pdu_session_id) {
bool mysql_db::delete_smf_context(
const std::string& ue_id, const int32_t& pdu_session_id) {
const std::string query =
"DELETE FROM SmfRegistrations WHERE ueid='" + ue_id +
"' AND subpduSessionId=" + std::to_string(pdu_session_id);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
......@@ -1939,29 +1964,29 @@ bool mysql_db::delete_smf_context(const std::string& ue_id,
}
//------------------------------------------------------------------------------
bool mysql_db::query_smf_registration(const std::string& ue_id,
const int32_t& pdu_session_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
bool mysql_db::query_smf_registration(
const std::string& ue_id, const int32_t& pdu_session_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
SmfRegistration smfregistration = {};
const std::string query =
"SELECT * FROM SmfRegistrations WHERE ueid='" + ue_id +
"' AND subpduSessionId=" + std::to_string(pdu_session_id);
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure!SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure!SQL Query: %s", query.c_str());
return false;
}
......@@ -1973,8 +1998,8 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
smfregistration.setSmfInstanceId(row[i]);
} else if (!strcmp("smfSetId", field->name) && row[i] != NULL) {
smfregistration.setSmfSetId(row[i]);
} else if (!strcmp("supportedFeatures", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("supportedFeatures", field->name) && row[i] != NULL) {
smfregistration.setSupportedFeatures(row[i]);
} else if (!strcmp("pduSessionId", field->name)) {
int32_t a = std::stoi(row[i]);
......@@ -1985,14 +2010,15 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
smfregistration.setSingleNssai(singlenssai);
} else if (!strcmp("dnn", field->name) && row[i] != NULL) {
smfregistration.setDnn(row[i]);
} else if (!strcmp("emergencyServices", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("emergencyServices", field->name) && row[i] != NULL) {
if (strcmp(row[i], "0"))
smfregistration.setEmergencyServices(true);
else
smfregistration.setEmergencyServices(false);
} else if (!strcmp("pcscfRestorationCallbackUri", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("pcscfRestorationCallbackUri", field->name) &&
row[i] != NULL) {
smfregistration.setPcscfRestorationCallbackUri(row[i]);
} else if (!strcmp("plmnId", field->name)) {
PlmnId plmnid;
......@@ -2007,8 +2033,8 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
smfregistration.setEpdgInd(false);
} else if (!strcmp("deregCallbackUri", field->name) && row[i] != NULL) {
smfregistration.setDeregCallbackUri(row[i]);
} else if (!strcmp("registrationReason", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("registrationReason", field->name) && row[i] != NULL) {
RegistrationReason registrationreason;
nlohmann::json::parse(row[i]).get_to(registrationreason);
smfregistration.setRegistrationReason(registrationreason);
......@@ -2020,8 +2046,8 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
smfregistration.setContextInfo(contextinfo);
}
} catch (std::exception e) {
Logger::udr_mysql().error(" Cannot set values for SMF Registration: %s",
e.what());
Logger::udr_mysql().error(
" Cannot set values for SMF Registration: %s", e.what());
}
}
to_json(j, smfregistration);
......@@ -2029,8 +2055,8 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
Logger::udr_mysql().debug("SmfRegistration GET: %s", j.dump().c_str());
} else {
Logger::udr_mysql().error("SmfRegistration no data! SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"SmfRegistration no data! SQL Query: %s", query.c_str());
}
mysql_free_result(res);
......@@ -2038,29 +2064,29 @@ bool mysql_db::query_smf_registration(const std::string& ue_id,
}
//------------------------------------------------------------------------------
bool mysql_db::query_smf_reg_list(const std::string& ue_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
bool mysql_db::query_smf_reg_list(
const std::string& ue_id, nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
std::vector<std::string> fields;
nlohmann::json j = {};
nlohmann::json j = {};
nlohmann::json tmp = {};
const std::string query =
"SELECT * FROM SmfRegistrations WHERE ueid='" + ue_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure!SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure!SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure!SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure!SQL Query: %s", query.c_str());
return false;
}
......@@ -2080,8 +2106,8 @@ bool mysql_db::query_smf_reg_list(const std::string& ue_id,
smfregistration.setSmfInstanceId(row[i]);
} else if (!strcmp("smfSetId", fields[i].c_str()) && row[i] != NULL) {
smfregistration.setSmfSetId(row[i]);
} else if (!strcmp("supportedFeatures", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("supportedFeatures", fields[i].c_str()) && row[i] != NULL) {
smfregistration.setSupportedFeatures(row[i]);
} else if (!strcmp("pduSessionId", fields[i].c_str())) {
int32_t a = std::stoi(row[i]);
......@@ -2092,14 +2118,15 @@ bool mysql_db::query_smf_reg_list(const std::string& ue_id,
smfregistration.setSingleNssai(singlenssai);
} else if (!strcmp("dnn", fields[i].c_str()) && row[i] != NULL) {
smfregistration.setDnn(row[i]);
} else if (!strcmp("emergencyServices", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("emergencyServices", fields[i].c_str()) && row[i] != NULL) {
if (strcmp(row[i], "0"))
smfregistration.setEmergencyServices(true);
else
smfregistration.setEmergencyServices(false);
} else if (!strcmp("pcscfRestorationCallbackUri", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("pcscfRestorationCallbackUri", fields[i].c_str()) &&
row[i] != NULL) {
smfregistration.setPcscfRestorationCallbackUri(row[i]);
} else if (!strcmp("plmnId", fields[i].c_str())) {
PlmnId plmnid;
......@@ -2112,26 +2139,27 @@ bool mysql_db::query_smf_reg_list(const std::string& ue_id,
smfregistration.setEpdgInd(true);
else
smfregistration.setEpdgInd(false);
} else if (!strcmp("deregCallbackUri", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("deregCallbackUri", fields[i].c_str()) && row[i] != NULL) {
smfregistration.setDeregCallbackUri(row[i]);
} else if (!strcmp("registrationReason", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("registrationReason", fields[i].c_str()) &&
row[i] != NULL) {
RegistrationReason registrationreason;
nlohmann::json::parse(row[i]).get_to(registrationreason);
smfregistration.setRegistrationReason(registrationreason);
} else if (!strcmp("registrationTime", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("registrationTime", fields[i].c_str()) && row[i] != NULL) {
smfregistration.setRegistrationTime(row[i]);
} else if (!strcmp("contextInfo", fields[i].c_str()) &&
row[i] != NULL) {
} else if (
!strcmp("contextInfo", fields[i].c_str()) && row[i] != NULL) {
ContextInfo contextinfo;
nlohmann::json::parse(row[i]).get_to(contextinfo);
smfregistration.setContextInfo(contextinfo);
}
} catch (std::exception e) {
Logger::udr_mysql().error(" Cannot set values for SMF Registration: %s",
e.what());
Logger::udr_mysql().error(
" Cannot set values for SMF Registration: %s", e.what());
}
}
to_json(tmp, smfregistration);
......@@ -2148,29 +2176,29 @@ bool mysql_db::query_smf_reg_list(const std::string& ue_id,
}
//------------------------------------------------------------------------------
bool mysql_db::query_smf_select_data(const std::string& ue_id,
const std::string& serving_plmn_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
bool mysql_db::query_smf_select_data(
const std::string& ue_id, const std::string& serving_plmn_id,
nlohmann::json& json_data) {
MYSQL_RES* res = nullptr;
MYSQL_ROW row = {};
MYSQL_FIELD* field = nullptr;
nlohmann::json j = {};
SmfSelectionSubscriptionData smfselectionsubscriptiondata = {};
const std::string query =
"SELECT * FROM SmfSelectionSubscriptionData WHERE ueid='" + ue_id +
"' AND servingPlmnid='" + serving_plmn_id + "'";
if (mysql_real_query(&mysql_connector, query.c_str(),
(unsigned long)query.size())) {
Logger::udr_mysql().error("mysql_real_query failure! SQL Query: %s",
query.c_str());
if (mysql_real_query(
&mysql_connector, query.c_str(), (unsigned long) query.size())) {
Logger::udr_mysql().error(
"mysql_real_query failure! SQL Query: %s", query.c_str());
return false;
}
res = mysql_store_result(&mysql_connector);
if (res == NULL) {
Logger::udr_mysql().error("mysql_store_result failure!SQL Query: %s",
query.c_str());
Logger::udr_mysql().error(
"mysql_store_result failure!SQL Query: %s", query.c_str());
return false;
}
......@@ -2180,22 +2208,22 @@ bool mysql_db::query_smf_select_data(const std::string& ue_id,
for (int i = 0; field = mysql_fetch_field(res); i++) {
if (!strcmp("supportedFeatures", field->name) && row[i] != NULL) {
smfselectionsubscriptiondata.setSupportedFeatures(row[i]);
} else if (!strcmp("subscribedSnssaiInfos", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("subscribedSnssaiInfos", field->name) && row[i] != NULL) {
std ::map<std ::string, SnssaiInfo> subscribedsnssaiinfos;
nlohmann::json::parse(row[i]).get_to(subscribedsnssaiinfos);
smfselectionsubscriptiondata.setSubscribedSnssaiInfos(
subscribedsnssaiinfos);
} else if (!strcmp("sharedSnssaiInfosId", field->name) &&
row[i] != NULL) {
} else if (
!strcmp("sharedSnssaiInfosId", field->name) && row[i] != NULL) {
smfselectionsubscriptiondata.setSharedSnssaiInfosId(row[i]);
}
}
to_json(j, smfselectionsubscriptiondata);
json_data = j;
Logger::udr_mysql().debug("SmfSelectionSubscriptionData GET: %s",
j.dump().c_str());
Logger::udr_mysql().debug(
"SmfSelectionSubscriptionData GET: %s", j.dump().c_str());
} else {
Logger::udr_mysql().error(
"SmfSelectionSubscriptionData no data!SQL Query: %s", query.c_str());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment