From 5359a3daba755b26c7b6ff4ebff1db7ec6f7550e Mon Sep 17 00:00:00 2001 From: James Rouzier Date: Wed, 27 Jan 2021 17:42:53 -0500 Subject: [PATCH] Parse MAC addresses like ecf4-bb37-ddaa Fixes #6109 --- go/mac/mac.go | 2 +- go/mac/mac_test.go | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/go/mac/mac.go b/go/mac/mac.go index 5e3584001b53..a3b0d20337a9 100644 --- a/go/mac/mac.go +++ b/go/mac/mac.go @@ -134,7 +134,7 @@ func (mac *Mac) InitFromString(s string) error { } x += 3 } - case length >= 14 && s[4] == '.': + case length >= 14 && (s[4] == '.' || s[4] == '-'): // 0123.4567.89ab // xxxx.xxxx.xxxx for i, x := 0, 0; i < 14; i += 5 { diff --git a/go/mac/mac_test.go b/go/mac/mac_test.go index 03460d465c9d..030fd4bc5d9b 100644 --- a/go/mac/mac_test.go +++ b/go/mac/mac_test.go @@ -41,6 +41,7 @@ func TestStringify(t *testing.T) { {nil, "1122.3344.5566", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, {nil, "a00000000009", "a0:00:00:00:00:09", "160.0.0.0.0.9", 0x0001a00000000009}, {nil, "1122.3344.5566:Bob SSID", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, + {nil, "1122-3344-5566:Bob SSID", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, {nil, "112.233.445.566", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, {nil, "112.233.445.566:Bob SSID", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, {nil, "11:22:33:44:55:66", "11:22:33:44:55:66", "17.34.51.68.85.102", 0x0001112233445566}, @@ -58,7 +59,20 @@ func TestStringify(t *testing.T) { for i, test := range newFromStringTests { mac, err := NewFromString(test.fromStr) if err != test.err { - t.Errorf("Test %d) Error is not valid expected '%s', got '%s'.", i, test.err, err) + var expectedStr, gotStr string + if test.err != nil { + expectedStr = test.err.Error() + } else { + expectedStr = "nil" + } + + if err != nil { + gotStr = err.Error() + } else { + gotStr = "nil" + } + + t.Errorf("Test %d) Error is not valid expected '%s', got '%s'.", i, expectedStr, gotStr) } if mac.String() != test.macStr {