From: Stoiko Ivanov Date: Tue, 12 Mar 2019 15:07:41 +0000 (+0100) Subject: JSONSchema: Adapt MAC address format to unicast X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=a750d596c2d0d71033360c2badd15c2de5c6f2f8 JSONSchema: Adapt MAC address format to unicast MAC-addresses having the LSB of the first octet set, are considered multicast-addresses (see [0,1]). the 'mac-addr' format got changed to only permit unicast addresses, which should work for its current use-case (WOL for nodes). additionally a default option was registered via register_standard_option to be used in both PVE::LXC::Config and PVE::QemuServer. [0] https://lists.linuxcontainers.org/pipermail/lxc-users/2010-August/000783.html [1] https://en.wikipedia.org/wiki/MAC_address Signed-off-by: Stoiko Ivanov --- diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 1e3bf5d..10037f5 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -208,12 +208,20 @@ register_format('mac-addr', \&pve_verify_mac_addr); sub pve_verify_mac_addr { my ($mac_addr, $noerr) = @_; - if ($mac_addr !~ m/^[0-9a-f]{2}(:[0-9a-f]{2}){5}$/i) { + if ($mac_addr !~ m/^[a-f0-9][02468ace](?::[a-f0-9]{2}){5}$/i) { return undef if $noerr; - die "value does not look like a valid MAC address\n"; + die "value does not look like a valid unicast MAC address\n"; } return $mac_addr; + } +register_standard_option('mac-addr', { + type => 'string', + description => 'Unicast MAC address.', + format_description => "XX:XX:XX:XX:XX:XX", + optional => 1, + format => 'mac-addr', +}); register_format('ipv4', \&pve_verify_ipv4); sub pve_verify_ipv4 {