diff options
Diffstat (limited to 'vendor/github.com/miekg/dns/generate.go')
-rw-r--r-- | vendor/github.com/miekg/dns/generate.go | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/vendor/github.com/miekg/dns/generate.go b/vendor/github.com/miekg/dns/generate.go index e4481a4b0..3a559793f 100644 --- a/vendor/github.com/miekg/dns/generate.go +++ b/vendor/github.com/miekg/dns/generate.go @@ -133,10 +133,20 @@ BuildRR: // Convert a $GENERATE modifier 0,0,d to something Printf can deal with. func modToPrintf(s string) (string, int, error) { - xs := strings.SplitN(s, ",", 3) - if len(xs) != 3 { + xs := strings.Split(s, ",") + + // Modifier is { offset [ ,width [ ,base ] ] } - provide default + // values for optional width and type, if necessary. + switch len(xs) { + case 1: + xs = append(xs, "0", "d") + case 2: + xs = append(xs, "d") + case 3: + default: return "", 0, errors.New("bad modifier in $GENERATE") } + // xs[0] is offset, xs[1] is width, xs[2] is base if xs[2] != "o" && xs[2] != "d" && xs[2] != "x" && xs[2] != "X" { return "", 0, errors.New("bad base in $GENERATE") |