Skip to content

Commit

Permalink
fix parse walk file
Browse files Browse the repository at this point in the history
  • Loading branch information
mei-rune committed Jun 19, 2015
1 parent 72f030d commit ffa2051
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions read_line.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ func ParseString(ss []string, is_end bool, vs string) (SnmpValue, []string, erro
for idx, sss := range ss[1:] {
if re.MatchString(sss) {
p = idx
break
} else if strings.HasPrefix(sss, "#") ||
strings.Contains(sss, "MIB search path") ||
strings.Contains(sss, "Cannot find module") {
p = idx
break
}
}

Expand Down Expand Up @@ -70,6 +76,7 @@ func ParseString(ss []string, is_end bool, vs string) (SnmpValue, []string, erro
func ReadHex(buf *bytes.Buffer, s string) error {
for _, h := range strings.Fields(strings.TrimSpace(s)) {
if 2 != len(h) {
panic("")
return errors.New("decode \"" + s + "\" failed, 'len of " + h + "' is not equals 2.")
}

Expand All @@ -87,6 +94,12 @@ func ParseHexString(ss []string, is_end bool, vs string) (SnmpValue, []string, e
for idx, sss := range ss[1:] {
if re.MatchString(sss) {
p = idx
break
} else if strings.HasPrefix(sss, "#") ||
strings.Contains(sss, "MIB search path") ||
strings.Contains(sss, "Cannot find module") {
p = idx
break
}
}

Expand All @@ -112,6 +125,9 @@ func ParseHexString(ss []string, is_end bool, vs string) (SnmpValue, []string, e
return nil, nil, errors.New("parse `" + strings.Join(ss, "\r\n") + "` failed, " + e.Error())
}
for _, s := range ss[1:p] {
if strings.HasPrefix(s, "#") {
return NewSnmpOctetString(buf.Bytes()), ss[p:], nil
}
if e := ReadHex(&buf, s); nil != e {
return nil, nil, errors.New("parse `" + strings.Join(ss, "\r\n") + "` failed, " + e.Error())
}
Expand Down

0 comments on commit ffa2051

Please sign in to comment.