summaryrefslogtreecommitdiff
path: root/vendor/github.com/miekg/dns/scan_rr.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/miekg/dns/scan_rr.go')
-rw-r--r--vendor/github.com/miekg/dns/scan_rr.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/vendor/github.com/miekg/dns/scan_rr.go b/vendor/github.com/miekg/dns/scan_rr.go
index 2d44a3987..d08c8e6a7 100644
--- a/vendor/github.com/miekg/dns/scan_rr.go
+++ b/vendor/github.com/miekg/dns/scan_rr.go
@@ -904,11 +904,18 @@ func (rr *RRSIG) parse(c *zlexer, o string) *ParseError {
c.Next() // zBlank
l, _ = c.Next()
- i, e := strconv.ParseUint(l.token, 10, 8)
- if e != nil || l.err {
+ if l.err {
return &ParseError{"", "bad RRSIG Algorithm", l}
}
- rr.Algorithm = uint8(i)
+ i, e := strconv.ParseUint(l.token, 10, 8)
+ rr.Algorithm = uint8(i) // if 0 we'll check the mnemonic in the if
+ if e != nil {
+ v, ok := StringToAlgorithm[l.token]
+ if !ok {
+ return &ParseError{"", "bad RRSIG Algorithm", l}
+ }
+ rr.Algorithm = v
+ }
c.Next() // zBlank
l, _ = c.Next()