caddyfile: Fix bug with Delete

It now will delete the current token even if it is the last one
This commit is contained in:
Matthew Holt 2019-11-04 13:25:37 -07:00
parent bf363f061d
commit 263ffbfaec
No known key found for this signature in database
GPG key ID: 2A349DD577D586A5
2 changed files with 3 additions and 2 deletions

View file

@ -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--
}

View file

@ -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