From 263ffbfaecc5ed8b7f5071baecf51b4e9d90e7bf Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Mon, 4 Nov 2019 13:25:37 -0700 Subject: caddyfile: Fix bug with Delete It now will delete the current token even if it is the last one --- caddyconfig/caddyfile/dispenser.go | 2 +- caddyconfig/httpcaddyfile/directives.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'caddyconfig') diff --git a/caddyconfig/caddyfile/dispenser.go b/caddyconfig/caddyfile/dispenser.go index de67ee1..6afbd77 100755 --- a/caddyconfig/caddyfile/dispenser.go +++ b/caddyconfig/caddyfile/dispenser.go @@ -339,7 +339,7 @@ func (d *Dispenser) Errf(format string, args ...interface{}) error { // array will become apparent (or worse, hide from you like they // did me for 3 and a half freaking hours late one night). func (d *Dispenser) Delete() []Token { - if d.cursor >= 0 && d.cursor < len(d.tokens)-1 { + if d.cursor >= 0 && d.cursor <= len(d.tokens)-1 { d.tokens = append(d.tokens[:d.cursor], d.tokens[d.cursor+1:]...) d.cursor-- } diff --git a/caddyconfig/httpcaddyfile/directives.go b/caddyconfig/httpcaddyfile/directives.go index f1ce0f1..e56d101 100644 --- a/caddyconfig/httpcaddyfile/directives.go +++ b/caddyconfig/httpcaddyfile/directives.go @@ -64,7 +64,8 @@ func RegisterHandlerDirective(dir string, setupFunc UnmarshalHandlerFunc) { return nil, err } if ok { - h.Dispenser.Delete() // strip matcher token + tokens := h.Dispenser.Delete() // strip matcher token + h.Dispenser = caddyfile.NewDispenser(tokens) } h.Dispenser.Reset() // pretend this lookahead never happened -- cgit v1.2.3