diff --git a/nonfree/controller/CentralDB.cpp b/nonfree/controller/CentralDB.cpp index 177b97da4..1fa82b965 100644 --- a/nonfree/controller/CentralDB.cpp +++ b/nonfree/controller/CentralDB.cpp @@ -680,6 +680,7 @@ void CentralDB::initializeNetworks() std::optional created_at = std::get<3>(row); std::optional last_modified = std::get<4>(row); std::optional revision = std::get<5>(row); + std::string frontend = std::get<6>(row); config["id"] = nwid; config["name"] = name; @@ -717,12 +718,17 @@ void CentralDB::initializeNetworks() config["v6AssignMode"]["rfc4193"] = false; } config["ssoEnabled"] = cfgtmp["ssoEnabled"].is_boolean() ? cfgtmp["ssoEnabled"].get() : false; + if (config["ssoConfig"].is_object()) { + config["ssoConfig"] = cfgtmp["ssoConfig"]; + } + else { + config["ssoConfig"] = empty; + } config["objtype"] = "network"; config["routes"] = cfgtmp["routes"].is_array() ? cfgtmp["routes"] : json::array(); config["clientId"] = cfgtmp["clientId"].is_string() ? cfgtmp["clientId"].get() : ""; - config["authorizationEndpoint"] = cfgtmp["authorizationEndpoint"].is_string() - ? cfgtmp["authorizationEndpoint"].get() - : nullptr; + config["authorizationEndpoint"] = + cfgtmp["authorizationEndpoint"].is_string() ? cfgtmp["authorizationEndpoint"].get() : ""; config["provider"] = cfgtmp["ssoProvider"].is_string() ? cfgtmp["ssoProvider"].get() : ""; if (! cfgtmp["dns"].is_object()) { cfgtmp["dns"] = json::object(); @@ -734,7 +740,7 @@ void CentralDB::initializeNetworks() } config["ipAssignmentPools"] = cfgtmp["ipAssignmentPools"].is_array() ? cfgtmp["ipAssignmentPools"] : json::array(); - config["frontend"] = std::get<6>(row); + config["frontend"] = frontend; Metrics::network_count++; @@ -742,7 +748,7 @@ void CentralDB::initializeNetworks() auto end = std::chrono::high_resolution_clock::now(); auto dur = std::chrono::duration_cast(end - start); - ; + total += dur.count(); ++count; if (count > 0 && count % 10000 == 0) {