aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--middleware/middleware.go12
-rw-r--r--placeholder.md30
2 files changed, 9 insertions, 33 deletions
diff --git a/middleware/middleware.go b/middleware/middleware.go
index 44e806dde..4ceda5940 100644
--- a/middleware/middleware.go
+++ b/middleware/middleware.go
@@ -18,9 +18,15 @@ type (
// and/or error.
//
// If ServeDNS writes to the response body, it should return a status
- // code of 0. This signals to other handlers above it that the response
- // body is already written, and that they should not write to it also.
- // TODO(miek): explain return codes better.
+ // code. If the status code is not one of the following:
+ // * SERVFAIL (dns.RcodeServerFailure)
+ // * REFUSED (dns.RecodeRefused)
+ // * FORMERR (dns.RcodeFormatError)
+ // * NOTIMP (dns.RcodeNotImplemented)
+ //
+ // CoreDNS assumes *no* reply has yet been written. All other response
+ // codes signal other handlers above it that the response message is
+ // already written, and that they should not write to it also.
//
// If ServeDNS encounters an error, it should return the error value
// so it can be logged by designated error-handling middleware.
diff --git a/placeholder.md b/placeholder.md
deleted file mode 100644
index efe0033eb..000000000
--- a/placeholder.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Placeholders
-
-Some directives allow you to use placeholders in your Caddyfile to fill out a value differently for every request. For example, the value {path} would be replaced by the path portion of the request URL. These are also called replaceable values.
-These placeholders only work on directives that support them. Check the documentation for your directive to see if placeholders are supported.
-Request Placeholders
-
-These values are obtained from the request.
-
-* {dir} - The directory of the requested file (from request URI)
-* { file} - The name of the requested file (from request URI)
-* {fragment} - The last part of the URL starting with "#"
-* {>Header} - Any request header, where "Header" is the header field name
-* {host} - The host portion of the request
-* {method} - The request method (GET, POST, etc.)
-* {path} - The path portion of the URL (does not include query string or fragment)
-* {port} - The client's port
-* {proto} - The protocol string (e.g. "HTTP/1.1")
-* {query} - The query string portion of the URL, without leading "?"
-* {remote} - The client's IP address
-* {scheme} - The protocol/scheme used (usually http or https)
-* {uri} - The request URI (includes path, query string, and fragment)
-* {when} - Timestamp in the format 02/Jan/2006:15:04:05 -0700
-
-## Response Placeholders
-
-These values are obtained from the response, and are only implemented with some directives. Make sure your directive supports response placeholders before attempting to use them.
-
-* {latency} - Approximate time the server spent handling the request
-* {size} - The size of the response body
-* {status} - The HTTP status code of the response