From 790b089a9cd2491f2dc8f9d7c83bdf187675045e Mon Sep 17 00:00:00 2001 From: Garet Halliday <me@garet.holiday> Date: Thu, 28 Sep 2023 21:51:49 -0500 Subject: [PATCH] a --- lib/gat/gatcaddyfile/gattype.go | 36 ++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/gat/gatcaddyfile/gattype.go b/lib/gat/gatcaddyfile/gattype.go index 77a507a4..1114f418 100644 --- a/lib/gat/gatcaddyfile/gattype.go +++ b/lib/gat/gatcaddyfile/gattype.go @@ -100,29 +100,41 @@ func (ServerType) Setup(blocks []caddyfile.ServerBlock, m map[string]any) (*cadd return nil, nil, d.Errf(`duplicate named matcher "%s"`, name) } - // read named matcher - if !d.NextBlock(0) { - return nil, nil, d.ArgErr() - } + var matcher json.RawMessage - for { - if d.Val() == "}" { - break + // read named matcher + if d.NextArg() { + // inline + } else { + // block + if !d.NextBlock(0) { + return nil, nil, d.ArgErr() } - log.Println(d.Val()) - for d.NextArg() { + for { + if d.Val() == "}" { + break + } + log.Println(d.Val()) - } + for d.NextArg() { + log.Println(d.Val()) + } - if !d.NextLine() { - return nil, nil, d.EOFErr() + if !d.NextLine() { + return nil, nil, d.EOFErr() + } } } if d.CountRemainingArgs() > 0 { return nil, nil, d.ArgErr() } + + if namedMatchers == nil { + namedMatchers = make(map[string]json.RawMessage) + } + namedMatchers[name] = matcher default: unmarshaller, ok := handlers[d.Val()] if !ok { -- GitLab