summaryrefslogtreecommitdiffstats
path: root/ethernet_interface.cpp
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2018-06-19 16:02:17 -0500
committerGunnar Mills <gmills@us.ibm.com>2018-06-20 12:38:24 -0500
commit90480c46bbc9f8c9fddcc6296ea6d8a728f276b7 (patch)
treeadaedfd5d0fe44bccbe883253369a39c8a479760 /ethernet_interface.cpp
parent02653ca867156d01e0784474cbb539ddfc149472 (diff)
downloadphosphor-networkd-90480c46bbc9f8c9fddcc6296ea6d8a728f276b7.tar.gz
phosphor-networkd-90480c46bbc9f8c9fddcc6296ea6d8a728f276b7.zip
Throw error when invalid MAC Address is set
sdbusplus supports errors on properties, so we can now throw exceptions on such cases as invalid parameters. Also changed the journal log levels to ERR. Tested: Built an image and see invalid parameter errors on values like garbage MAC addresses and non-admin MAC Addresses. Change-Id: I69687bbf34fe51f0c812f40dfc99bb88ce141a2f Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'ethernet_interface.cpp')
-rw-r--r--ethernet_interface.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/ethernet_interface.cpp b/ethernet_interface.cpp
index 35e61a7..d887bf5 100644
--- a/ethernet_interface.cpp
+++ b/ethernet_interface.cpp
@@ -664,9 +664,10 @@ std::string EthernetInterface::mACAddress(std::string value)
{
if (!mac_address::validate(value))
{
- log<level::DEBUG>("MACAddress is not valid.",
+ log<level::ERR>("MACAddress is not valid.",
entry("MAC=%s", value.c_str()));
- return MacAddressIntf::mACAddress();
+ elog<InvalidArgument>(Argument::ARGUMENT_NAME("MACAddress"),
+ Argument::ARGUMENT_VALUE(value.c_str()));
}
// check whether MAC is broadcast mac.
@@ -674,9 +675,10 @@ std::string EthernetInterface::mACAddress(std::string value)
if (!(intMac ^ mac_address::broadcastMac))
{
- log<level::DEBUG>("MACAddress is a broadcast mac.",
+ log<level::ERR>("MACAddress is a broadcast mac.",
entry("MAC=%s", value.c_str()));
- return MacAddressIntf::mACAddress();
+ elog<InvalidArgument>(Argument::ARGUMENT_NAME("MACAddress"),
+ Argument::ARGUMENT_VALUE(value.c_str()));
}
// Check if the MAC changed.
@@ -700,9 +702,10 @@ std::string EthernetInterface::mACAddress(std::string value)
if (intInventoryMac != intMac)
{
- log<level::DEBUG>("Given MAC address is neither a local Admin "
+ log<level::ERR>("Given MAC address is neither a local Admin "
"type nor is same as in inventory");
- return MacAddressIntf::mACAddress();
+ elog<InvalidArgument>(Argument::ARGUMENT_NAME("MACAddress"),
+ Argument::ARGUMENT_VALUE(value.c_str()));
}
}
catch(InternalFailure& e)
OpenPOWER on IntegriCloud