Provide access to response writer in Context
Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
parent
030006a6d7
commit
cc8285f74c
1 changed files with 16 additions and 1 deletions
|
@ -16,6 +16,7 @@ import (
|
||||||
// Common errors used with this package.
|
// Common errors used with this package.
|
||||||
var (
|
var (
|
||||||
ErrNoRequestContext = errors.New("no http request in context")
|
ErrNoRequestContext = errors.New("no http request in context")
|
||||||
|
ErrNoResponseWriterContext = errors.New("no http response in context")
|
||||||
)
|
)
|
||||||
|
|
||||||
func parseIP(ipStr string) net.IP {
|
func parseIP(ipStr string) net.IP {
|
||||||
|
@ -110,6 +111,20 @@ func WithResponseWriter(ctx Context, w http.ResponseWriter) (Context, http.Respo
|
||||||
return irw, irw
|
return irw, irw
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetResponseWriter returns the http.ResponseWriter from the provided
|
||||||
|
// context. If not present, ErrNoResponseWriterContext is returned. The
|
||||||
|
// returned instance provides instrumentation in the context.
|
||||||
|
func GetResponseWriter(ctx Context) (http.ResponseWriter, error) {
|
||||||
|
v := ctx.Value("http.response")
|
||||||
|
|
||||||
|
rw, ok := v.(http.ResponseWriter)
|
||||||
|
if !ok || rw == nil {
|
||||||
|
return nil, ErrNoResponseWriterContext
|
||||||
|
}
|
||||||
|
|
||||||
|
return rw, nil
|
||||||
|
}
|
||||||
|
|
||||||
// getVarsFromRequest let's us change request vars implementation for testing
|
// getVarsFromRequest let's us change request vars implementation for testing
|
||||||
// and maybe future changes.
|
// and maybe future changes.
|
||||||
var getVarsFromRequest = mux.Vars
|
var getVarsFromRequest = mux.Vars
|
||||||
|
|
Loading…
Reference in a new issue