summaryrefslogtreecommitdiff
path: root/caddyconfig
diff options
context:
space:
mode:
authorGeorges Haidar <ghaidar0@gmail.com>2020-06-01 16:50:00 +0100
committerGitHub <noreply@github.com>2020-06-01 09:50:00 -0600
commita496308f6eb57f8dd2e1598bfb624a3e567aa4e1 (patch)
tree8f41b3b694abb97530b7c7bbbc334721ccf4f4f4 /caddyconfig
parentd5d7fb5954f38ed5f4c4bbb8a8b3df66809a32b7 (diff)
httpcaddyfile: Let modules add listener wrappers (#3397)
* httpcaddyfile: allow modules to customize listener wrappers * Update caddyconfig/httpcaddyfile/httptype.go Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Update caddyconfig/httpcaddyfile/httptype.go Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Update caddyconfig/httpcaddyfile/httptype.go Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Update caddyconfig/httpcaddyfile/httptype.go Co-authored-by: Matt Holt <mholt@users.noreply.github.com> Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
Diffstat (limited to 'caddyconfig')
-rw-r--r--caddyconfig/httpcaddyfile/httptype.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/caddyconfig/httpcaddyfile/httptype.go b/caddyconfig/httpcaddyfile/httptype.go
index 42fee71..7bb7c56 100644
--- a/caddyconfig/httpcaddyfile/httptype.go
+++ b/caddyconfig/httpcaddyfile/httptype.go
@@ -465,6 +465,20 @@ func (st *ServerType) serversFromPairings(
(addr.Port == httpsPort || (addr.Port != httpPort && addr.Host != ""))
}
+ // Look for any config values that provide listener wrappers on the server block
+ for _, listenerConfig := range sblock.pile["listener_wrapper"] {
+ listenerWrapper, ok := listenerConfig.Value.(caddy.ListenerWrapper)
+ if !ok {
+ return nil, fmt.Errorf("config for a listener wrapper did not provide a value that implements caddy.ListenerWrapper")
+ }
+ jsonListenerWrapper := caddyconfig.JSONModuleObject(
+ listenerWrapper,
+ "wrapper",
+ listenerWrapper.(caddy.Module).CaddyModule().ID.Name(),
+ warnings)
+ srv.ListenerWrappersRaw = append(srv.ListenerWrappersRaw, jsonListenerWrapper)
+ }
+
// set up each handler directive, making sure to honor directive order
dirRoutes := sblock.pile["route"]
siteSubroute, err := buildSubroute(dirRoutes, groupCounter)