net: shell: Add MAC address validation

Validate MAC address before setting, add new helper APIs to cover all
cases.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
This commit is contained in:
Krishna T 2023-01-11 16:49:18 +05:30 committed by Carles Cufí
commit 7952197a89
2 changed files with 17 additions and 2 deletions

View file

@ -3598,8 +3598,9 @@ static int cmd_net_set_mac(const struct shell *sh, size_t argc, char *argv[])
goto err;
}
if (net_bytes_from_str(mac_addr.addr, sizeof(mac_addr), argv[2]) < 0) {
PR_WARNING("Invalid MAC address\n");
if ((net_bytes_from_str(mac_addr.addr, sizeof(mac_addr), argv[2]) < 0) ||
!net_eth_is_addr_valid(&mac_addr)) {
PR_WARNING("Invalid MAC address: %s\n", argv[2]);
goto err;
}
@ -3613,6 +3614,10 @@ static int cmd_net_set_mac(const struct shell *sh, size_t argc, char *argv[])
goto err;
}
PR_INFO("MAC address set to %s\n",
net_sprint_ll_addr(net_if_get_link_addr(iface)->addr,
net_if_get_link_addr(iface)->len));
return 0;
err:
return -ENOEXEC;