diff options
-rw-r--r-- | apphandler.cpp | 24 | ||||
-rw-r--r-- | chassishandler.cpp | 36 | ||||
-rw-r--r-- | dcmihandler.cpp | 22 | ||||
-rw-r--r-- | host-cmd-manager.cpp | 5 | ||||
-rw-r--r-- | ipmid.cpp | 6 | ||||
-rw-r--r-- | read_fru_data.cpp | 8 | ||||
-rw-r--r-- | sensordatahandler.cpp | 22 | ||||
-rw-r--r-- | sensordatahandler.hpp | 8 | ||||
-rw-r--r-- | sensorhandler.cpp | 17 | ||||
-rw-r--r-- | settings.cpp | 4 | ||||
-rw-r--r-- | storagehandler.cpp | 5 | ||||
-rw-r--r-- | transporthandler.cpp | 38 | ||||
-rw-r--r-- | utils.cpp | 4 |
13 files changed, 121 insertions, 78 deletions
diff --git a/apphandler.cpp b/apphandler.cpp index 8c7df7c..fd58218 100644 --- a/apphandler.cpp +++ b/apphandler.cpp @@ -23,6 +23,7 @@ #include <nlohmann/json.hpp> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <string> #include <tuple> #include <vector> @@ -69,6 +70,7 @@ using Activation = sdbusplus::xyz::openbmc_project::Software::server::Activation; using BMC = sdbusplus::xyz::openbmc_project::State::server::BMC; namespace fs = std::filesystem; +namespace variant_ns = sdbusplus::message::variant_ns; // Offset in get device id command. typedef struct @@ -123,12 +125,14 @@ std::string getActiveSoftwareVersionInfo() auto& redundancyPriorityProps = intfMap.at(redundancyIntf); auto& versionProps = intfMap.at(versionIntf); auto& activationProps = intfMap.at(activationIntf); - auto priority = - redundancyPriorityProps.at("Priority").get<uint8_t>(); - auto purpose = versionProps.at("Purpose").get<std::string>(); - auto activation = - activationProps.at("Activation").get<std::string>(); - auto version = versionProps.at("Version").get<std::string>(); + auto priority = variant_ns::get<uint8_t>( + redundancyPriorityProps.at("Priority")); + auto purpose = + variant_ns::get<std::string>(versionProps.at("Purpose")); + auto activation = variant_ns::get<std::string>( + activationProps.at("Activation")); + auto version = + variant_ns::get<std::string>(versionProps.at("Version")); if ((Version::convertVersionPurposeFromString(purpose) == Version::VersionPurpose::BMC) && (Activation::convertActivationsFromString(activation) == @@ -169,9 +173,9 @@ bool getCurrentBmcState() ipmi::getDbusProperty(bus, bmcObject.second, bmcObject.first, bmc_state_interface, bmc_state_property); - return variant.is<std::string>() && - BMC::convertBMCStateFromString(variant.get<std::string>()) == - BMC::BMCState::Ready; + return variant_ns::holds_alternative<std::string>(variant) && + BMC::convertBMCStateFromString( + variant_ns::get<std::string>(variant)) == BMC::BMCState::Ready; } ipmi_ret_t ipmi_app_set_acpi_power_state(ipmi_netfn_t netfn, ipmi_cmd_t cmd, @@ -598,7 +602,7 @@ ipmi_ret_t ipmi_app_get_sys_guid(ipmi_netfn_t netfn, ipmi_cmd_t cmd, auto variant = ipmi::getDbusProperty(bus, bmcObject.second, bmcObject.first, bmc_guid_interface, bmc_guid_property); - std::string guidProp = variant.get<std::string>(); + std::string guidProp = variant_ns::get<std::string>(variant); // Erase "-" characters from the property value guidProp.erase(std::remove(guidProp.begin(), guidProp.end(), '-'), diff --git a/chassishandler.cpp b/chassishandler.cpp index d75b3b2..a58eee0 100644 --- a/chassishandler.cpp +++ b/chassishandler.cpp @@ -23,6 +23,7 @@ #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> #include <sdbusplus/bus.hpp> +#include <sdbusplus/message/types.hpp> #include <sdbusplus/server/object.hpp> #include <sdbusplus/timer.hpp> #include <sstream> @@ -138,6 +139,8 @@ namespace fs = std::filesystem; using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; using namespace sdbusplus::xyz::openbmc_project::Control::Boot::server; +namespace variant_ns = sdbusplus::message::variant_ns; + namespace chassis { namespace internal @@ -349,19 +352,19 @@ int getHostNetworkData(get_sys_boot_options_response_t* respptr) macObjectInfo.first, MAC_INTERFACE, "MACAddress"); - auto ipAddress = properties["Address"].get<std::string>(); + auto ipAddress = variant_ns::get<std::string>(properties["Address"]); - auto gateway = properties["Gateway"].get<std::string>(); + auto gateway = variant_ns::get<std::string>(properties["Gateway"]); - auto prefix = properties["PrefixLength"].get<uint8_t>(); + auto prefix = variant_ns::get<uint8_t>(properties["PrefixLength"]); uint8_t isStatic = - (properties["Origin"].get<std::string>() == + (variant_ns::get<std::string>(properties["Origin"]) == "xyz.openbmc_project.Network.IP.AddressOrigin.Static") ? 1 : 0; - auto MACAddress = variant.get<std::string>(); + auto MACAddress = variant_ns::get<std::string>(variant); // it is expected here that we should get the valid data // but we may also get the default values. @@ -399,10 +402,11 @@ int getHostNetworkData(get_sys_boot_options_response_t* respptr) std::memcpy(respptr->data + ADDRTYPE_OFFSET, &isStatic, sizeof(isStatic)); - uint8_t addressFamily = (properties["Type"].get<std::string>() == - "xyz.openbmc_project.Network.IP.Protocol.IPv4") - ? AF_INET - : AF_INET6; + uint8_t addressFamily = + (variant_ns::get<std::string>(properties["Type"]) == + "xyz.openbmc_project.Network.IP.Protocol.IPv4") + ? AF_INET + : AF_INET6; addrSize = (addressFamily == AF_INET) ? ipmi::network::IPV4_ADDRESS_SIZE_BYTE @@ -636,7 +640,7 @@ uint32_t getPOHCounter() ipmi::getDbusProperty(bus, service, chassisStateObj.first, chassisPOHStateIntf, pOHCounterProperty); - return propValue.get<uint32_t>(); + return variant_ns::get<uint32_t>(propValue); } ipmi_ret_t ipmi_chassis_wildcard(ipmi_netfn_t netfn, ipmi_cmd_t cmd, @@ -818,8 +822,8 @@ ipmi_ret_t ipmi_get_chassis_status(ipmi_netfn_t netfn, ipmi_cmd_t cmd, } sdbusplus::message::variant<std::string> result; resp.read(result); - auto powerRestore = - RestorePolicy::convertPolicyFromString(result.get<std::string>()); + auto powerRestore = RestorePolicy::convertPolicyFromString( + variant_ns::get<std::string>(result)); *data_len = 4; @@ -1365,8 +1369,8 @@ ipmi_ret_t ipmi_chassis_get_sys_boot_options(ipmi_netfn_t netfn, ipmi_cmd_t cmd, } sdbusplus::message::variant<std::string> result; reply.read(result); - auto bootSource = - Source::convertSourcesFromString(result.get<std::string>()); + auto bootSource = Source::convertSourcesFromString( + variant_ns::get<std::string>(result)); bootSetting = settings::boot::setting(objects, bootModeIntf); const auto& bootModeSetting = std::get<settings::Path>(bootSetting); @@ -1383,8 +1387,8 @@ ipmi_ret_t ipmi_chassis_get_sys_boot_options(ipmi_netfn_t netfn, ipmi_cmd_t cmd, return IPMI_CC_UNSPECIFIED_ERROR; } reply.read(result); - auto bootMode = - Mode::convertModesFromString(result.get<std::string>()); + auto bootMode = Mode::convertModesFromString( + variant_ns::get<std::string>(result)); bootOption = sourceDbusToIpmi.at(bootSource); if ((Mode::Modes::Regular == bootMode) && diff --git a/dcmihandler.cpp b/dcmihandler.cpp index d01787e..6ea7dd8 100644 --- a/dcmihandler.cpp +++ b/dcmihandler.cpp @@ -14,6 +14,7 @@ #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> #include <sdbusplus/bus.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> using namespace phosphor::logging; @@ -56,6 +57,7 @@ constexpr auto SENSOR_VALUE_PROP = "Value"; constexpr auto SENSOR_SCALE_PROP = "Scale"; using namespace phosphor::logging; +namespace variant_ns = sdbusplus::message::variant_ns; namespace dcmi { @@ -83,7 +85,7 @@ uint32_t getPcap(sdbusplus::bus::bus& bus) sdbusplus::message::variant<uint32_t> pcap; reply.read(pcap); - return pcap.get<uint32_t>(); + return variant_ns::get<uint32_t>(pcap); } bool getPcapEnabled(sdbusplus::bus::bus& bus) @@ -104,7 +106,7 @@ bool getPcapEnabled(sdbusplus::bus::bus& bus) sdbusplus::message::variant<bool> pcapEnabled; reply.read(pcapEnabled); - return pcapEnabled.get<bool>(); + return variant_ns::get<bool>(pcapEnabled); } void setPcap(sdbusplus::bus::bus& bus, const uint32_t powerCap) @@ -203,7 +205,7 @@ std::string readAssetTag() sdbusplus::message::variant<std::string> assetTag; reply.read(assetTag); - return assetTag.get<std::string>(); + return variant_ns::get<std::string>(assetTag); } void writeAssetTag(const std::string& assetTag) @@ -238,7 +240,7 @@ std::string getHostName(void) auto value = ipmi::getDbusProperty(bus, service, networkConfigObj, networkConfigIntf, hostNameProp); - return value.get<std::string>(); + return variant_ns::get<std::string>(value); } bool getDHCPEnabled() @@ -253,7 +255,7 @@ bool getDHCPEnabled() auto value = ipmi::getDbusProperty(bus, service, ethernetObj.first, ethernetIntf, "DHCPEnabled"); - return value.get<bool>(); + return variant_ns::get<bool>(value); } bool getDHCPOption(std::string prop) @@ -263,7 +265,7 @@ bool getDHCPOption(std::string prop) auto service = ipmi::getService(bus, dhcpIntf, dhcpObj); auto value = ipmi::getDbusProperty(bus, service, dhcpObj, dhcpIntf, prop); - return value.get<bool>(); + return variant_ns::get<bool>(value); } void setDHCPOption(std::string prop, bool value) @@ -801,10 +803,10 @@ Temperature readTemp(const std::string& dbusService, sdbusplus::bus::bus bus{ipmid_get_sd_bus_connection()}; auto result = ipmi::getAllDbusProperties( bus, dbusService, dbusPath, "xyz.openbmc_project.Sensor.Value"); - auto temperature = result.at("Value").get<int64_t>(); + auto temperature = variant_ns::get<int64_t>(result.at("Value")); uint64_t absTemp = std::abs(temperature); - auto factor = result.at("Scale").get<int64_t>(); + auto factor = variant_ns::get<int64_t>(result.at("Scale")); uint64_t scale = std::pow(10, factor); // pow() returns float/double unsigned long long tempDegrees = 0; // Overflow safe multiplication when the scale is > 0 @@ -1056,8 +1058,8 @@ int64_t getPowerReading(sdbusplus::bus::bus& bus) // Read the sensor value and scale properties auto properties = ipmi::getAllDbusProperties(bus, service, objectPath, SENSOR_VALUE_INTF); - auto value = properties[SENSOR_VALUE_PROP].get<int64_t>(); - auto scale = properties[SENSOR_SCALE_PROP].get<int64_t>(); + auto value = variant_ns::get<int64_t>(properties[SENSOR_VALUE_PROP]); + auto scale = variant_ns::get<int64_t>(properties[SENSOR_SCALE_PROP]); // Power reading needs to be scaled with the Scale value using the // formula Value * 10^Scale. diff --git a/host-cmd-manager.cpp b/host-cmd-manager.cpp index 2f96661..28bcb70 100644 --- a/host-cmd-manager.cpp +++ b/host-cmd-manager.cpp @@ -7,6 +7,7 @@ #include <chrono> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <sdbusplus/timer.hpp> #include <utils.hpp> #include <xyz/openbmc_project/Common/error.hpp> @@ -32,6 +33,7 @@ using InternalFailure = sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; namespace sdbusRule = sdbusplus::bus::match::rules; +namespace variant_ns = sdbusplus::message::variant_ns; Manager::Manager(sdbusplus::bus::bus& bus, sd_event* event) : bus(bus), timer(event, std::bind(&Manager::hostTimeout, this)), @@ -180,7 +182,8 @@ void Manager::clearQueueOnPowerOn(sdbusplus::message::message& msg) return; } - auto& requestedState = properties.at(HOST_TRANS_PROP).get<std::string>(); + auto& requestedState = + variant_ns::get<std::string>(properties.at(HOST_TRANS_PROP)); if (server::Host::convertTransitionFromString(requestedState) == server::Host::Transition::On) @@ -25,12 +25,14 @@ #include <phosphor-logging/log.hpp> #include <sdbusplus/bus.hpp> #include <sdbusplus/bus/match.hpp> +#include <sdbusplus/message/types.hpp> #include <sdbusplus/timer.hpp> #include <vector> #include <xyz/openbmc_project/Control/Security/RestrictionMode/server.hpp> using namespace phosphor::logging; namespace sdbusRule = sdbusplus::bus::match::rules; +namespace variant_ns = sdbusplus::message::variant_ns; sd_bus* bus = NULL; sd_bus_slot* ipmid_slot = NULL; @@ -380,8 +382,8 @@ void cache_restricted_mode() } sdbusplus::message::variant<std::string> result; resp.read(result); - auto restrictionMode = - RestrictionMode::convertModesFromString(result.get<std::string>()); + auto restrictionMode = RestrictionMode::convertModesFromString( + variant_ns::get<std::string>(result)); if (RestrictionMode::Modes::Whitelist == restrictionMode) { restricted_mode = true; diff --git a/read_fru_data.cpp b/read_fru_data.cpp index c7ff61b..67bbf9f 100644 --- a/read_fru_data.cpp +++ b/read_fru_data.cpp @@ -8,6 +8,7 @@ #include <map> #include <phosphor-logging/elog-errors.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> extern const FruMap frus; @@ -15,6 +16,9 @@ namespace ipmi { namespace fru { + +namespace variant_ns = sdbusplus::message::variant_ns; + using namespace phosphor::logging; using InternalFailure = sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; @@ -143,8 +147,8 @@ FruInventoryData readDataFromInventory(const FRUId& fruNum) { data[properties.second.section].emplace( properties.first, - std::move( - allProp[properties.first].get<std::string>())); + std::move(variant_ns::get<std::string>( + allProp[properties.first]))); } } } diff --git a/sensordatahandler.cpp b/sensordatahandler.cpp index c973f2e..4f552a3 100644 --- a/sensordatahandler.cpp +++ b/sensordatahandler.cpp @@ -5,8 +5,10 @@ #include "utils.hpp" #include <bitset> +#include <optional> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> #if __has_include(<filesystem>) @@ -27,6 +29,8 @@ namespace ipmi namespace sensor { +namespace variant_ns = sdbusplus::message::variant_ns; + using namespace phosphor::logging; using InternalFailure = sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; @@ -260,7 +264,7 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) for (const auto& property : interface->second) { - Value tmp{sdbusplus::message::variant_ns::no_init()}; + std::optional<Value> tmp; for (const auto& value : std::get<OffsetValueMap>(property.second)) { if (bothSet.size() <= value.first || !bothSet.test(value.first)) @@ -281,14 +285,14 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) } } - if (tmp.valid()) + if (tmp) { auto msg = makeDbusMsg("org.freedesktop.DBus.Properties", sensorInfo.sensorPath, "Set", sensorInfo.sensorInterface); msg.append(interface->first); msg.append(property.first); - msg.append(tmp); + msg.append(*tmp); auto rc = updateToDbus(msg); if (rc) @@ -348,7 +352,8 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { return IPMI_CC_OK; } - result = result && value.second.assert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.assert); valid = true; } else if (deassertionSet.test(value.first)) @@ -358,7 +363,8 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { return IPMI_CC_OK; } - result = result && value.second.deassert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.deassert); valid = true; } } @@ -367,11 +373,13 @@ ipmi_ret_t assertion(const SetSensorReadingReq& cmdData, const Info& sensorInfo) { if (assertionSet.test(value.first)) { - result = result && value.second.assert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.assert); } else if (deassertionSet.test(value.first)) { - result = result && value.second.deassert.get<bool>(); + result = + result && variant_ns::get<bool>(value.second.deassert); } } if (valid) diff --git a/sensordatahandler.hpp b/sensordatahandler.hpp index bcb55ff..d56aea8 100644 --- a/sensordatahandler.hpp +++ b/sensordatahandler.hpp @@ -7,12 +7,15 @@ #include <host-ipmid/ipmid-api.h> #include <cmath> +#include <sdbusplus/message/types.hpp> namespace ipmi { namespace sensor { +namespace variant_ns = sdbusplus::message::variant_ns; + using Assertion = uint16_t; using Deassertion = uint16_t; using AssertionSet = std::pair<Assertion, Deassertion>; @@ -164,7 +167,8 @@ GetSensorResponse readingAssertion(const Info& sensorInfo) sensorInfo.propertyInterfaces.begin()->first, sensorInfo.propertyInterfaces.begin()->second.begin()->first); - setAssertionBytes(static_cast<uint16_t>(propValue.get<T>()), responseData); + setAssertionBytes(static_cast<uint16_t>(variant_ns::get<T>(propValue)), + responseData); return response; } @@ -194,7 +198,7 @@ GetSensorResponse readingData(const Info& sensorInfo) sensorInfo.propertyInterfaces.begin()->first, sensorInfo.propertyInterfaces.begin()->second.begin()->first); - double value = propValue.get<T>() * + double value = variant_ns::get<T>(propValue) * std::pow(10, sensorInfo.scale - sensorInfo.exponentR); auto rawData = static_cast<uint8_t>((value - sensorInfo.scaledOffset) / diff --git a/sensorhandler.cpp b/sensorhandler.cpp index 08a6325..dca9765 100644 --- a/sensorhandler.cpp +++ b/sensorhandler.cpp @@ -14,6 +14,7 @@ #include <cstring> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <set> #include <xyz/openbmc_project/Common/error.hpp> #include <xyz/openbmc_project/Sensor/Value/server.hpp> @@ -453,10 +454,10 @@ void getSensorThresholds(uint8_t sensorNum, auto warnThresholds = ipmi::getAllDbusProperties( bus, service, info.sensorPath, warningThreshIntf); - double warnLow = variant_ns::apply_visitor(ipmi::VariantToDoubleVisitor(), - warnThresholds["WarningLow"]); - double warnHigh = variant_ns::apply_visitor(ipmi::VariantToDoubleVisitor(), - warnThresholds["WarningHigh"]); + double warnLow = variant_ns::visit(ipmi::VariantToDoubleVisitor(), + warnThresholds["WarningLow"]); + double warnHigh = variant_ns::visit(ipmi::VariantToDoubleVisitor(), + warnThresholds["WarningHigh"]); if (warnLow != 0) { @@ -478,10 +479,10 @@ void getSensorThresholds(uint8_t sensorNum, auto critThresholds = ipmi::getAllDbusProperties( bus, service, info.sensorPath, criticalThreshIntf); - double critLow = variant_ns::apply_visitor(ipmi::VariantToDoubleVisitor(), - critThresholds["CriticalLow"]); - double critHigh = variant_ns::apply_visitor(ipmi::VariantToDoubleVisitor(), - critThresholds["CriticalHigh"]); + double critLow = variant_ns::visit(ipmi::VariantToDoubleVisitor(), + critThresholds["CriticalLow"]); + double critHigh = variant_ns::visit(ipmi::VariantToDoubleVisitor(), + critThresholds["CriticalHigh"]); if (critLow != 0) { diff --git a/settings.cpp b/settings.cpp index 770bde0..0ddd7a6 100644 --- a/settings.cpp +++ b/settings.cpp @@ -4,6 +4,7 @@ #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> namespace settings @@ -11,6 +12,7 @@ namespace settings using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; +namespace variant_ns = sdbusplus::message::variant_ns; constexpr auto mapperService = "xyz.openbmc_project.ObjectMapper"; constexpr auto mapperPath = "/xyz/openbmc_project/object_mapper"; @@ -131,7 +133,7 @@ std::tuple<Path, OneTimeEnabled> setting(const Objects& objects, sdbusplus::message::variant<bool> enabled; reply.read(enabled); - auto oneTimeEnabled = enabled.get<bool>(); + auto oneTimeEnabled = variant_ns::get<bool>(enabled); const Path& setting = oneTimeEnabled ? oneTimeSetting : regularSetting; return std::make_tuple(setting, oneTimeEnabled); } diff --git a/storagehandler.cpp b/storagehandler.cpp index 0a46b83..5ac116c 100644 --- a/storagehandler.cpp +++ b/storagehandler.cpp @@ -18,6 +18,7 @@ #include <cstring> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <sdbusplus/server.hpp> #include <string> #include <xyz/openbmc_project/Common/error.hpp> @@ -73,6 +74,8 @@ ipmi::sel::ObjectPaths paths; } // namespace cache +namespace variant_ns = sdbusplus::message::variant_ns; + using InternalFailure = sdbusplus::xyz::openbmc_project::Common::Error::InternalFailure; using namespace phosphor::logging; @@ -501,7 +504,7 @@ ipmi_ret_t ipmi_storage_get_sel_time(ipmi_netfn_t netfn, ipmi_cmd_t cmd, return IPMI_CC_UNSPECIFIED_ERROR; } reply.read(value); - host_time_usec = value.get<uint64_t>(); + host_time_usec = variant_ns::get<uint64_t>(value); } catch (InternalFailure& e) { diff --git a/transporthandler.cpp b/transporthandler.cpp index 9c42887..39b1c9f 100644 --- a/transporthandler.cpp +++ b/transporthandler.cpp @@ -12,6 +12,7 @@ #include <fstream> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <sdbusplus/timer.hpp> #include <string> #include <xyz/openbmc_project/Common/error.hpp> @@ -47,6 +48,7 @@ using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; namespace fs = std::filesystem; +namespace variant_ns = sdbusplus::message::variant_ns; void register_netfn_transport_functions() __attribute__((constructor)); @@ -97,7 +99,8 @@ ipmi_ret_t getNetworkData(uint8_t lan_param, uint8_t* data, int channel) bus, ipObjectInfo.second, ipObjectInfo.first, ipmi::network::IP_INTERFACE); - ipaddress = properties["Address"].get<std::string>(); + ipaddress = + variant_ns::get<std::string>(properties["Address"]); } // ignore the exception, as it is a valid condition that // the system is not configured with any IP. @@ -171,7 +174,7 @@ ipmi_ret_t getNetworkData(uint8_t lan_param, uint8_t* data, int channel) bus, ipmi::network::SERVICE, networkInterfacePath, ipmi::network::ETHERNET_INTERFACE, "DHCPEnabled"); - auto dhcpEnabled = variant.get<bool>(); + auto dhcpEnabled = variant_ns::get<bool>(variant); // As per IPMI spec 2=>DHCP, 1=STATIC auto ipsrc = dhcpEnabled ? ipmi::network::IPOrigin::DHCP : ipmi::network::IPOrigin::STATIC; @@ -201,7 +204,8 @@ ipmi_ret_t getNetworkData(uint8_t lan_param, uint8_t* data, int channel) bus, ipObjectInfo.second, ipObjectInfo.first, ipmi::network::IP_INTERFACE); - auto prefix = properties["PrefixLength"].get<uint8_t>(); + auto prefix = variant_ns::get<uint8_t>( + properties["PrefixLength"]); mask = ipmi::network::MASK_32_BIT; mask = htonl(mask << (ipmi::network::BITS_32 - prefix)); } @@ -238,8 +242,8 @@ ipmi_ret_t getNetworkData(uint8_t lan_param, uint8_t* data, int channel) bus, systemObject.second, systemObject.first, ipmi::network::SYSTEMCONFIG_INTERFACE); - gateway = systemProperties["DefaultGateway"] - .get<std::string>(); + gateway = variant_ns::get<std::string>( + systemProperties["DefaultGateway"]); } // ignore the exception, as it is a valid condition that // the system is not configured with any IP. @@ -271,7 +275,7 @@ ipmi_ret_t getNetworkData(uint8_t lan_param, uint8_t* data, int channel) bus, macObjectInfo.second, macObjectInfo.first, ipmi::network::MAC_INTERFACE, "MACAddress"); - macAddress = variant.get<std::string>(); + macAddress = variant_ns::get<std::string>(variant); } else if (channelConf->lan_set_in_progress == SET_IN_PROGRESS) { @@ -777,11 +781,9 @@ void applyChanges(int channel) } // get the configured mode on the system. - auto enableDHCP = - ipmi::getDbusProperty( - bus, ipmi::network::SERVICE, networkInterfacePath, - ipmi::network::ETHERNET_INTERFACE, "DHCPEnabled") - .get<bool>(); + auto enableDHCP = variant_ns::get<bool>(ipmi::getDbusProperty( + bus, ipmi::network::SERVICE, networkInterfacePath, + ipmi::network::ETHERNET_INTERFACE, "DHCPEnabled")); // if ip address source is not given then get the ip source mode // from the system so that it can be applied later. @@ -824,11 +826,13 @@ void applyChanges(int channel) ipmi::network::IP_INTERFACE); ipaddress = channelConf->ipaddr.empty() - ? properties["Address"].get<std::string>() + ? variant_ns::get<std::string>( + properties["Address"]) : channelConf->ipaddr; prefix = channelConf->netmask.empty() - ? properties["PrefixLength"].get<uint8_t>() + ? variant_ns::get<uint8_t>( + properties["PrefixLength"]) : ipmi::network::toPrefix( AF_INET, channelConf->netmask); } @@ -844,10 +848,10 @@ void applyChanges(int channel) bus, systemObject.second, systemObject.first, ipmi::network::SYSTEMCONFIG_INTERFACE); - gateway = - channelConf->gateway.empty() - ? systemProperties["DefaultGateway"].get<std::string>() - : channelConf->gateway; + gateway = channelConf->gateway.empty() + ? variant_ns::get<std::string>( + systemProperties["DefaultGateway"]) + : channelConf->gateway; } } @@ -7,6 +7,7 @@ #include <algorithm> #include <phosphor-logging/elog-errors.hpp> #include <phosphor-logging/log.hpp> +#include <sdbusplus/message/types.hpp> #include <xyz/openbmc_project/Common/error.hpp> namespace ipmi @@ -14,6 +15,7 @@ namespace ipmi using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; +namespace variant_ns = sdbusplus::message::variant_ns; namespace network { @@ -116,7 +118,7 @@ DbusObjectInfo getIPObject(sdbusplus::bus::bus& bus, objectInfo = std::make_pair(object.first, object.second.begin()->first); // if LinkLocalIP found look for Non-LinkLocalIP - if (ipmi::network::isLinkLocalIP(variant.get<std::string>())) + if (ipmi::network::isLinkLocalIP(variant_ns::get<std::string>(variant))) { continue; } |