Moayad Almalat <[email protected]> writes:
> Signed-off-by: Moayad Almalat <[email protected]>
> ---
> src/Toolkit.js | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/Toolkit.js b/src/Toolkit.js
> index d4e579b..39513b8 100644
> --- a/src/Toolkit.js
> +++ b/src/Toolkit.js
> @@ -72,7 +72,7 @@ Ext.apply(Ext.form.field.VTypes, {
> MacAddressText: gettext('Example') + ': 01:23:45:67:89:ab',
>
> MacPrefix: function (v) {
> - return /^[a-f0-9][02468ace](?::[a-f0-9]{2}){0,2}:?$/i.test(v);
> + return
> /^(?:[a-f0-9][02468ace](?::[a-f0-9]{2}){0,2}:?|[a-f0-9][02468ace](?::[a-f0-9]{2}){2}:[a-f0-9])$/i.test(v);
> },
> MacPrefixMask: /[a-fA-F0-9:]/,
> MacPrefixText:
I had the following stashed locally:
```
modified src/test/Makefile
@@ -4,8 +4,15 @@ cpgtest: cpgtest.c
gcc -Wall cpgtest.c $(shell pkg-config --cflags --libs libcpg libqb) -o
cpgtest
.PHONY: check install clean distclean
-check:
+check: corosync-parser-test test-mac-prefix
+
+.PHONY: corosync-parser-test
+corosync-parser-test:
./corosync_parser_test.pl
+.PHONY: test-mac-prefix
+test-mac-prefix:
+ perl test_mac_prefix.pl
+
distclean: clean
clean:
new file src/test/test_mac_prefix.pl
@@ -0,0 +1,24 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+use lib ('.', '..');
+
+use PVE::DataCenterConfig;
+
+my $longest_prefix_len = 10;
+my $prefix = "00:00:00:00:00:00";
+
+# test that all sub-strings of $prefix longer than "00" and strictly shorter
than
+# "00:00:00:00" are OK
+for (my $i = 0; $i <= length($prefix); $i++) {
+ my $sub_prefix = substr($prefix, 0, $i);
+ if (2 <= $i && $i <= $longest_prefix_len) {
+ ok(PVE::DataCenterConfig::pve_verify_mac_prefix($sub_prefix),
"$sub_prefix is a valid mac prefix");
+ } else {
+ is(PVE::DataCenterConfig::pve_verify_mac_prefix($sub_prefix, 1),
undef, "$sub_prefix is not valid mac prefix");
+ }
+}
+
+done_testing();
```
Perhaps this can be added here either in a followup or in v3.
This is pre-existing issue, but at the moment we only allow for 8bit,
16bit or 24bit suffixes, e.g. 00:00:0 is not allowed. The test above
will test any possible prefix lenght from 00 to 00:00:00:0.
--
Maximiliano