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



Reply via email to