diff options
author | Gunnar Mills <gmills@us.ibm.com> | 2018-06-19 16:02:17 -0500 |
---|---|---|
committer | Gunnar Mills <gmills@us.ibm.com> | 2018-06-20 12:38:24 -0500 |
commit | 90480c46bbc9f8c9fddcc6296ea6d8a728f276b7 (patch) | |
tree | adaedfd5d0fe44bccbe883253369a39c8a479760 /ethernet_interface.cpp | |
parent | 02653ca867156d01e0784474cbb539ddfc149472 (diff) | |
download | phosphor-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.cpp | 15 |
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) |