Skip to content
Snippets Groups Projects
Commit cfa42ff2 authored by Christoph Petrausch's avatar Christoph Petrausch
Browse files

revert regex implementation

parent aae72890
Branches
Tags
No related merge requests found
...@@ -2,13 +2,10 @@ package packet ...@@ -2,13 +2,10 @@ package packet
import ( import (
"fmt" "fmt"
"regexp"
"strconv" "strconv"
"strings" "strings"
) )
var largeCommunityRegEx = regexp.MustCompile("^\\(?\\d+,\\d+,\\d+\\)?$")
type LargeCommunity struct { type LargeCommunity struct {
GlobalAdministrator uint32 GlobalAdministrator uint32
DataPart1 uint32 DataPart1 uint32
...@@ -20,12 +17,13 @@ func (c LargeCommunity) String() string { ...@@ -20,12 +17,13 @@ func (c LargeCommunity) String() string {
} }
func ParseLargeCommunityString(s string) (com LargeCommunity, err error) { func ParseLargeCommunityString(s string) (com LargeCommunity, err error) {
if !largeCommunityRegEx.Match([]byte(s)) {
return com, fmt.Errorf("malformed large community string %s", s)
}
s = strings.Trim(s, "()") s = strings.Trim(s, "()")
t := strings.Split(s, ",") t := strings.Split(s, ",")
if len(t) != 3 {
return com, fmt.Errorf("can not parse large community %s", s)
}
v, err := strconv.ParseUint(t[0], 10, 32) v, err := strconv.ParseUint(t[0], 10, 32)
if err != nil { if err != nil {
return com, err return com, err
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment