summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/replacer.go
diff options
context:
space:
mode:
authorMatt Holt <mholt@users.noreply.github.com>2022-08-03 11:04:51 -0600
committerGitHub <noreply@github.com>2022-08-03 11:04:51 -0600
commit1960a0dc117dd30fb507b390ddf93b2ef371b9ad (patch)
tree42837b24d53dd449ac153d7b1d252ee8422e4729 /modules/caddyhttp/replacer.go
parent63c7720e84176184698730fed0ca7c402c53481a (diff)
httpserver: Configurable shutdown delay (#4906)
Diffstat (limited to 'modules/caddyhttp/replacer.go')
-rw-r--r--modules/caddyhttp/replacer.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/caddyhttp/replacer.go b/modules/caddyhttp/replacer.go
index bde58b7..76c1c87 100644
--- a/modules/caddyhttp/replacer.go
+++ b/modules/caddyhttp/replacer.go
@@ -252,6 +252,22 @@ func addHTTPVarsToReplacer(repl *caddy.Replacer, req *http.Request, w http.Respo
}
}
+ switch {
+ case key == "http.shutting_down":
+ server := req.Context().Value(ServerCtxKey).(*Server)
+ server.shutdownAtMu.RLock()
+ defer server.shutdownAtMu.RUnlock()
+ return !server.shutdownAt.IsZero(), true
+ case key == "http.time_until_shutdown":
+ server := req.Context().Value(ServerCtxKey).(*Server)
+ server.shutdownAtMu.RLock()
+ defer server.shutdownAtMu.RUnlock()
+ if server.shutdownAt.IsZero() {
+ return nil, true
+ }
+ return time.Until(server.shutdownAt), true
+ }
+
return nil, false
}