summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/miekg/dns/generate.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/miekg/dns/generate.go')
-rw-r--r--vendor/github.com/miekg/dns/generate.go14
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")