From 0ab6960fcce11a1a62a5f1925ebd21edfcf55df1 Mon Sep 17 00:00:00 2001
From: Mark Puha
Date: Mon, 4 Aug 2025 18:51:04 +0200
Subject: [PATCH] chore: improve on hyphen parsing
---
device/awg/magic_header.go | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/device/awg/magic_header.go b/device/awg/magic_header.go
index f2b8f97..aaf4e97 100644
--- a/device/awg/magic_header.go
+++ b/device/awg/magic_header.go
@@ -26,8 +26,8 @@ func NewMagicHeader(min, max uint32) (MagicHeader, error) {
}
func ParseMagicHeader(key, value string) (MagicHeader, error) {
- splitLimits := strings.Split(value, "-")
- if len(splitLimits) != 2 {
+ hyphenIdx := strings.Index(value, "-")
+ if hyphenIdx == -1 {
// if there is no hyphen, we treat it as single magic header value
magicHeader, err := strconv.ParseUint(value, 10, 32)
if err != nil {
@@ -35,23 +35,27 @@ func ParseMagicHeader(key, value string) (MagicHeader, error) {
}
return NewMagicHeader(uint32(magicHeader), uint32(magicHeader))
- } else if len(splitLimits[0]) == 0 || len(splitLimits[1]) == 0 {
+ }
+
+ minStr := value[:hyphenIdx]
+ maxStr := value[hyphenIdx+1:]
+ if len(minStr) == 0 || len(maxStr) == 0 {
return MagicHeader{}, fmt.Errorf("invalid value for key: %s; value: %s; expected format: min-max", key, value)
}
- min, err := strconv.ParseUint(splitLimits[0], 10, 32)
+ min, err := strconv.ParseUint(minStr, 10, 32)
if err != nil {
- return MagicHeader{}, fmt.Errorf("parse min key: %s; value: %s; %w", key, splitLimits[0], err)
+ return MagicHeader{}, fmt.Errorf("parse min key: %s; value: %s; %w", key, minStr, err)
}
- max, err := strconv.ParseUint(splitLimits[1], 10, 32)
+ max, err := strconv.ParseUint(maxStr, 10, 32)
if err != nil {
- return MagicHeader{}, fmt.Errorf("parse max key: %s; value: %s; %w", key, splitLimits[1], err)
+ return MagicHeader{}, fmt.Errorf("parse max key: %s; value: %s; %w", key, maxStr, err)
}
magicHeader, err := NewMagicHeader(uint32(min), uint32(max))
if err != nil {
- return MagicHeader{}, fmt.Errorf("new magicHeader key: %s; value: %s-%s; %w", key, splitLimits[0], splitLimits[1], err)
+ return MagicHeader{}, fmt.Errorf("new magicHeader key: %s; value: %s-%s; %w", key, minStr, maxStr, err)
}
return magicHeader, nil